Add scripts to compile optipng & libwebp

This commit is contained in:
VirtuBox 2019-08-15 23:44:27 +02:00
parent 9d02d67ae7
commit a4a3c99be7
Signed by: virtubox
GPG Key ID: 22EB296C97BAD476
7 changed files with 82 additions and 53 deletions

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

30
scripts/install-webp.sh Normal file
View File

@ -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