]> git.plutz.net Git - serve0/blob - helpers/genall.sh
tagging engine
[serve0] / helpers / genall.sh
1 #!/bin/zsh
2
3 dir="$(dirname $0)"
4 genmeta="$dir/genmeta.sh"
5 genthumb="$dir/genthumb.sh"
6 . "$dir/../constants.sh"
7
8 addtag(){
9   meta="$1"
10   info="$(basename "$1" |sed -r 's:^(.+)\.meta$:\1:')"
11   tag="$2"
12   
13   length=0; width=0; height=0;
14   if [ -r "$meta" ]; then
15     head -n1 "$meta" |read length width height info
16     tags="$(sed -n 2p "$meta" |sed -r 's:^\|(.*)$:\1:')"
17     description="$(sed -n '3,$p' "$meta")"
18   fi
19   
20   egrep -q "(^|.*\|)$tag(\|.*|$)" <<<"$tags" || tags="$tag|$tags"
21   
22   cat <<EOF >"$meta"
23 $length $width  $height $info
24 $tags
25 $description
26 EOF
27 }
28
29
30 for each in *; do
31 if (egrep -q "$file_pattern" <<<"$each"); then
32   echo -n "$each ... Thumb ..."
33   $genthumb "$each" "${each}.jpg"
34   echo -n ' Meta ...'
35   $genmeta "$each" "${each}.meta"
36   echo -n ' Tags ...'
37   for tag in $*; do
38     addtag "${each}.meta" "$tag"
39   done
40   echo ' Done!'
41 fi; done