From 9fc0aa3b64b75da6ea44b8cba44c72f253fee6d5 Mon Sep 17 00:00:00 2001 From: fredrik Date: Wed, 21 Jan 2009 21:46:13 +0000 Subject: [PATCH] Prioritize correctly between different matching files. git-svn-id: svn+ssh://svn.dolda2000.com/srv/svn/repos/src/utils@1118 959494ce-11ee-0310-bf91-de5d638817bd --- planime | 28 ++++++++++++++++++++++++---- 1 file changed, 24 insertions(+), 4 deletions(-) diff --git a/planime b/planime index 90896f7..dfb8d64 100755 --- a/planime +++ b/planime @@ -4,8 +4,19 @@ isnum() { grep -xq '[0-9]\+' <<<"$1" } +scorefile() { + if [ "${1##*.}" = mkv ]; then + echo 10 + elif [ "${1##*.}" = ogm ]; then + echo 5 + else + echo 0 + fi +} + findfile() { - local file tail eq eqt m + local file tail eq eqt m matches max score + matches=() for file in "$1"*; do tail="${file#$1}" eq="${tail%.*}" @@ -26,12 +37,21 @@ findfile() { fi if [ "$m" = y ]; then if [ "$eqt" = "$3" -o "$eqt" = "($3)" ]; then - echo "$file" - return 0 + matches=("${matches[@]}" "$file") fi fi done - return 1 + if [ ${#matches[@]} -lt 1 ]; then return 1; fi + max= + for m in "${matches[@]}"; do + score="$(scorefile "$m")" + if [ -z "$max" ] || [ "$score" -gt "$max" ]; then + max="$score" + file="$m" + fi + done + echo "$file" + return 0 } origargs=("$0" "$@") -- 2.11.0