diff --git a/.travis.yml b/.travis.yml index b9f284d..90b22f3 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,5 +1,5 @@ sudo: required -dist: xenial +dist: bionic language: bash @@ -17,8 +17,8 @@ addons: script: - sudo apt-get install jpegoptim -y - - sudo bash install-webp.sh - - sudo bash install-optipng.sh + - sudo bash scripts/install-webp.sh + - sudo bash scripts/install-optipng.sh - sudo cp optimize.sh /usr/local/bin/img-optimize - sudo chmod 755 /usr/local/bin/img-optimize - /usr/local/bin/img-optimize --all diff --git a/CHANGELOG.md b/CHANGELOG.md index 870c522..f929de8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -10,6 +10,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), - quiet mode - option --no-run-if-empty added to xargs +- scripts to compile optipng & libwebp from source ### Changed diff --git a/README.md b/README.md index 2ee70cb..4e2b784 100644 --- a/README.md +++ b/README.md @@ -10,6 +10,8 @@ - optipng for png optimization - cwebp for WebP conversion +### From APT repositories + Debian/Ubuntu : ```bash @@ -22,6 +24,18 @@ Centos 7 : sudo yum install optipng jpegoptim libwebp-tools -y ``` +### Compile the latest release (optipng & libwebp) + +For Debian/Ubuntu (available in scripts folder) : + +```bash +# optipng +curl -sL git.io/fjd0v | sudo -E bash + +# libwebp +curl -sL git.io/fjd0v | sudo -E bash +``` + -------------------------------------------------------------------------------- ## Installation @@ -43,12 +57,13 @@ echo "alias img-optimize=$HOME/.img-optimize/optimize.sh" >> $HOME/.bashrc source $HOME/.bashrc ``` -**Method 2** : Copy the script in /usr/local/bin +**Method 2** : Add an alias to the script in /usr/local/bin With this method img-optimize can be used by all users ```bash -sudo cp $HOME/.img-optimize/optimize.sh /usr/local/bin/img-optimize +sudo ln -s $HOME/.img-optimize/optimize.sh /usr/local/bin/img-optimize +sudo chmod +x /usr/local/bin/img-optimize ``` ## Usage @@ -80,15 +95,9 @@ To update the script, just run : git -C $HOME/.img-optimize pull ``` -If you previously used the 2nd install method, you have to copy the script again to update it - -```bash -sudo cp $HOME/.img-optimize/optimize.sh /usr/local/bin/img-optimize -f -``` - ## Setup daily cronjob -You copy the scripts to /etc/cron.daily : +You just have to copy the scripts to /etc/cron.daily : ```bash cp $HOME/.img-optimize/crons/jpg-png-cron.sh /etc/cron.daily/jpg-png-cron diff --git a/install-optipng.sh b/install-optipng.sh deleted file mode 100644 index 4bb3023..0000000 --- a/install-optipng.sh +++ /dev/null @@ -1,22 +0,0 @@ -#!/bin/bash - -# install prerequisites -apt-get install build-essential libpng-dev zlib1g-dev curl pigz -y - -# go into /usr/local/src and remove previous optipng folder/archive -cd /usr/local/src || exit 1 -rm -rf optipng* - -# get the latest optipng release link -OPTIPNGLATEST=$(curl -sL optipng.sourceforge.net | grep tar.gz | awk -F '["]' '{print $4}') - -# download and extract optipng -wget $OPTIPNGLATEST -O optipng.tar.gz -tar -I pigz -xf optipng.tar.gz -cd optipng-* || exit 1 - -# configure and compile optipng -./configure --prefix=/usr -make -j "$(nproc)" -strip --strip-unneeded /usr/local/src/optipng-*/src/optipng/optipng -make install \ No newline at end of file diff --git a/install-webp.sh b/install-webp.sh deleted file mode 100644 index aa6401e..0000000 --- a/install-webp.sh +++ /dev/null @@ -1,19 +0,0 @@ -#!/bin/bash - -# install prerequisites -apt-get install build-essential libjpeg-dev libpng-dev libtiff-dev libgif-dev libwebp-dev tar gzip wget -y - -# go into /usr/local/src and remove previous libwebp folder/archive -cd /usr/local/src || exit -rm -rf libwebp* - -# download and extract latest libwebp sources -wget https://storage.googleapis.com/downloads.webmproject.org/releases/webp/libwebp-1.0.2.tar.gz -O libwebp.tar.gz -tar xzf libwebp.tar.gz -cd libwebp-* || exit - -# configure libwebp and launch compilation -./configure --prefix=/usr -make -j "$(nproc)" -strip --strip-unneeded /usr/local/src/libwebp-*/examples/.libs/{cwebp,dwebp} -make install diff --git a/scripts/install-optipng.sh b/scripts/install-optipng.sh new file mode 100644 index 0000000..be8d60f --- /dev/null +++ b/scripts/install-optipng.sh @@ -0,0 +1,30 @@ +#!/usr/bin/env bash +#---------------------------------------------------------------------------- +# img-optimize- optipng compilation script +#---------------------------------------------------------------------------- +# Website: https://virtubox.net +# GitHub: https://github.com/VirtuBox/img-optimize +# Author: VirtuBox +# License: M.I.T +# ---------------------------------------------------------------------------- + +# install prerequisites +export DEBIAN_FRONTEND=noninteractive +apt update && apt-get install --assume-yes build-essential libpng-dev zlib1g-dev curl pigz jpegoptim + +# get the latest optipng release link +OPTIPNGLATEST=$(curl -sL optipng.sourceforge.net | grep tar.gz | awk -F '["]' '{print $4}') + +# go into /usr/local/src and remove previous optipng folder/archive +cd /usr/local/src || exit 1 +rm -rf optipng* + +# download and extract optipng +curl -sL "$OPTIPNGLATEST" | tar -I pigz -xf - +cd optipng-* || exit 1 + +# configure and compile optipng +./configure --prefix=/usr +make -j "$(nproc)" +strip --strip-unneeded /usr/local/src/optipng-*/src/optipng/optipng +make install \ No newline at end of file diff --git a/scripts/install-webp.sh b/scripts/install-webp.sh new file mode 100644 index 0000000..e4eee37 --- /dev/null +++ b/scripts/install-webp.sh @@ -0,0 +1,30 @@ +#!/usr/bin/env bash +#---------------------------------------------------------------------------- +# img-optimize- libwebp compilation script +#---------------------------------------------------------------------------- +# Website: https://virtubox.net +# GitHub: https://github.com/VirtuBox/img-optimize +# Author: VirtuBox +# License: M.I.T +# ---------------------------------------------------------------------------- + +# install prerequisites +export DEBIAN_FRONTEND=noninteractive +apt-get update && apt-get install --assume-yes build-essential libjpeg-dev libpng-dev libtiff-dev libgif-dev libwebp-dev tar pigz curl + +# get the latest release number +LATEST_WEBP=$(curl https://storage.googleapis.com/downloads.webmproject.org/releases/webp/index.html 2>&1 | grep ".tar.gz\"" | awk -F '["]' '{print $2}' | sort -r | head -n 1 2>&1) + +# go into /usr/local/src and remove previous libwebp folder/archive +cd /usr/local/src || exit +rm -rf libwebp* + +# download and extract latest libwebp sources +curl -sL "https:$LATEST_WEBP" | tar -I pigz -xf - +cd libwebp-* || exit + +# configure libwebp and launch compilation +./configure --prefix=/usr +make -j "$(nproc)" +strip --strip-unneeded /usr/local/src/libwebp-*/examples/.libs/{cwebp,dwebp} +make install