Add scripts to compile optipng & libwebp
This commit is contained in:
parent
9d02d67ae7
commit
a4a3c99be7
|
@ -1,5 +1,5 @@
|
||||||
sudo: required
|
sudo: required
|
||||||
dist: xenial
|
dist: bionic
|
||||||
|
|
||||||
language: bash
|
language: bash
|
||||||
|
|
||||||
|
@ -17,8 +17,8 @@ addons:
|
||||||
|
|
||||||
script:
|
script:
|
||||||
- sudo apt-get install jpegoptim -y
|
- sudo apt-get install jpegoptim -y
|
||||||
- sudo bash install-webp.sh
|
- sudo bash scripts/install-webp.sh
|
||||||
- sudo bash install-optipng.sh
|
- sudo bash scripts/install-optipng.sh
|
||||||
- sudo cp optimize.sh /usr/local/bin/img-optimize
|
- sudo cp optimize.sh /usr/local/bin/img-optimize
|
||||||
- sudo chmod 755 /usr/local/bin/img-optimize
|
- sudo chmod 755 /usr/local/bin/img-optimize
|
||||||
- /usr/local/bin/img-optimize --all
|
- /usr/local/bin/img-optimize --all
|
||||||
|
|
|
@ -10,6 +10,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
||||||
|
|
||||||
- quiet mode
|
- quiet mode
|
||||||
- option --no-run-if-empty added to xargs
|
- option --no-run-if-empty added to xargs
|
||||||
|
- scripts to compile optipng & libwebp from source
|
||||||
|
|
||||||
### Changed
|
### Changed
|
||||||
|
|
||||||
|
|
27
README.md
27
README.md
|
@ -10,6 +10,8 @@
|
||||||
- optipng for png optimization
|
- optipng for png optimization
|
||||||
- cwebp for WebP conversion
|
- cwebp for WebP conversion
|
||||||
|
|
||||||
|
### From APT repositories
|
||||||
|
|
||||||
Debian/Ubuntu :
|
Debian/Ubuntu :
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
|
@ -22,6 +24,18 @@ Centos 7 :
|
||||||
sudo yum install optipng jpegoptim libwebp-tools -y
|
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
|
## Installation
|
||||||
|
@ -43,12 +57,13 @@ echo "alias img-optimize=$HOME/.img-optimize/optimize.sh" >> $HOME/.bashrc
|
||||||
source $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
|
With this method img-optimize can be used by all users
|
||||||
|
|
||||||
```bash
|
```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
|
## Usage
|
||||||
|
@ -80,15 +95,9 @@ To update the script, just run :
|
||||||
git -C $HOME/.img-optimize pull
|
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
|
## Setup daily cronjob
|
||||||
|
|
||||||
You copy the scripts to /etc/cron.daily :
|
You just have to copy the scripts to /etc/cron.daily :
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
cp $HOME/.img-optimize/crons/jpg-png-cron.sh /etc/cron.daily/jpg-png-cron
|
cp $HOME/.img-optimize/crons/jpg-png-cron.sh /etc/cron.daily/jpg-png-cron
|
||||||
|
|
|
@ -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
|
|
|
@ -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
|
|
30
scripts/install-optipng.sh
Normal file
30
scripts/install-optipng.sh
Normal 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
30
scripts/install-webp.sh
Normal 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
|
Loading…
Reference in New Issue
Block a user