4 grep -xq '[0-9]\+' <<<"$1"
8 if [ "${1##*.}" = mkv ]; then
10 elif [ "${1##*.}" = ogm ]; then
18 local file tail eq eqt m matches max score
24 if [ "${eq%% *}" -eq "$2" ] 2>/dev/null; then
25 if [[ "$eq" == *\ * ]]; then
31 elif [ "${eq:0:${#2}}" = "$2" ]; then
33 if [ "${eqt:0:1}" = " " -o -z "$eqt" ]; then
39 if [ "$eqt" = "$3" -o "$eqt" = "($3)" ]; then
40 matches=("${matches[@]}" "$file")
44 if [ ${#matches[@]} -lt 1 ]; then return 1; fi
46 for m in "${matches[@]}"; do
47 score="$(scorefile "$m")"
48 if [ -z "$max" ] || [ "$score" -gt "$max" ]; then
58 cmdline=(mplayer -fs -ass)
59 unset pretend printfile
61 while [ "${1:0:1}" = - ]; do
66 echo "usage: planime [-htCf] [-A PLAYER-ARGS... ;] [-s PAR VAL] [NAME-QUAL] [EP|.] [TYPE-QUAL]" >&2
70 cmdline=("${cmdline[@]}" -ao oss:/dev/dsp1)
79 if [ "$a" = \; ]; then
82 cmdline=("${cmdline[@]}" "$a")
97 base="$(basename "$(pwd)")"
101 if [ $# -eq 0 ]; then
103 if [ -r curser ]; then
104 base="$base $(<curser)"
106 elif [ $# -eq 1 ]; then
110 if findfile "$base - " "$1" >/dev/null; then
117 elif [ $# -eq 2 ]; then
118 if findfile "$base - " "$1" "$2" >/dev/null; then
122 if [ "$1" = . -a -r curser ]; then
123 base="$base $(<curser)"
130 if [ "$1" = . -a -r curser ]; then
131 base="$base $(<curser)"
138 if [ "$ep" = . ]; then nextep=y; fi
139 if [ "$nextep" = y -a -r nextep ]; then
141 if ! isnum "$ep"; then
142 echo "planime: nextep is non-numeric" >&2
146 if [ -z "$file" ]; then
147 file="$(findfile "$base - " "$ep" "$tqual")"
150 if [ -z "$file" -o ! -r "$file" ]; then
151 echo "planime: no matching file found" >&2
155 case "${file##*.}" in
166 ifile=".${file}.info"
168 if [ -n "$savepar" ]; then
169 if [ -r "$ifile" ]; then
170 egrep -v "^${savepar} " "$ifile" >"$ifile.new"
171 mv -f "$ifile.new" "$ifile"
173 echo "$savepar $saveval" >>"$ifile"
179 if [ -r "$ifile" ]; then
182 while read par arg; do
183 if [ "$par" = delay ]; then
184 cmdline=("${cmdline[@]}" -delay "$arg")
185 elif [ "$par" = aspect ]; then
186 cmdline=("${cmdline[@]}" -aspect "$arg")
187 elif [ "$par" = volmod ]; then
188 cmdline=("${cmdline[@]}" -af volume="$arg")
189 elif [ "$par" = alang ]; then
192 elif [ "$par" = aid ]; then
195 elif [ "$par" = slang ]; then
198 elif [ "$par" = sid ]; then
207 if [ -n "$alang" ]; then
208 cmdline=("${cmdline[@]}" -alang "$alang")
209 elif [ -n "$aid" ]; then
210 cmdline=("${cmdline[@]}" -aid "$aid")
212 if [ -n "$slang" ]; then
213 cmdline=("${cmdline[@]}" -slang "$slang")
214 elif [ -n "$sid" ]; then
215 cmdline=("${cmdline[@]}" -sid "$sid")
218 if [ "`hostname`" = pc6 -o "`hostname`" = pc7 -a "$DISPLAY" = :1 ]; then chwp=y; fi
220 if [ -n "$pretend" ]; then
221 echo "${cmdline[@]}" "$file"
222 elif [ -n "$printfile" ]; then
225 if [ "$chwp" = y ]; then (sleep 2; randomwp) & fi
226 "${cmdline[@]}" "$file"
228 if [ "$nextep" = y ]; then
229 echo "0. Save and continue (or Space)"
230 echo "1. Continue without saving"
231 echo "2. Save and exit (or Enter)"
232 echo "3. Exit without saving (or any key)"
248 if [ "$save" = y ]; then
252 if [ "$cont" = y ]; then
253 exec "${origargs[@]}"