annotate genwebgallery @ 47:d1ad806b6ee3 default tip

picsize and thumbsize are now numbers in any case (used printf); non-regular and non-existent files are skipped
author meillo@marmaro.de
date Mon, 23 Jun 2008 20:57:55 +0200
parents b991e188f1fa
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
9f4fa0bc1584 initial commit
meillo@marmaro.de
parents:
diff changeset
1 #!/bin/sh
9f4fa0bc1584 initial commit
meillo@marmaro.de
parents:
diff changeset
2 #
6
cb0dff8c48c6 added option --overwrite; refactored checkCreateDir; fixed HTML output; introduced exit code 3 and 4; better help output
meillo@marmaro.de
parents: 2
diff changeset
3 # generates a web gallery
42
8f69055cf7ed switched from convert to mogrify; added support for resize-gd
schnalke@localhost.localdomain
parents: 41
diff changeset
4 # requires: ImageMagick (mogrify)
8f69055cf7ed switched from convert to mogrify; added support for resize-gd
schnalke@localhost.localdomain
parents: 41
diff changeset
5 # or: resize-gd
0
9f4fa0bc1584 initial commit
meillo@marmaro.de
parents:
diff changeset
6 #
9f4fa0bc1584 initial commit
meillo@marmaro.de
parents:
diff changeset
7 # meillo@marmaro.de
25
9fac7c9e2611 updated manpage; added link to website
meillo@marmaro.de
parents: 24
diff changeset
8 # http://prog.marmaro.de/genwebgallery
0
9f4fa0bc1584 initial commit
meillo@marmaro.de
parents:
diff changeset
9 #
9f4fa0bc1584 initial commit
meillo@marmaro.de
parents:
diff changeset
10
9f4fa0bc1584 initial commit
meillo@marmaro.de
parents:
diff changeset
11
15
326bcd4e1708 $PROGRAM instead of basename $0; printf instead of echo -n; command -v to test for installed convert
meillo@marmaro.de
parents: 14
diff changeset
12 PROGRAM=genwebgallery
46
b991e188f1fa added some quotes around vars; increased to version 0.8
meillo@marmaro.de
parents: 44
diff changeset
13 VERSION=0.8
2
abe1e48e0708 CHANGELOG gets generated now; reviewed Makefile
meillo@marmaro.de
parents: 0
diff changeset
14
6
cb0dff8c48c6 added option --overwrite; refactored checkCreateDir; fixed HTML output; introduced exit code 3 and 4; better help output
meillo@marmaro.de
parents: 2
diff changeset
15 verbose="no"
cb0dff8c48c6 added option --overwrite; refactored checkCreateDir; fixed HTML output; introduced exit code 3 and 4; better help output
meillo@marmaro.de
parents: 2
diff changeset
16 targetDir="webgallery"
cb0dff8c48c6 added option --overwrite; refactored checkCreateDir; fixed HTML output; introduced exit code 3 and 4; better help output
meillo@marmaro.de
parents: 2
diff changeset
17 overwrite="no"
cb0dff8c48c6 added option --overwrite; refactored checkCreateDir; fixed HTML output; introduced exit code 3 and 4; better help output
meillo@marmaro.de
parents: 2
diff changeset
18 index="index.html"
cb0dff8c48c6 added option --overwrite; refactored checkCreateDir; fixed HTML output; introduced exit code 3 and 4; better help output
meillo@marmaro.de
parents: 2
diff changeset
19 sizePic=800
cb0dff8c48c6 added option --overwrite; refactored checkCreateDir; fixed HTML output; introduced exit code 3 and 4; better help output
meillo@marmaro.de
parents: 2
diff changeset
20 sizeThumb=150
16
84c08287caa1 fixed bug when called without arguments; minor stuff
meillo@marmaro.de
parents: 15
diff changeset
21 galleryTitle=""
23
7f3cea97b789 "copyright notice" is known as "footer text" now
meillo@marmaro.de
parents: 16
diff changeset
22 footer=""
0
9f4fa0bc1584 initial commit
meillo@marmaro.de
parents:
diff changeset
23
42
8f69055cf7ed switched from convert to mogrify; added support for resize-gd
schnalke@localhost.localdomain
parents: 41
diff changeset
24 resizer=""
8f69055cf7ed switched from convert to mogrify; added support for resize-gd
schnalke@localhost.localdomain
parents: 41
diff changeset
25
6
cb0dff8c48c6 added option --overwrite; refactored checkCreateDir; fixed HTML output; introduced exit code 3 and 4; better help output
meillo@marmaro.de
parents: 2
diff changeset
26
0
9f4fa0bc1584 initial commit
meillo@marmaro.de
parents:
diff changeset
27
9f4fa0bc1584 initial commit
meillo@marmaro.de
parents:
diff changeset
28
14
6273a788c4fd removed bashism
meillo@marmaro.de
parents: 6
diff changeset
29 checkCreateDir() {
6
cb0dff8c48c6 added option --overwrite; refactored checkCreateDir; fixed HTML output; introduced exit code 3 and 4; better help output
meillo@marmaro.de
parents: 2
diff changeset
30 remove="no"
cb0dff8c48c6 added option --overwrite; refactored checkCreateDir; fixed HTML output; introduced exit code 3 and 4; better help output
meillo@marmaro.de
parents: 2
diff changeset
31 if [ -e "$targetDir" ] ; then
cb0dff8c48c6 added option --overwrite; refactored checkCreateDir; fixed HTML output; introduced exit code 3 and 4; better help output
meillo@marmaro.de
parents: 2
diff changeset
32 if [ "$overwrite" = "no" ] ; then
cb0dff8c48c6 added option --overwrite; refactored checkCreateDir; fixed HTML output; introduced exit code 3 and 4; better help output
meillo@marmaro.de
parents: 2
diff changeset
33 echo "output directory '$targetDir' already exists."
15
326bcd4e1708 $PROGRAM instead of basename $0; printf instead of echo -n; command -v to test for installed convert
meillo@marmaro.de
parents: 14
diff changeset
34 printf "remove it? [y/n] "
6
cb0dff8c48c6 added option --overwrite; refactored checkCreateDir; fixed HTML output; introduced exit code 3 and 4; better help output
meillo@marmaro.de
parents: 2
diff changeset
35 read remove
cb0dff8c48c6 added option --overwrite; refactored checkCreateDir; fixed HTML output; introduced exit code 3 and 4; better help output
meillo@marmaro.de
parents: 2
diff changeset
36 fi
0
9f4fa0bc1584 initial commit
meillo@marmaro.de
parents:
diff changeset
37
6
cb0dff8c48c6 added option --overwrite; refactored checkCreateDir; fixed HTML output; introduced exit code 3 and 4; better help output
meillo@marmaro.de
parents: 2
diff changeset
38 if [ "$remove" = "y" -o "$overwrite" = "yes" ] ; then
cb0dff8c48c6 added option --overwrite; refactored checkCreateDir; fixed HTML output; introduced exit code 3 and 4; better help output
meillo@marmaro.de
parents: 2
diff changeset
39 echo "removing '$targetDir' ..."
0
9f4fa0bc1584 initial commit
meillo@marmaro.de
parents:
diff changeset
40 rm -r "$targetDir"
6
cb0dff8c48c6 added option --overwrite; refactored checkCreateDir; fixed HTML output; introduced exit code 3 and 4; better help output
meillo@marmaro.de
parents: 2
diff changeset
41 if [ $? -ne 0 ] ; then
cb0dff8c48c6 added option --overwrite; refactored checkCreateDir; fixed HTML output; introduced exit code 3 and 4; better help output
meillo@marmaro.de
parents: 2
diff changeset
42 echo "ABORT"
cb0dff8c48c6 added option --overwrite; refactored checkCreateDir; fixed HTML output; introduced exit code 3 and 4; better help output
meillo@marmaro.de
parents: 2
diff changeset
43 exit 4
cb0dff8c48c6 added option --overwrite; refactored checkCreateDir; fixed HTML output; introduced exit code 3 and 4; better help output
meillo@marmaro.de
parents: 2
diff changeset
44 fi
0
9f4fa0bc1584 initial commit
meillo@marmaro.de
parents:
diff changeset
45 else
6
cb0dff8c48c6 added option --overwrite; refactored checkCreateDir; fixed HTML output; introduced exit code 3 and 4; better help output
meillo@marmaro.de
parents: 2
diff changeset
46 echo "keep output directory"
cb0dff8c48c6 added option --overwrite; refactored checkCreateDir; fixed HTML output; introduced exit code 3 and 4; better help output
meillo@marmaro.de
parents: 2
diff changeset
47 echo "ABORT"
cb0dff8c48c6 added option --overwrite; refactored checkCreateDir; fixed HTML output; introduced exit code 3 and 4; better help output
meillo@marmaro.de
parents: 2
diff changeset
48 exit 3
0
9f4fa0bc1584 initial commit
meillo@marmaro.de
parents:
diff changeset
49 fi
9f4fa0bc1584 initial commit
meillo@marmaro.de
parents:
diff changeset
50 fi
6
cb0dff8c48c6 added option --overwrite; refactored checkCreateDir; fixed HTML output; introduced exit code 3 and 4; better help output
meillo@marmaro.de
parents: 2
diff changeset
51
0
9f4fa0bc1584 initial commit
meillo@marmaro.de
parents:
diff changeset
52 mkdir -p "$targetDir"
9f4fa0bc1584 initial commit
meillo@marmaro.de
parents:
diff changeset
53 }
9f4fa0bc1584 initial commit
meillo@marmaro.de
parents:
diff changeset
54
9f4fa0bc1584 initial commit
meillo@marmaro.de
parents:
diff changeset
55
9f4fa0bc1584 initial commit
meillo@marmaro.de
parents:
diff changeset
56
6
cb0dff8c48c6 added option --overwrite; refactored checkCreateDir; fixed HTML output; introduced exit code 3 and 4; better help output
meillo@marmaro.de
parents: 2
diff changeset
57
14
6273a788c4fd removed bashism
meillo@marmaro.de
parents: 6
diff changeset
58 insertHeader() {
6
cb0dff8c48c6 added option --overwrite; refactored checkCreateDir; fixed HTML output; introduced exit code 3 and 4; better help output
meillo@marmaro.de
parents: 2
diff changeset
59 echo "
cb0dff8c48c6 added option --overwrite; refactored checkCreateDir; fixed HTML output; introduced exit code 3 and 4; better help output
meillo@marmaro.de
parents: 2
diff changeset
60 <?xml version=\"1.0\" encoding=\"utf-8\"?>
cb0dff8c48c6 added option --overwrite; refactored checkCreateDir; fixed HTML output; introduced exit code 3 and 4; better help output
meillo@marmaro.de
parents: 2
diff changeset
61 <!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.1//EN\"
cb0dff8c48c6 added option --overwrite; refactored checkCreateDir; fixed HTML output; introduced exit code 3 and 4; better help output
meillo@marmaro.de
parents: 2
diff changeset
62 \"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd\">
cb0dff8c48c6 added option --overwrite; refactored checkCreateDir; fixed HTML output; introduced exit code 3 and 4; better help output
meillo@marmaro.de
parents: 2
diff changeset
63 <html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\">
0
9f4fa0bc1584 initial commit
meillo@marmaro.de
parents:
diff changeset
64 <head>
9f4fa0bc1584 initial commit
meillo@marmaro.de
parents:
diff changeset
65 <title>$titleName</title>
6
cb0dff8c48c6 added option --overwrite; refactored checkCreateDir; fixed HTML output; introduced exit code 3 and 4; better help output
meillo@marmaro.de
parents: 2
diff changeset
66 <meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\" />
23
7f3cea97b789 "copyright notice" is known as "footer text" now
meillo@marmaro.de
parents: 16
diff changeset
67 <meta name=\"Generator\" content=\"genwebgallery - http://prog.marmaro.de/genwebgallery\" />
0
9f4fa0bc1584 initial commit
meillo@marmaro.de
parents:
diff changeset
68 </head>
9f4fa0bc1584 initial commit
meillo@marmaro.de
parents:
diff changeset
69 <body>
9f4fa0bc1584 initial commit
meillo@marmaro.de
parents:
diff changeset
70
6
cb0dff8c48c6 added option --overwrite; refactored checkCreateDir; fixed HTML output; introduced exit code 3 and 4; better help output
meillo@marmaro.de
parents: 2
diff changeset
71 "
0
9f4fa0bc1584 initial commit
meillo@marmaro.de
parents:
diff changeset
72 }
9f4fa0bc1584 initial commit
meillo@marmaro.de
parents:
diff changeset
73
9f4fa0bc1584 initial commit
meillo@marmaro.de
parents:
diff changeset
74
6
cb0dff8c48c6 added option --overwrite; refactored checkCreateDir; fixed HTML output; introduced exit code 3 and 4; better help output
meillo@marmaro.de
parents: 2
diff changeset
75
14
6273a788c4fd removed bashism
meillo@marmaro.de
parents: 6
diff changeset
76 insertFooter() {
6
cb0dff8c48c6 added option --overwrite; refactored checkCreateDir; fixed HTML output; introduced exit code 3 and 4; better help output
meillo@marmaro.de
parents: 2
diff changeset
77 echo "
0
9f4fa0bc1584 initial commit
meillo@marmaro.de
parents:
diff changeset
78
9f4fa0bc1584 initial commit
meillo@marmaro.de
parents:
diff changeset
79 </body>
9f4fa0bc1584 initial commit
meillo@marmaro.de
parents:
diff changeset
80 </html>
6
cb0dff8c48c6 added option --overwrite; refactored checkCreateDir; fixed HTML output; introduced exit code 3 and 4; better help output
meillo@marmaro.de
parents: 2
diff changeset
81 "
0
9f4fa0bc1584 initial commit
meillo@marmaro.de
parents:
diff changeset
82 }
9f4fa0bc1584 initial commit
meillo@marmaro.de
parents:
diff changeset
83
9f4fa0bc1584 initial commit
meillo@marmaro.de
parents:
diff changeset
84
6
cb0dff8c48c6 added option --overwrite; refactored checkCreateDir; fixed HTML output; introduced exit code 3 and 4; better help output
meillo@marmaro.de
parents: 2
diff changeset
85
14
6273a788c4fd removed bashism
meillo@marmaro.de
parents: 6
diff changeset
86 log() {
6
cb0dff8c48c6 added option --overwrite; refactored checkCreateDir; fixed HTML output; introduced exit code 3 and 4; better help output
meillo@marmaro.de
parents: 2
diff changeset
87 if [ $verbose = "yes" ] ; then
0
9f4fa0bc1584 initial commit
meillo@marmaro.de
parents:
diff changeset
88 echo "$1";
9f4fa0bc1584 initial commit
meillo@marmaro.de
parents:
diff changeset
89 fi
9f4fa0bc1584 initial commit
meillo@marmaro.de
parents:
diff changeset
90 }
9f4fa0bc1584 initial commit
meillo@marmaro.de
parents:
diff changeset
91
9f4fa0bc1584 initial commit
meillo@marmaro.de
parents:
diff changeset
92
6
cb0dff8c48c6 added option --overwrite; refactored checkCreateDir; fixed HTML output; introduced exit code 3 and 4; better help output
meillo@marmaro.de
parents: 2
diff changeset
93
42
8f69055cf7ed switched from convert to mogrify; added support for resize-gd
schnalke@localhost.localdomain
parents: 41
diff changeset
94 checkResizer() {
8f69055cf7ed switched from convert to mogrify; added support for resize-gd
schnalke@localhost.localdomain
parents: 41
diff changeset
95 if [ `command -v mogrify` ] ; then
43
b526a65d5066 improved printout messages
meillo@marmaro.de
parents: 42
diff changeset
96 log "using 'mogrify' to resize images"
42
8f69055cf7ed switched from convert to mogrify; added support for resize-gd
schnalke@localhost.localdomain
parents: 41
diff changeset
97 log "`mogrify -version`"
8f69055cf7ed switched from convert to mogrify; added support for resize-gd
schnalke@localhost.localdomain
parents: 41
diff changeset
98 resizer="mogrify"
8f69055cf7ed switched from convert to mogrify; added support for resize-gd
schnalke@localhost.localdomain
parents: 41
diff changeset
99 elif [ `command -v resize-gd` ] ; then
43
b526a65d5066 improved printout messages
meillo@marmaro.de
parents: 42
diff changeset
100 log "using 'resize-gd' to resize images"
42
8f69055cf7ed switched from convert to mogrify; added support for resize-gd
schnalke@localhost.localdomain
parents: 41
diff changeset
101 log "`resize-gd --version`"
8f69055cf7ed switched from convert to mogrify; added support for resize-gd
schnalke@localhost.localdomain
parents: 41
diff changeset
102 resizer="resize-gd"
8f69055cf7ed switched from convert to mogrify; added support for resize-gd
schnalke@localhost.localdomain
parents: 41
diff changeset
103 else
43
b526a65d5066 improved printout messages
meillo@marmaro.de
parents: 42
diff changeset
104 echo "No supported image resize program found."
b526a65d5066 improved printout messages
meillo@marmaro.de
parents: 42
diff changeset
105 echo "Supported are:"
b526a65d5066 improved printout messages
meillo@marmaro.de
parents: 42
diff changeset
106 echo "- 'mogrify' (from package 'imagemagick')"
b526a65d5066 improved printout messages
meillo@marmaro.de
parents: 42
diff changeset
107 echo "- 'resize-gd'"
6
cb0dff8c48c6 added option --overwrite; refactored checkCreateDir; fixed HTML output; introduced exit code 3 and 4; better help output
meillo@marmaro.de
parents: 2
diff changeset
108 echo "ABORT"
0
9f4fa0bc1584 initial commit
meillo@marmaro.de
parents:
diff changeset
109 exit 2
9f4fa0bc1584 initial commit
meillo@marmaro.de
parents:
diff changeset
110 fi
9f4fa0bc1584 initial commit
meillo@marmaro.de
parents:
diff changeset
111 }
9f4fa0bc1584 initial commit
meillo@marmaro.de
parents:
diff changeset
112
9f4fa0bc1584 initial commit
meillo@marmaro.de
parents:
diff changeset
113
42
8f69055cf7ed switched from convert to mogrify; added support for resize-gd
schnalke@localhost.localdomain
parents: 41
diff changeset
114 # call with: resize <size> <file>
8f69055cf7ed switched from convert to mogrify; added support for resize-gd
schnalke@localhost.localdomain
parents: 41
diff changeset
115 resize() {
8f69055cf7ed switched from convert to mogrify; added support for resize-gd
schnalke@localhost.localdomain
parents: 41
diff changeset
116 if [ "$resizer" = "mogrify" ] ; then
8f69055cf7ed switched from convert to mogrify; added support for resize-gd
schnalke@localhost.localdomain
parents: 41
diff changeset
117 mogrify -resize "${1}x${1}" "$2"
8f69055cf7ed switched from convert to mogrify; added support for resize-gd
schnalke@localhost.localdomain
parents: 41
diff changeset
118 elif [ "$resizer" = "resize-gd" ] ; then
8f69055cf7ed switched from convert to mogrify; added support for resize-gd
schnalke@localhost.localdomain
parents: 41
diff changeset
119 resize-gd "$1" "$2"
8f69055cf7ed switched from convert to mogrify; added support for resize-gd
schnalke@localhost.localdomain
parents: 41
diff changeset
120 else
8f69055cf7ed switched from convert to mogrify; added support for resize-gd
schnalke@localhost.localdomain
parents: 41
diff changeset
121 echo "No resize program available."
43
b526a65d5066 improved printout messages
meillo@marmaro.de
parents: 42
diff changeset
122 echo
b526a65d5066 improved printout messages
meillo@marmaro.de
parents: 42
diff changeset
123 echo "It's most likely a program bug if you see this message."
42
8f69055cf7ed switched from convert to mogrify; added support for resize-gd
schnalke@localhost.localdomain
parents: 41
diff changeset
124 echo "Please contact the author or maintainer (see man page)."
8f69055cf7ed switched from convert to mogrify; added support for resize-gd
schnalke@localhost.localdomain
parents: 41
diff changeset
125 echo "ABORT"
8f69055cf7ed switched from convert to mogrify; added support for resize-gd
schnalke@localhost.localdomain
parents: 41
diff changeset
126 exit 2
8f69055cf7ed switched from convert to mogrify; added support for resize-gd
schnalke@localhost.localdomain
parents: 41
diff changeset
127 fi
8f69055cf7ed switched from convert to mogrify; added support for resize-gd
schnalke@localhost.localdomain
parents: 41
diff changeset
128 return "$?"
8f69055cf7ed switched from convert to mogrify; added support for resize-gd
schnalke@localhost.localdomain
parents: 41
diff changeset
129 }
8f69055cf7ed switched from convert to mogrify; added support for resize-gd
schnalke@localhost.localdomain
parents: 41
diff changeset
130
6
cb0dff8c48c6 added option --overwrite; refactored checkCreateDir; fixed HTML output; introduced exit code 3 and 4; better help output
meillo@marmaro.de
parents: 2
diff changeset
131
14
6273a788c4fd removed bashism
meillo@marmaro.de
parents: 6
diff changeset
132 usage() {
16
84c08287caa1 fixed bug when called without arguments; minor stuff
meillo@marmaro.de
parents: 15
diff changeset
133 echo "usage: $PROGRAM [OPTIONS] PICTURES"
6
cb0dff8c48c6 added option --overwrite; refactored checkCreateDir; fixed HTML output; introduced exit code 3 and 4; better help output
meillo@marmaro.de
parents: 2
diff changeset
134 exit 1
cb0dff8c48c6 added option --overwrite; refactored checkCreateDir; fixed HTML output; introduced exit code 3 and 4; better help output
meillo@marmaro.de
parents: 2
diff changeset
135 }
0
9f4fa0bc1584 initial commit
meillo@marmaro.de
parents:
diff changeset
136
9f4fa0bc1584 initial commit
meillo@marmaro.de
parents:
diff changeset
137
9f4fa0bc1584 initial commit
meillo@marmaro.de
parents:
diff changeset
138
14
6273a788c4fd removed bashism
meillo@marmaro.de
parents: 6
diff changeset
139 help() {
15
326bcd4e1708 $PROGRAM instead of basename $0; printf instead of echo -n; command -v to test for installed convert
meillo@marmaro.de
parents: 14
diff changeset
140 echo "$PROGRAM
6
cb0dff8c48c6 added option --overwrite; refactored checkCreateDir; fixed HTML output; introduced exit code 3 and 4; better help output
meillo@marmaro.de
parents: 2
diff changeset
141
cb0dff8c48c6 added option --overwrite; refactored checkCreateDir; fixed HTML output; introduced exit code 3 and 4; better help output
meillo@marmaro.de
parents: 2
diff changeset
142 generates a web gallery consisting of html pages
cb0dff8c48c6 added option --overwrite; refactored checkCreateDir; fixed HTML output; introduced exit code 3 and 4; better help output
meillo@marmaro.de
parents: 2
diff changeset
143
15
326bcd4e1708 $PROGRAM instead of basename $0; printf instead of echo -n; command -v to test for installed convert
meillo@marmaro.de
parents: 14
diff changeset
144 usage: $PROGRAM [OPTIONS] PICTURES
6
cb0dff8c48c6 added option --overwrite; refactored checkCreateDir; fixed HTML output; introduced exit code 3 and 4; better help output
meillo@marmaro.de
parents: 2
diff changeset
145
cb0dff8c48c6 added option --overwrite; refactored checkCreateDir; fixed HTML output; introduced exit code 3 and 4; better help output
meillo@marmaro.de
parents: 2
diff changeset
146 options:
cb0dff8c48c6 added option --overwrite; refactored checkCreateDir; fixed HTML output; introduced exit code 3 and 4; better help output
meillo@marmaro.de
parents: 2
diff changeset
147 --version print program version
cb0dff8c48c6 added option --overwrite; refactored checkCreateDir; fixed HTML output; introduced exit code 3 and 4; better help output
meillo@marmaro.de
parents: 2
diff changeset
148 --help display this output
cb0dff8c48c6 added option --overwrite; refactored checkCreateDir; fixed HTML output; introduced exit code 3 and 4; better help output
meillo@marmaro.de
parents: 2
diff changeset
149 -v be verbose ($verbose)
cb0dff8c48c6 added option --overwrite; refactored checkCreateDir; fixed HTML output; introduced exit code 3 and 4; better help output
meillo@marmaro.de
parents: 2
diff changeset
150 -o DIR folder where generated files go to ($targetDir)
cb0dff8c48c6 added option --overwrite; refactored checkCreateDir; fixed HTML output; introduced exit code 3 and 4; better help output
meillo@marmaro.de
parents: 2
diff changeset
151 -i FILE the name of the index file ($index)
cb0dff8c48c6 added option --overwrite; refactored checkCreateDir; fixed HTML output; introduced exit code 3 and 4; better help output
meillo@marmaro.de
parents: 2
diff changeset
152 -t TEXT title of the gallery ($galleryTitle)
23
7f3cea97b789 "copyright notice" is known as "footer text" now
meillo@marmaro.de
parents: 16
diff changeset
153 -f TEXT footer text ($footer)
15
326bcd4e1708 $PROGRAM instead of basename $0; printf instead of echo -n; command -v to test for installed convert
meillo@marmaro.de
parents: 14
diff changeset
154 -ps PIXELS size of the pictures ($sizePic)
6
cb0dff8c48c6 added option --overwrite; refactored checkCreateDir; fixed HTML output; introduced exit code 3 and 4; better help output
meillo@marmaro.de
parents: 2
diff changeset
155 -ts PIXELS size of the thumbnails ($sizeThumb)
cb0dff8c48c6 added option --overwrite; refactored checkCreateDir; fixed HTML output; introduced exit code 3 and 4; better help output
meillo@marmaro.de
parents: 2
diff changeset
156 --overwrite overwrite output directory ($overwrite)
cb0dff8c48c6 added option --overwrite; refactored checkCreateDir; fixed HTML output; introduced exit code 3 and 4; better help output
meillo@marmaro.de
parents: 2
diff changeset
157
15
326bcd4e1708 $PROGRAM instead of basename $0; printf instead of echo -n; command -v to test for installed convert
meillo@marmaro.de
parents: 14
diff changeset
158 for more information see man page: $PROGRAM(1)
6
cb0dff8c48c6 added option --overwrite; refactored checkCreateDir; fixed HTML output; introduced exit code 3 and 4; better help output
meillo@marmaro.de
parents: 2
diff changeset
159
cb0dff8c48c6 added option --overwrite; refactored checkCreateDir; fixed HTML output; introduced exit code 3 and 4; better help output
meillo@marmaro.de
parents: 2
diff changeset
160 author: meillo@marmaro.de
23
7f3cea97b789 "copyright notice" is known as "footer text" now
meillo@marmaro.de
parents: 16
diff changeset
161 homepage: http://prog.marmaro.de/genwebgallery
6
cb0dff8c48c6 added option --overwrite; refactored checkCreateDir; fixed HTML output; introduced exit code 3 and 4; better help output
meillo@marmaro.de
parents: 2
diff changeset
162 "
0
9f4fa0bc1584 initial commit
meillo@marmaro.de
parents:
diff changeset
163 exit 0
6
cb0dff8c48c6 added option --overwrite; refactored checkCreateDir; fixed HTML output; introduced exit code 3 and 4; better help output
meillo@marmaro.de
parents: 2
diff changeset
164 }
cb0dff8c48c6 added option --overwrite; refactored checkCreateDir; fixed HTML output; introduced exit code 3 and 4; better help output
meillo@marmaro.de
parents: 2
diff changeset
165
0
9f4fa0bc1584 initial commit
meillo@marmaro.de
parents:
diff changeset
166
9f4fa0bc1584 initial commit
meillo@marmaro.de
parents:
diff changeset
167
6
cb0dff8c48c6 added option --overwrite; refactored checkCreateDir; fixed HTML output; introduced exit code 3 and 4; better help output
meillo@marmaro.de
parents: 2
diff changeset
168
cb0dff8c48c6 added option --overwrite; refactored checkCreateDir; fixed HTML output; introduced exit code 3 and 4; better help output
meillo@marmaro.de
parents: 2
diff changeset
169 # option processing
cb0dff8c48c6 added option --overwrite; refactored checkCreateDir; fixed HTML output; introduced exit code 3 and 4; better help output
meillo@marmaro.de
parents: 2
diff changeset
170
44
039f9a8b823b tiny code beautifying
meillo@marmaro.de
parents: 43
diff changeset
171 while [ "$#" -ge 1 ] && [ "`echo "$1" | awk '{print substr($0,1,1)}'`" = '-' ] ; do
0
9f4fa0bc1584 initial commit
meillo@marmaro.de
parents:
diff changeset
172 case $1 in
9f4fa0bc1584 initial commit
meillo@marmaro.de
parents:
diff changeset
173 '--version')
15
326bcd4e1708 $PROGRAM instead of basename $0; printf instead of echo -n; command -v to test for installed convert
meillo@marmaro.de
parents: 14
diff changeset
174 echo "$PROGRAM version $VERSION"
0
9f4fa0bc1584 initial commit
meillo@marmaro.de
parents:
diff changeset
175 exit 0
9f4fa0bc1584 initial commit
meillo@marmaro.de
parents:
diff changeset
176 ;;
9f4fa0bc1584 initial commit
meillo@marmaro.de
parents:
diff changeset
177 '--help')
6
cb0dff8c48c6 added option --overwrite; refactored checkCreateDir; fixed HTML output; introduced exit code 3 and 4; better help output
meillo@marmaro.de
parents: 2
diff changeset
178 help
0
9f4fa0bc1584 initial commit
meillo@marmaro.de
parents:
diff changeset
179 ;;
9f4fa0bc1584 initial commit
meillo@marmaro.de
parents:
diff changeset
180 '-v' | '--verbose')
6
cb0dff8c48c6 added option --overwrite; refactored checkCreateDir; fixed HTML output; introduced exit code 3 and 4; better help output
meillo@marmaro.de
parents: 2
diff changeset
181 verbose="yes"
0
9f4fa0bc1584 initial commit
meillo@marmaro.de
parents:
diff changeset
182 shift
9f4fa0bc1584 initial commit
meillo@marmaro.de
parents:
diff changeset
183 ;;
9f4fa0bc1584 initial commit
meillo@marmaro.de
parents:
diff changeset
184 '-o' | '--output')
6
cb0dff8c48c6 added option --overwrite; refactored checkCreateDir; fixed HTML output; introduced exit code 3 and 4; better help output
meillo@marmaro.de
parents: 2
diff changeset
185 targetDir="$2"
0
9f4fa0bc1584 initial commit
meillo@marmaro.de
parents:
diff changeset
186 shift
9f4fa0bc1584 initial commit
meillo@marmaro.de
parents:
diff changeset
187 shift
9f4fa0bc1584 initial commit
meillo@marmaro.de
parents:
diff changeset
188 ;;
9f4fa0bc1584 initial commit
meillo@marmaro.de
parents:
diff changeset
189 '-i' | '--index')
46
b991e188f1fa added some quotes around vars; increased to version 0.8
meillo@marmaro.de
parents: 44
diff changeset
190 index="$2"
0
9f4fa0bc1584 initial commit
meillo@marmaro.de
parents:
diff changeset
191 shift
9f4fa0bc1584 initial commit
meillo@marmaro.de
parents:
diff changeset
192 shift
9f4fa0bc1584 initial commit
meillo@marmaro.de
parents:
diff changeset
193 ;;
9f4fa0bc1584 initial commit
meillo@marmaro.de
parents:
diff changeset
194 '-t' | '--title')
6
cb0dff8c48c6 added option --overwrite; refactored checkCreateDir; fixed HTML output; introduced exit code 3 and 4; better help output
meillo@marmaro.de
parents: 2
diff changeset
195 galleryTitle="$2"
0
9f4fa0bc1584 initial commit
meillo@marmaro.de
parents:
diff changeset
196 shift
9f4fa0bc1584 initial commit
meillo@marmaro.de
parents:
diff changeset
197 shift
9f4fa0bc1584 initial commit
meillo@marmaro.de
parents:
diff changeset
198 ;;
23
7f3cea97b789 "copyright notice" is known as "footer text" now
meillo@marmaro.de
parents: 16
diff changeset
199 '-f' | '--footer')
46
b991e188f1fa added some quotes around vars; increased to version 0.8
meillo@marmaro.de
parents: 44
diff changeset
200 footer="$2"
0
9f4fa0bc1584 initial commit
meillo@marmaro.de
parents:
diff changeset
201 shift
9f4fa0bc1584 initial commit
meillo@marmaro.de
parents:
diff changeset
202 shift
9f4fa0bc1584 initial commit
meillo@marmaro.de
parents:
diff changeset
203 ;;
9f4fa0bc1584 initial commit
meillo@marmaro.de
parents:
diff changeset
204 '-ps' | '--pic-size')
47
d1ad806b6ee3 picsize and thumbsize are now numbers in any case (used printf); non-regular and non-existent files are skipped
meillo@marmaro.de
parents: 46
diff changeset
205 sizePic="`echo "$2" | awk '{printf("%d",$0)}'`"
0
9f4fa0bc1584 initial commit
meillo@marmaro.de
parents:
diff changeset
206 shift
9f4fa0bc1584 initial commit
meillo@marmaro.de
parents:
diff changeset
207 shift
9f4fa0bc1584 initial commit
meillo@marmaro.de
parents:
diff changeset
208 ;;
9f4fa0bc1584 initial commit
meillo@marmaro.de
parents:
diff changeset
209 '-ts' | '--thumb-size')
47
d1ad806b6ee3 picsize and thumbsize are now numbers in any case (used printf); non-regular and non-existent files are skipped
meillo@marmaro.de
parents: 46
diff changeset
210 sizeThumb="`echo "$2" | awk '{printf("%d",$0)}'`"
0
9f4fa0bc1584 initial commit
meillo@marmaro.de
parents:
diff changeset
211 shift
9f4fa0bc1584 initial commit
meillo@marmaro.de
parents:
diff changeset
212 shift
9f4fa0bc1584 initial commit
meillo@marmaro.de
parents:
diff changeset
213 ;;
6
cb0dff8c48c6 added option --overwrite; refactored checkCreateDir; fixed HTML output; introduced exit code 3 and 4; better help output
meillo@marmaro.de
parents: 2
diff changeset
214 '--overwrite')
cb0dff8c48c6 added option --overwrite; refactored checkCreateDir; fixed HTML output; introduced exit code 3 and 4; better help output
meillo@marmaro.de
parents: 2
diff changeset
215 overwrite="yes"
cb0dff8c48c6 added option --overwrite; refactored checkCreateDir; fixed HTML output; introduced exit code 3 and 4; better help output
meillo@marmaro.de
parents: 2
diff changeset
216 shift
cb0dff8c48c6 added option --overwrite; refactored checkCreateDir; fixed HTML output; introduced exit code 3 and 4; better help output
meillo@marmaro.de
parents: 2
diff changeset
217 ;;
0
9f4fa0bc1584 initial commit
meillo@marmaro.de
parents:
diff changeset
218 *)
9f4fa0bc1584 initial commit
meillo@marmaro.de
parents:
diff changeset
219 echo "invalid option: $1"
15
326bcd4e1708 $PROGRAM instead of basename $0; printf instead of echo -n; command -v to test for installed convert
meillo@marmaro.de
parents: 14
diff changeset
220 echo "see: $PROGRAM --help"
0
9f4fa0bc1584 initial commit
meillo@marmaro.de
parents:
diff changeset
221 exit 1
9f4fa0bc1584 initial commit
meillo@marmaro.de
parents:
diff changeset
222 esac
9f4fa0bc1584 initial commit
meillo@marmaro.de
parents:
diff changeset
223
9f4fa0bc1584 initial commit
meillo@marmaro.de
parents:
diff changeset
224 done
9f4fa0bc1584 initial commit
meillo@marmaro.de
parents:
diff changeset
225
9f4fa0bc1584 initial commit
meillo@marmaro.de
parents:
diff changeset
226 if [ $# -eq 0 ] ; then
6
cb0dff8c48c6 added option --overwrite; refactored checkCreateDir; fixed HTML output; introduced exit code 3 and 4; better help output
meillo@marmaro.de
parents: 2
diff changeset
227 usage
0
9f4fa0bc1584 initial commit
meillo@marmaro.de
parents:
diff changeset
228 fi
9f4fa0bc1584 initial commit
meillo@marmaro.de
parents:
diff changeset
229
9f4fa0bc1584 initial commit
meillo@marmaro.de
parents:
diff changeset
230
6
cb0dff8c48c6 added option --overwrite; refactored checkCreateDir; fixed HTML output; introduced exit code 3 and 4; better help output
meillo@marmaro.de
parents: 2
diff changeset
231
0
9f4fa0bc1584 initial commit
meillo@marmaro.de
parents:
diff changeset
232 # verbose output
6
cb0dff8c48c6 added option --overwrite; refactored checkCreateDir; fixed HTML output; introduced exit code 3 and 4; better help output
meillo@marmaro.de
parents: 2
diff changeset
233 log "verbose: $verbose"
cb0dff8c48c6 added option --overwrite; refactored checkCreateDir; fixed HTML output; introduced exit code 3 and 4; better help output
meillo@marmaro.de
parents: 2
diff changeset
234 log
cb0dff8c48c6 added option --overwrite; refactored checkCreateDir; fixed HTML output; introduced exit code 3 and 4; better help output
meillo@marmaro.de
parents: 2
diff changeset
235 log "output dir: $targetDir"
cb0dff8c48c6 added option --overwrite; refactored checkCreateDir; fixed HTML output; introduced exit code 3 and 4; better help output
meillo@marmaro.de
parents: 2
diff changeset
236 log "index file: $index"
cb0dff8c48c6 added option --overwrite; refactored checkCreateDir; fixed HTML output; introduced exit code 3 and 4; better help output
meillo@marmaro.de
parents: 2
diff changeset
237 log "gallery title: $galleryTitle"
23
7f3cea97b789 "copyright notice" is known as "footer text" now
meillo@marmaro.de
parents: 16
diff changeset
238 log "footer text: $footer"
6
cb0dff8c48c6 added option --overwrite; refactored checkCreateDir; fixed HTML output; introduced exit code 3 and 4; better help output
meillo@marmaro.de
parents: 2
diff changeset
239 log "picture size: ${sizePic}px"
cb0dff8c48c6 added option --overwrite; refactored checkCreateDir; fixed HTML output; introduced exit code 3 and 4; better help output
meillo@marmaro.de
parents: 2
diff changeset
240 log "thumbnail size: ${sizeThumb}px"
cb0dff8c48c6 added option --overwrite; refactored checkCreateDir; fixed HTML output; introduced exit code 3 and 4; better help output
meillo@marmaro.de
parents: 2
diff changeset
241 log "overwrite output dir: $overwrite"
cb0dff8c48c6 added option --overwrite; refactored checkCreateDir; fixed HTML output; introduced exit code 3 and 4; better help output
meillo@marmaro.de
parents: 2
diff changeset
242 log
42
8f69055cf7ed switched from convert to mogrify; added support for resize-gd
schnalke@localhost.localdomain
parents: 41
diff changeset
243 checkResizer
6
cb0dff8c48c6 added option --overwrite; refactored checkCreateDir; fixed HTML output; introduced exit code 3 and 4; better help output
meillo@marmaro.de
parents: 2
diff changeset
244 log
cb0dff8c48c6 added option --overwrite; refactored checkCreateDir; fixed HTML output; introduced exit code 3 and 4; better help output
meillo@marmaro.de
parents: 2
diff changeset
245
0
9f4fa0bc1584 initial commit
meillo@marmaro.de
parents:
diff changeset
246
9f4fa0bc1584 initial commit
meillo@marmaro.de
parents:
diff changeset
247
6
cb0dff8c48c6 added option --overwrite; refactored checkCreateDir; fixed HTML output; introduced exit code 3 and 4; better help output
meillo@marmaro.de
parents: 2
diff changeset
248 # generate web gallery
cb0dff8c48c6 added option --overwrite; refactored checkCreateDir; fixed HTML output; introduced exit code 3 and 4; better help output
meillo@marmaro.de
parents: 2
diff changeset
249
0
9f4fa0bc1584 initial commit
meillo@marmaro.de
parents:
diff changeset
250 checkCreateDir
9f4fa0bc1584 initial commit
meillo@marmaro.de
parents:
diff changeset
251
6
cb0dff8c48c6 added option --overwrite; refactored checkCreateDir; fixed HTML output; introduced exit code 3 and 4; better help output
meillo@marmaro.de
parents: 2
diff changeset
252 echo `insertHeader` > "$targetDir/$index"
cb0dff8c48c6 added option --overwrite; refactored checkCreateDir; fixed HTML output; introduced exit code 3 and 4; better help output
meillo@marmaro.de
parents: 2
diff changeset
253 if [ "$galleryTitle" != "" ] ; then
cb0dff8c48c6 added option --overwrite; refactored checkCreateDir; fixed HTML output; introduced exit code 3 and 4; better help output
meillo@marmaro.de
parents: 2
diff changeset
254 echo "<h1>$galleryTitle</h1>" >> "$targetDir/$index"
cb0dff8c48c6 added option --overwrite; refactored checkCreateDir; fixed HTML output; introduced exit code 3 and 4; better help output
meillo@marmaro.de
parents: 2
diff changeset
255 fi
0
9f4fa0bc1584 initial commit
meillo@marmaro.de
parents:
diff changeset
256
9f4fa0bc1584 initial commit
meillo@marmaro.de
parents:
diff changeset
257 for i in "$@" ; do
47
d1ad806b6ee3 picsize and thumbsize are now numbers in any case (used printf); non-regular and non-existent files are skipped
meillo@marmaro.de
parents: 46
diff changeset
258 # skip over invalid files
d1ad806b6ee3 picsize and thumbsize are now numbers in any case (used printf); non-regular and non-existent files are skipped
meillo@marmaro.de
parents: 46
diff changeset
259 if [ ! -f "$i" ] ; then
d1ad806b6ee3 picsize and thumbsize are now numbers in any case (used printf); non-regular and non-existent files are skipped
meillo@marmaro.de
parents: 46
diff changeset
260 log "does not exist, or no regular file: $i"
d1ad806b6ee3 picsize and thumbsize are now numbers in any case (used printf); non-regular and non-existent files are skipped
meillo@marmaro.de
parents: 46
diff changeset
261 log " skipping"
d1ad806b6ee3 picsize and thumbsize are now numbers in any case (used printf); non-regular and non-existent files are skipped
meillo@marmaro.de
parents: 46
diff changeset
262 continue
d1ad806b6ee3 picsize and thumbsize are now numbers in any case (used printf); non-regular and non-existent files are skipped
meillo@marmaro.de
parents: 46
diff changeset
263 fi
d1ad806b6ee3 picsize and thumbsize are now numbers in any case (used printf); non-regular and non-existent files are skipped
meillo@marmaro.de
parents: 46
diff changeset
264
6
cb0dff8c48c6 added option --overwrite; refactored checkCreateDir; fixed HTML output; introduced exit code 3 and 4; better help output
meillo@marmaro.de
parents: 2
diff changeset
265 file="`basename $i`"
0
9f4fa0bc1584 initial commit
meillo@marmaro.de
parents:
diff changeset
266 targetFile="$targetDir/$file.htm"
9f4fa0bc1584 initial commit
meillo@marmaro.de
parents:
diff changeset
267 log "processing file: $file"
9f4fa0bc1584 initial commit
meillo@marmaro.de
parents:
diff changeset
268
24
572f219cf0f4 added skipping of not supported image types (still a problem in cornercases); updated TODO
meillo@marmaro.de
parents: 23
diff changeset
269 # copy and resize pics
42
8f69055cf7ed switched from convert to mogrify; added support for resize-gd
schnalke@localhost.localdomain
parents: 41
diff changeset
270 cp "$i" "$targetDir/$file"
8f69055cf7ed switched from convert to mogrify; added support for resize-gd
schnalke@localhost.localdomain
parents: 41
diff changeset
271 resize "$sizePic" "$targetDir/$file"
24
572f219cf0f4 added skipping of not supported image types (still a problem in cornercases); updated TODO
meillo@marmaro.de
parents: 23
diff changeset
272 if [ $? -ne 0 ] ; then
572f219cf0f4 added skipping of not supported image types (still a problem in cornercases); updated TODO
meillo@marmaro.de
parents: 23
diff changeset
273 log " skipping"
42
8f69055cf7ed switched from convert to mogrify; added support for resize-gd
schnalke@localhost.localdomain
parents: 41
diff changeset
274 rm "$targetDir/$file"
24
572f219cf0f4 added skipping of not supported image types (still a problem in cornercases); updated TODO
meillo@marmaro.de
parents: 23
diff changeset
275 continue
572f219cf0f4 added skipping of not supported image types (still a problem in cornercases); updated TODO
meillo@marmaro.de
parents: 23
diff changeset
276 fi
42
8f69055cf7ed switched from convert to mogrify; added support for resize-gd
schnalke@localhost.localdomain
parents: 41
diff changeset
277 cp "$i" "$targetDir/_$file"
8f69055cf7ed switched from convert to mogrify; added support for resize-gd
schnalke@localhost.localdomain
parents: 41
diff changeset
278 resize "$sizeThumb" "$targetDir/_$file"
24
572f219cf0f4 added skipping of not supported image types (still a problem in cornercases); updated TODO
meillo@marmaro.de
parents: 23
diff changeset
279
0
9f4fa0bc1584 initial commit
meillo@marmaro.de
parents:
diff changeset
280 # generate pic page
6
cb0dff8c48c6 added option --overwrite; refactored checkCreateDir; fixed HTML output; introduced exit code 3 and 4; better help output
meillo@marmaro.de
parents: 2
diff changeset
281 echo `insertHeader` > "$targetFile"
cb0dff8c48c6 added option --overwrite; refactored checkCreateDir; fixed HTML output; introduced exit code 3 and 4; better help output
meillo@marmaro.de
parents: 2
diff changeset
282 if [ "$galleryTitle" != "" ] ; then
cb0dff8c48c6 added option --overwrite; refactored checkCreateDir; fixed HTML output; introduced exit code 3 and 4; better help output
meillo@marmaro.de
parents: 2
diff changeset
283 echo "<h1>$galleryTitle</h1>" >> "$targetFile"
cb0dff8c48c6 added option --overwrite; refactored checkCreateDir; fixed HTML output; introduced exit code 3 and 4; better help output
meillo@marmaro.de
parents: 2
diff changeset
284 fi
cb0dff8c48c6 added option --overwrite; refactored checkCreateDir; fixed HTML output; introduced exit code 3 and 4; better help output
meillo@marmaro.de
parents: 2
diff changeset
285 echo "<p><a href=\"$index\"><img src=\"$file\" alt=\"$file\" /></a></p>" >> "$targetFile"
23
7f3cea97b789 "copyright notice" is known as "footer text" now
meillo@marmaro.de
parents: 16
diff changeset
286 if [ "$footer" != "" ] ; then
7f3cea97b789 "copyright notice" is known as "footer text" now
meillo@marmaro.de
parents: 16
diff changeset
287 echo "<p>$footer</p>" >> "$targetFile"
6
cb0dff8c48c6 added option --overwrite; refactored checkCreateDir; fixed HTML output; introduced exit code 3 and 4; better help output
meillo@marmaro.de
parents: 2
diff changeset
288 fi
cb0dff8c48c6 added option --overwrite; refactored checkCreateDir; fixed HTML output; introduced exit code 3 and 4; better help output
meillo@marmaro.de
parents: 2
diff changeset
289 echo `insertFooter` >> "$targetFile"
0
9f4fa0bc1584 initial commit
meillo@marmaro.de
parents:
diff changeset
290
9f4fa0bc1584 initial commit
meillo@marmaro.de
parents:
diff changeset
291 # generate content for index file
9f4fa0bc1584 initial commit
meillo@marmaro.de
parents:
diff changeset
292 echo " <a href=\"$file.htm\"><img src=\"_$file\" alt=\"$file\" /></a>" >> "$targetDir/$index"
9f4fa0bc1584 initial commit
meillo@marmaro.de
parents:
diff changeset
293 done
9f4fa0bc1584 initial commit
meillo@marmaro.de
parents:
diff changeset
294
23
7f3cea97b789 "copyright notice" is known as "footer text" now
meillo@marmaro.de
parents: 16
diff changeset
295 if [ "$footer" != "" ] ; then
7f3cea97b789 "copyright notice" is known as "footer text" now
meillo@marmaro.de
parents: 16
diff changeset
296 echo "<p>$footer</p>" >> "$targetDir/$index"
6
cb0dff8c48c6 added option --overwrite; refactored checkCreateDir; fixed HTML output; introduced exit code 3 and 4; better help output
meillo@marmaro.de
parents: 2
diff changeset
297 fi
cb0dff8c48c6 added option --overwrite; refactored checkCreateDir; fixed HTML output; introduced exit code 3 and 4; better help output
meillo@marmaro.de
parents: 2
diff changeset
298 echo `insertFooter` >> "$targetDir/$index"