#! /bin/bash
# The following script was originally written by Edwin Taylor to
# convert a list of filenames (with their paths) into the format
# required for X-CD-Roast to import them into its "Session view"
# panel.
# The script merely prompts the user for the name of the file in
# which the list is written, then for a filename for the desired
# output.
while [ "$VALID" != "yes" ]
do
clear
echo
echo -e " \033[1mEnter filename (including path) of existing list of files:\033[0m"
echo
echo -n " "
read FILENAME
if [[ -f "$FILENAME" && -r "$FILENAME" ]]
then # File is a real file and is readable.
VALID="yes"
else
echo
echo -n " File not found or not readable."
read NOTHING
fi
done
VALID="no"
while [ "$VALID" != "yes" ]
do
clear
echo
echo -e " \033[1mEnter filename (including path) for output file. \033[0mIt is"
echo " recommended that the file end with the extension '.lst':"
echo
echo -n " "
read FILENAME2
PATHFOR=`echo "$FILENAME2" | sed 's/[^\/]*$//'`
if [[ -d "$PATHFOR" && -w "$PATHFOR" ]]
then # The directory is a real directory and is writeable.
if [ -e "$FILENAME2" ]
then # Directory is valid, but intended filename is already in use.
echo
echo -n -e " \033[1mFile already exists. Do you wish to overwrite it?\033[0m"
echo
echo -n -e " \033[1m1\033[0m"
echo " Yes"
echo -n -e " \033[1m2\033[0m"
echo " No"
echo
echo -n " "
read ANSWER
case $ANSWER
in
1)
VALID="yes"
;;
*)
VALID="no"
esac
else
VALID="yes"
fi
else echo -n " Directory not found or not writeable."
read NOTHING
fi
done
VALID="no"
# These steps have given us the location of the input file ($FILENAME)
# and the location for the output file ($FILENAME2).
echo "#" > "$FILENAME2"
echo "# Roast-dinner.sh version 0.1 - Master-Paths" >> "$FILENAME2"
DAT=`date`
echo "# created: $DAT" >> "$FILENAME2"
PERS=`whoami`@`hostname`
echo "# by: $PERS" >> "$FILENAME2"
echo "#" >> "$FILENAME2"
LINES=`cat "$FILENAME" | wc -l | sed 's/ *//'`
for i in `seq $LINES`
do
clear
echo
echo " $i of $LINES lines processed."
PLACE=`cat "$FILENAME" | sed -n "$i"p`
echo "ADD2 = \"$PLACE\",\"$PLACE\"" >> "$FILENAME2"
done
syntax highlighted by Code2HTML, v. 0.9.1