#! /bin/bash
#
# Johannes Meixner <jsmeix@suse.de>, 2004, 2005, 2006

#set -x

export PATH="/sbin:/usr/sbin:/usr/bin:/bin"
export LC_ALL="POSIX"
export LANG="POSIX"
umask 022

MY_NAME=${0##*/}
OUTPUT_FORMAT="$1"
[ -z "$OUTPUT_FORMAT" ] && OUTPUT_FORMAT="ASCII"
[ "$OUTPUT_FORMAT" != "ASCII" -a "$OUTPUT_FORMAT" != "YCP" ] && { echo -en "\nUsage:\n$MY_NAME {ASCII|YCP}\n" 1>&2 ; exit 1 ; }

# Input:

# Create a temporary file:
TMP_DATA=$(mktemp -u /tmp/$MY_NAME.XXXXXX)

# Get the raw data
# The 'sort -u' is crucial because the YaST scanner module requires
# a list of unique backend names (e.g. in Scanner::Overview ):
grep '^[[:alnum:]][[:alnum:]]*$' /etc/sane.d/dll.conf | sort -u >$TMP_DATA

# Output:

# Output header:
if [ "$OUTPUT_FORMAT" = "YCP" ]
then echo "[" 
else echo "BACKEND"
fi

# Output scanner entries:
exec <$TMP_DATA
while read BACKEND
do if [ "$OUTPUT_FORMAT" = "YCP" ]
   then echo -e "  \"$BACKEND\","
   else echo "$BACKEND"
   fi
done

# Output a footer for YCP
if [ "$OUTPUT_FORMAT" = "YCP" ]
then echo -e "  \"\"\n]"
fi

# Remove the temporary file
rm $TMP_DATA
exit 0

