4 grep -xq '[0-9]\+' <<<"$1"
8 if [ "${1##*.}" = mkv ]; then
10 elif [ "${1##*.}" = ogm ]; then
18 if [ -r aliases ]; then
19 while read alias rest; do
20 if [ "$alias" = "$1" ]; then
30 if [ -n "$debug" ]; then echo "finding base='$1', ep='$2', qual='$3'" >&2; fi
31 local base file tail eq eqt m matches max score
33 base="$(findbase "$1")"
34 for file in "$base"*; do
35 tail="${file#"$base"}"
38 if [ "${eq%% *}" -eq "$2" ] 2>/dev/null; then
39 if [[ "$eq" == *\ * ]]; then
45 elif [ "${eq:0:${#2}}" = "$2" ]; then
47 if [ "${eqt:0:1}" = " " -o -z "$eqt" ]; then
53 if [ "$eqt" = "$3" -o "$eqt" = "($3)" ]; then
54 matches=("${matches[@]}" "$file")
58 if [ ${#matches[@]} -lt 1 ]; then return 1; fi
60 for m in "${matches[@]}"; do
61 score="$(scorefile "$m")"
62 if [ -n "$debug" ]; then echo "found \`$m': score $score" >&2; fi
63 if [ -z "$max" ] || [ "$score" -gt "$max" ]; then
68 if [ -n "$debug" ]; then echo "using \`$file'" >&2; fi
74 cmdline=(mplayer -fs -ass)
76 unset pretend printfile
78 while [ "${1:0:1}" = - ]; do
83 echo "usage: planime [-fdhtC] [-A PLAYER-ARGS... ;] [-s PAR VAL] [--] [NAME-QUAL] [EP|.] [TYPE-QUAL]" >&2
90 cmdline=("${cmdline[@]}" -ao oss:/dev/dsp1)
98 echo "planime: unterminated argument list" >&2
103 if [ "$a" = \; ]; then
106 cmdline=("${cmdline[@]}" "$a")
122 echo "planime: unknown option \`$a'"
128 dirbase="$(basename "$(pwd)")"
133 if [ $# -eq 0 ]; then
135 elif [ $# -eq 1 ]; then
142 elif [ $# -eq 2 ]; then
143 if findfile "$dirbase - " "$1" "$2" >/dev/null; then
156 if [ "$ep" = . ]; then nextep=y; fi
157 if [ "$nextep" = y -a -r nextep ]; then
159 if ! isnum "$ep"; then
160 echo "planime: nextep is non-numeric" >&2
164 if [ -z "$file" ]; then
165 if [ "$base" = . ]; then
166 if [ -r curser ]; then
172 curser="$(findbase "$base")"
174 if [ -n "$curser" ]; then
175 file="$(findfile "$dirbase $curser - " "$ep" "$tqual")" || \
176 file="$(findfile "$curser - " "$ep" "$tqual")"
178 file="$(findfile "$dirbase - " "$ep" "$tqual")"
182 if [ -z "$file" -o ! -r "$file" ]; then
183 echo "planime: no matching file found" >&2
187 case "${file##*.}" in
198 ifile=".${file}.info"
200 if [ -n "$savepar" ]; then
201 if [ -r "$ifile" ]; then
202 egrep -v "^${savepar} " "$ifile" >"$ifile.new"
203 mv -f "$ifile.new" "$ifile"
205 echo "$savepar $saveval" >>"$ifile"
211 if [ -r "$ifile" ]; then
214 while read par arg; do
215 if [ "$par" = delay ]; then
216 cmdline=("${cmdline[@]}" -delay "$arg")
217 elif [ "$par" = aspect ]; then
218 cmdline=("${cmdline[@]}" -aspect "$arg")
219 elif [ "$par" = volmod ]; then
220 cmdline=("${cmdline[@]}" -af volume="$arg")
221 elif [ "$par" = alang ]; then
224 elif [ "$par" = aid ]; then
227 elif [ "$par" = slang ]; then
230 elif [ "$par" = sid ]; then
239 if [ -n "$alang" ]; then
240 cmdline=("${cmdline[@]}" -alang "$alang")
241 elif [ -n "$aid" ]; then
242 cmdline=("${cmdline[@]}" -aid "$aid")
244 if [ -n "$slang" ]; then
245 cmdline=("${cmdline[@]}" -slang "$slang")
246 elif [ -n "$sid" ]; then
247 cmdline=("${cmdline[@]}" -sid "$sid")
250 if [ "`hostname`" = pc6 -o "`hostname`" = pc7 -a "$DISPLAY" = :1 ]; then chwp=y; fi
252 if [ -n "$pretend" ]; then
253 echo "${cmdline[@]}" "$file"
254 elif [ -n "$printfile" ]; then
257 if [ "$chwp" = y ]; then (sleep 2; randomwp) & fi
258 "${cmdline[@]}" "$file"
260 if [ "$nextep" = y ]; then
261 echo "0. Save and continue (or Space)"
262 echo "1. Continue without saving"
263 echo "2. Save and exit (or Enter)"
264 echo "3. Exit without saving (or any key)"
280 if [ "$save" = y ]; then
284 if [ "$cont" = y ]; then
285 exec "${origargs[@]}"