Fix checking for inkscape binary.
[dcpomatic.git] / graphics / update
index b16becc96741ac4faa02456f145a8c02b2482e0a..464a3a068b0b6a2cc819b7c1a5b0bf4c92d018fb 100755 (executable)
@@ -1,4 +1,4 @@
-#!/bin/bash
+#!/bin/bash -e
 #
 # Update generated stuff in graphics/ from the source files.
 #
 # a) getting the wscript right is a complete pain in the arse
 # b) running Inkscape from the command line on OS X is a complete pain in the arse
 
+set -e
+
 pwd=`pwd`
 if [ `basename $pwd` != "graphics" ]; then
-  echo "$0: run within graphics/"
-  exit 1
+    echo "$0: run within graphics/"
+    exit 1
 fi
 
+function required_font()
+{
+    set +e
+    check=$(fc-list | grep "$1")
+    set -e
+    if [ "$check" == "" ]; then
+        echo "Missing font $1"
+        exit 1
+    fi
+}
+
+svg_apps="dcpomatic2_kdm dcpomatic2_server dcpomatic2_batch dcpomatic2_player dcpomatic2_playlist dcpomatic2_disk dcpomatic2_combiner"
+
+
 if [ `uname -s` == "Darwin" ]; then
     # Convert OS X icons using OS X-only iconutil
-    for p in dcpomatic2 dcpomatic2_kdm dcpomatic2_server dcpomatic2_batch; do
-       iconutil --convert icns --output $p.icns $p.iconset
+    for p in dcpomatic2 $svg_apps; do
+       iconutil --convert icns --output osx/$p.icns osx/$p.iconset
     done
 else
-    INKSCAPE="inkscape -z -C -e"
+    required_font "Libre Baskerville"
+
+    INKSCAPE="$HOME/Applications/inkscape"
+    for c in icotool convert inkbatch $INKSCAPE; do
+        if [ ! -x "$(command -v $c)" ]; then
+            echo "$c is required"
+            exit 1
+        fi
+    done
+
 
     # OS X application icons
+    mkdir -p osx
     for r in 16 32 128 256 512; do
-       for p in dcpomatic2 dcpomatic2_kdm dcpomatic2_server dcpomatic2_batch; do
-           mkdir -p $p.iconset
-           $INKSCAPE $p.iconset/icon_$rx$r.png -w $r -h $r $p.svg
-           $INKSCAPE $p.iconset/icon_$rx$r@2x.png -w $r -h $r $p.svg
+       for p in dcpomatic2; do
+           mkdir -p osx/$p.iconset
+           convert src/dcpomatic.png -resize $rx$r osx/$p.iconset/icon_${r}x${r}.png
+           convert src/dcpomatic.png -resize $rx$r osx/$p.iconset/icon_${r}x${r}@2x.png
+       done
+       for p in $svg_apps; do
+           mkdir -p osx/$p.iconset
+           $INKSCAPE --export-filename=osx/$p.iconset/icon_${r}x${r}.png -w $r -h $r src/$p.svg
+           $INKSCAPE --export-filename=osx/$p.iconset/icon_${r}x${r}@2x.png -w $r -h $r src/$p.svg
        done
     done
 
     # Linux application icons
+    mkdir -p linux
     for r in 16 22 32 48 64 128 256 512; do
-       mkdir -p $r
-       for p in dcpomatic2 dcpomatic2_kdm dcpomatic2_server dcpomatic2_batch; do
-           $INKSCAPE $r/$p.png $p.svg -w $r -h $r
+       mkdir -p linux/$r
+       convert src/dcpomatic.png -resize $rx$r linux/$r/dcpomatic2.png
+       for p in $svg_apps; do
+           $INKSCAPE --export-filename=linux/$r/$p.png src/$p.svg -w $r -h $r
        done
     done
 
     # Windows application icons
-    for p in dcpomatic2 dcpomatic2_kdm dcpomatic2_server dcpomatic2_batch; do
-       icotool -c -o $p.ico 48/$p.png
+    mkdir -p windows
+    for p in dcpomatic2 $svg_apps; do
+       icotool -c -o windows/$p.ico linux/16/$p.png linux/32/$p.png linux/48/$p.png linux/64/$p.png linux/128/$p.png
     done
-    icotool -c -o dcpomatic2_server_small.ico dcpomatic2_server_small.png
-    $INKSCAPE dcpomatic.png dcpomatic2.svg -w 400 -h 286
-    convert dcpomatic.png dcpomatic.bmp
+    convert src/dcpomatic.png -resize 400x400 windows/dcpomatic.bmp
 
-    # Preferences icons (all platforms)
-    # servers.png does not have an SVG version
-    for i in colour_conversions defaults kdm_email keys tms; do
-       $INKSCAPE $i.png $i.svg -w 32 -h 32
+    # OS X preferences icons
+    mkdir -p osx/preferences
+    for i in defaults email kdm_email cover_sheet keys tms notifications locations sound identifiers servers general advanced; do
+        inkbatch -i bounds-$i -o osx/preferences/$i.png --width 32 --height 32 src/preferences.svg
+        inkbatch -i bounds-$i -o osx/preferences/$i@2x.png --width 64 --height 64 src/preferences.svg
     done
 
+    # OS X menu bar icon for the server
+    $INKSCAPE --export-filename=osx/dcpomatic_small.png -w 64 -h 64 src/dcpomatic_small.svg
+
     # Splash screen (all platforms)
-    $INKSCAPE splash.png splash.svg -w 400 -h 300
+    $INKSCAPE --export-filename=splash.png src/splash.svg -w 400 -h 300
+
+    # Timeline toolbar icons (all platforms)
+    for i in select zoom zoom_all snap sequence; do
+        $INKSCAPE --export-filename=$i.png src/$i.svg -w 32 -h 32
+    done
+
+    # Playlist editor tick/no-tick
+    $INKSCAPE --export-filename=tick.png src/tick.svg -w 16 -h 16
+    $INKSCAPE --export-filename=no_tick.png src/no_tick.svg -w 16 -h 16
+
+    # Link icon
+    $INKSCAPE --export-filename=link.png src/link.svg -w 9 -h 16
+
+    # favicon
+    mkdir -p web
+    convert src/web.png -resize 256x256 -transparent white web/favicon-256x256.png
+    for r in 16 32 64 128; do
+       convert web/favicon-256x256.png -resize $rx$r web/favicon-${r}x${r}.png
+    done
+    convert web/favicon-16x16.png web/favicon-32x32.png web/favicon-64x64.png web/favicon-128x128.png web/favicon-256x256.png web/favicon.ico
+    convert src/web.png -resize 123x123 -transparent white web/logo.png
 fi