#!/bin/sh # # Eterm backgrounds list file update utility # # $Id$ LISTFILE=pixmaps.list if [ "x$1" = "x-m" ]; then shift ETBG_MENUFILE="$1" export ETBG_MENUFILE shift exec 3> "$ETBG_MENUFILE" else exec 3>/dev/null fi if [ "x$1" = "x-h" -o "x$1" = "x--help" ]; then echo "Syntax: Etbg_update_list [path]" echo " (The default path is the current directory.)" echo exit 0 fi # Find the pixmap directory for i in "$1" "$PWD" "$PWD/pix" "$PWD/../pix" ; do if [ -d "$i/tile" -o -d "$i/scale" ]; then PIXDIR="$i" break fi done cd $PIXDIR # Make sure sed works; if not, use perl SEDCMD="sed -e 's/[-_]/ /g' -e 's/^\(.\)/\u\1/' -e 's/ \(.\)/ \u\1/g' -e 's/\....$//'" if [ "x`echo i | sed -e 's/^\(.\)/\u\1/'`" != "xI" ]; then SEDCMD='perl -p -e "s/[-_]/ /g; s/^(.)/\u\1/; s/ (.)/ \u\1/g; s/\....$//;"' fi # Generate new pixmap list from tile/ and scale/ directories echo "Etbg_update_list: Generating pixmap list file from images in tile/ and scale/..." true > $LISTFILE.new cat >&3 <> $LISTFILE.new echo " begin menuitem" >&3 eval echo "\ \ \ \ text \\\"\`echo $i | $SEDCMD\`\\\"" >&3 echo " action string \"\\e]20;tile/$i;0+0:tile\\a\"" >&3 echo " end" >&3 done fi cat >&3 <> $LISTFILE.new ; \ echo " begin menuitem" >&3 eval echo "\ \ \ \ text \\\"\`echo $i | $SEDCMD\`\\\"" >&3 echo " action string \"\\e]20;scale/$i;100\\a\"" >&3 echo " end" >&3 done fi echo "end" >&3 # Check to see if the list has changed. If so, back up the old one. if [ -s $LISTFILE ]; then if (diff $LISTFILE $LISTFILE.new >/dev/null 2>&1); then echo "Pixmap list is unchanged." rm -f $LISTFILE.new else echo "Old pixmap list will be saved in $LISTFILE.old" mv -f $LISTFILE $LISTFILE.old fi fi if [ -s $LISTFILE.new ]; then mv -f $LISTFILE.new $LISTFILE fi # If there's no theme directory nearby, just quit. if [ ! -d "../themes" ]; then exit 0 fi # If there is, cd into it and make sure all the themes have list files. cd ../themes for i in `ls -1` ; do if [ -f $i/theme.cfg -a ! -f $i/$LISTFILE ]; then echo "Creating symlink to $LISTFILE for theme $i" rm -f $i/$LISTFILE ln -f -s ../../pix/$LISTFILE $i/$LISTFILE fi done