URI: 
       taddrom-processcsv.sh - addrom - Simple tool for adding a rom entry to a Pandora's Box 3 list.dat
   DIR Log
   DIR Files
   DIR Refs
   DIR README
   DIR LICENSE
       ---
       taddrom-processcsv.sh (1302B)
       ---
            1 #!/bin/sh
            2 
            3 ADDROMCMD="addrom"
            4 
            5 OPTIND=1
            6 cflag=0
            7 eflag=0
            8 iflag=
            9 ifile=
           10 oflag=
           11 ofile=
           12 
           13 usage()
           14 {
           15         printf "usage: %s %s %s %s %s %s %s\n" "$(basename $0)"    \
           16             "-c" "-e" "-i input-list-file" "[-o output-list-file]" \
           17             "[--]" "csv-game-list-file"
           18         printf "       %s %s %s %s %s %s %s\n" "$(basename $0)"    \
           19             "-c" "-e" "[-i input-list-file]" "-o output-list-file" \
           20             "[--]" "csv-game-list-file"
           21 }
           22 
           23 while getopts "cei:o:" flag
           24 do
           25         case "$flag" in
           26         c)        cflag=1
           27                 ;;
           28         e)        eflag=1
           29                 ;;
           30         i)        iflag=1
           31                 ifile="$OPTARG"
           32                 ;;
           33         o)        oflag=1
           34                 ofile="$OPTARG"
           35                 ;;
           36         \?)        usage
           37                 ;;
           38         esac
           39 done
           40 
           41 shift "$((OPTIND-1))"
           42 [ "$1" = "--"  ] && shift
           43 csvfile="$*"
           44 
           45 if ([ -z "$iflag" ] && [ -z "$oflag" ]) || [ "$#" -ne 1 ] ||    \
           46    [ -e "$ofile" ] || ([ -n "$ifile" ] && [ ! -f "$ifile" ]) || \
           47    [ ! -f "$csvfile" ]
           48 then
           49         usage
           50         exit 1
           51 fi
           52 
           53 if [ -n "$ofile" ]
           54 then
           55         if [ -n "$ifile" ]
           56         then
           57                 cp "$ifile" "$ofile"
           58         else
           59                 dd if=/dev/zero of="$ofile" bs=16 count=1 > /dev/null 2>&1
           60         fi
           61         ifile="$ofile"
           62 fi
           63 
           64 while IFS=',' read -r chname enname romname
           65 do
           66         if [ -z "$romname" ]
           67         then
           68                 printf "Skipping \"%s\", \"%s\": rom name empty\n" \
           69                     "$chname" "$enname"
           70         fi
           71         [ "$cflag" -eq 1 ] || chname=
           72         [ "$eflag" -eq 1 ] || enname=
           73 
           74         $ADDROMCMD -i "$ifile" -c "$chname" -e "$enname" -r "$romname"
           75 done < "$csvfile"