-#!/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 dcpomatic2_editor"
+
+
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
+
+ INKSCAPE_EXPORT="$INKSCAPE -C --export-type=png"
# 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 --export-filename=osx/$p.iconset/icon_${r}x${r}.png -w $r -h $r src/$p.svg
+ $INKSCAPE_EXPORT --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 --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 400
- 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 c in black white; do
+ for i in defaults email kdm_email cover_sheet keys tms notifications locations sound identifiers servers general advanced non_standard; do
+ inkbatch --inkscape $INKSCAPE -i bounds-$i -o osx/preferences/${i}_${c}.png --width 32 --height 32 src/preferences_$c.svg
+ inkbatch --inkscape $INKSCAPE -i bounds-$i -o osx/preferences/${i}@2x_${c}.png --width 64 --height 64 src/preferences_$c.svg
+ done
done
+ # OS X menu bar icon for the server (in dark and light mode)
+ $INKSCAPE_EXPORT --export-filename=osx/dcpomatic_small_white.png -w 64 -h 64 src/dcpomatic_small_white.svg
+ $INKSCAPE_EXPORT --export-filename=osx/dcpomatic_small_black.png -w 64 -h 64 src/dcpomatic_small_black.svg
+
# Splash screen (all platforms)
- $INKSCAPE splash.png splash.svg -w 400 -h 300
+ $INKSCAPE_EXPORT --export-filename=splash.png src/splash.svg -w 400 -h 300
+
+ # Timeline toolbar icons (all platforms)
+ for c in black white; do
+ for i in select zoom zoom_all snap sequence; do
+ inkbatch --inkscape $INKSCAPE -i timeline-$i -o ${i}_${c}.png --width 32 --height 32 src/timeline_$c.svg
+ done
+ done
+
+ # Batch converter toolbar icons (all platforms)
+ for c in black white; do
+ for i in add pause; do
+ inkbatch --inkscape $INKSCAPE -i batch-$i -o ${i}_${c}.png --width 32 --height 32 src/batch_$c.svg
+ done
+ done
+
+ # Playlist editor tick/no-tick
+ $INKSCAPE_EXPORT --export-filename=tick.png src/tick.svg -w 16 -h 16
+ $INKSCAPE_EXPORT --export-filename=no_tick.png src/no_tick.svg -w 16 -h 16
+
+ # Link icon
+ $INKSCAPE_EXPORT --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