#!/bin/bash VERSION="changemany V0.2 (11.12.2006 ROC)" #set -x if [ -z "$1$2" ] then echo $VERSION echo "use: $0 dirlist [-debug] [-dry-run] [-long] [params...]" echo " Changes the document directories given in the file dirlist." echo " The list has the full pathname first and then one column per parameter, separated with spaces." echo " -debug: is passed to changemeta script" echo " -dry-run: only print out script calls" echo " -long: pass only one parameter but its value can contain spaces" exit 1 fi DIRLIST="$1" if [ "$2" == "-debug" ] then shift DEBUG="-debug" fi if [ "$2" == "-dry-run" ] then shift DRY_RUN=1 fi if [ "$2" == "-long" ] then shift LONG=1 fi PARAM1="$2" PARAM2="$3" PARAM3="$4" if [ ! -f $DIRLIST ] then echo "ERROR: directory list file $DIRLIST not found!" exit 1 fi CNT=0 if [ -z $LONG ] then # short options # read directories and options from DIRLIST while read DIR OPT1 OPT2 OPT3 do CNT=$(( $CNT + 1 )) if [ -d "$DIR" ] then echo "changing document $CNT: $DIR..." if [ -n "$DRY_RUN" ] then echo "/usr/local/mpiwg/archive/changemeta ${PARAM1:+$PARAM1=$OPT1} ${PARAM2:+$PARAM2=$OPT2} ${PARAM3:+$PARAM3=$OPT3} $DEBUG $DIR" echo " FAKED" else if /usr/local/mpiwg/archive/changemeta "${PARAM1:+$PARAM1=$OPT1}" "${PARAM2:+$PARAM2=$OPT2}" "${PARAM3:+$PARAM3=$OPT3}" "$DEBUG" "$DIR" then echo " OK" else echo "FAILED!" # abort? fi fi else echo "$CNT ERROR: document directory $DIR not found!" fi done < $DIRLIST else # long option # read directories and options from DIRLIST while read DIR OPT do CNT=$(( $CNT + 1 )) if [ -d "$DIR" ] then echo "changing document $CNT: $DIR..." if [ -n "$DRY_RUN" ] then echo "/usr/local/mpiwg/archive/changemeta ${PARAM1:+$PARAM1=$OPT} $DEBUG $DIR" echo " FAKED" else if /usr/local/mpiwg/archive/changemeta "${PARAM1:+$PARAM1=$OPT}" "$DEBUG" "$DIR" then echo " OK" else echo "FAILED!" # abort? fi fi else echo "$CNT ERROR: document directory $DIR not found!" fi done < $DIRLIST fi if [ $CNT = 0 ] then echo "ERROR: the list file $DIRLIST seems to be empty!" else echo "Processed $CNT documents!" fi