public
Description: Handy scripts and snippets
Homepage: http://effectif.com
Clone URL: git://github.com/gma/gma-utils.git
gma-utils / web / pngcrushall
100755 41 lines (33 sloc) 0.856 kb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
#!/bin/bash
 
# See http://yuiblog.com/blog/2008/11/14/imageopt-3/ for image optimisation
# pointers.
 
crush_images()
{
    local $dest
    for src in *.png; do
        (echo $src | grep -qs -- "-crushed.") && continue
dest="$(echo $src | sed 's,\.,-crushed.,')"
        echo -n "Crushing $src ... "
        pngcrush -rem alla -brute -reduce $src $dest >/dev/null
        [ $? -eq 0 ] && echo "ok"
    done
}
 
prompt_to_overwrite()
{
    read -p "Overwrite original files? (y/N) "
    [ "$REPLY" == "y" ]
}
 
overwrite_originals()
{
    for crushed in *-crushed.png; do
orig="$(echo $crushed | sed 's,-crushed\.,.,')"
        echo -n "Overwriting $orig ... "
        mv $crushed $orig
        [ $? -eq 0 ] && echo "ok"
    done
}
 
## Main program
 
set -e
[ -n "$DEBUG" ] && set -x
 
crush_images
prompt_to_overwrite && overwrite_originals