RTFM.WIKI

Ordnung muß sein. Ordnung über alles (18+)

Инструменты пользователя

Инструменты сайта


Боковая панель


Навигация

Линкшэринг

~~socialite Display:icon facebook twitter~~

ALARM!

Добавить новую страницу

You are not allowed to add pages

Реклама

web:gzip

Скрипт для gzip сжатия ресурсов сайта

Источник, код на github

Файл compress.sh (gz.sh)

#! /bin/sh
 
EXTENSIONS="html?|css|js|ttf|eot|svg"
 
if [ -z "$1" ]; then
    DIR="`pwd`"
else
    DIR="$1"
fi
 
find $DIR -type f -regextype posix-egrep -regex ".*\.($EXTENSIONS)\$" -exec `dirname $0`/do-gz.sh '{}' \;
 
# if you want delete *.gz files
# >    find $DIR -name '*.gz' -delete

Файл do-compress.sh (do-gz.sh)

#! /bin/sh
MINSIZE=100
GZIP="gzip -9 -c -n"
AWK=awk
TOUCH=touch
 
if [ -n "$1" ]; then
    GZ_NAME="$1.gz"
    DATA_PLAIN=`stat --format "%s %Y" "$1"`
    PLAIN_SIZE=`echo "$DATA_PLAIN" | $AWK '{ print $1}'`
    PLAIN_MTIME=`echo "$DATA_PLAIN" | $AWK '{ print $2}'`
 
    if [ $PLAIN_SIZE -lt $MINSIZE ]; then
        echo "Ignoring file $1: its size ($PLAIN_SIZE) is less than $MINSIZE bytes"
        exit 0;
    fi
 
    if [ -f "$GZ_NAME" ]; then
        GZIPPED_MTIME=`stat --format "%Y" "$GZ_NAME"`
        if [ $GZIPPED_MTIME -eq $PLAIN_MTIME ]; then
            echo "Ignoring file $1: there is a compressed file $GZ_NAME with the same modification time"
            exit 0
        fi
    fi
 
    $GZIP "$1" > "$GZ_NAME"
    $TOUCH -r "$1" "$GZ_NAME"
    echo "Compressed $1 to $GZ_NAME"
fi

Как запускать

bash compress.sh [каталог]

Скрипт compress.sh рекурсивно ищет файлы по заданным расширениям (переменная EXTENSIONS). Далее каждый найденный файл передается скрипту do-compress.sh, который уже делает .gz файл.

This website uses cookies. By using the website, you agree with storing cookies on your computer. Also you acknowledge that you have read and understand our Privacy Policy. If you do not agree leave the website.More information about cookies

Discussion

Enter your comment. Wiki syntax is allowed:
 
web/gzip.txt · Последнее изменение: 2017/08/09 16:09 (внешнее изменение)