1: #!/bin/bash
2:
3: VERSION="changemany V0.2 (11.12.2006 ROC)"
4:
5: #set -x
6:
7: if [ -z "$1$2" ]
8: then
9: echo $VERSION
10: echo "use: $0 dirlist [-debug] [-dry-run] [-long] [params...]"
11: echo " Changes the document directories given in the file dirlist."
12: echo " The list has the full pathname first and then one column per parameter, separated with spaces."
13: echo " -debug: is passed to changemeta script"
14: echo " -dry-run: only print out script calls"
15: echo " -long: pass only one parameter but its value can contain spaces"
16: exit 1
17: fi
18:
19: DIRLIST="$1"
20: if [ "$2" == "-debug" ]
21: then
22: shift
23: DEBUG="-debug"
24: fi
25: if [ "$2" == "-dry-run" ]
26: then
27: shift
28: DRY_RUN=1
29: fi
30: if [ "$2" == "-long" ]
31: then
32: shift
33: LONG=1
34: fi
35: PARAM1="$2"
36: PARAM2="$3"
37: PARAM3="$4"
38:
39: if [ ! -f $DIRLIST ]
40: then
41: echo "ERROR: directory list file $DIRLIST not found!"
42: exit 1
43: fi
44:
45: CNT=0
46:
47: if [ -z $LONG ]
48: then
49: # short options
50: # read directories and options from DIRLIST
51: while read DIR OPT1 OPT2 OPT3
52: do
53: CNT=$(( $CNT + 1 ))
54: if [ -d "$DIR" ]
55: then
56: echo "changing document $CNT: $DIR..."
57: if [ -n "$DRY_RUN" ]
58: then
59: echo "/usr/local/mpiwg/archive/changemeta ${PARAM1:+$PARAM1=$OPT1} ${PARAM2:+$PARAM2=$OPT2} ${PARAM3:+$PARAM3=$OPT3} $DEBUG $DIR"
60: echo " FAKED"
61: else
62: if /usr/local/mpiwg/archive/changemeta "${PARAM1:+$PARAM1=$OPT1}" "${PARAM2:+$PARAM2=$OPT2}" "${PARAM3:+$PARAM3=$OPT3}" "$DEBUG" "$DIR"
63: then
64: echo " OK"
65: else
66: echo "FAILED!"
67: # abort?
68: fi
69: fi
70: else
71: echo "$CNT ERROR: document directory $DIR not found!"
72: fi
73: done < $DIRLIST
74: else
75: # long option
76: # read directories and options from DIRLIST
77: while read DIR OPT
78: do
79: CNT=$(( $CNT + 1 ))
80: if [ -d "$DIR" ]
81: then
82: echo "changing document $CNT: $DIR..."
83: if [ -n "$DRY_RUN" ]
84: then
85: echo "/usr/local/mpiwg/archive/changemeta ${PARAM1:+$PARAM1=$OPT} $DEBUG $DIR"
86: echo " FAKED"
87: else
88: if /usr/local/mpiwg/archive_devel/changemeta.pl "${PARAM1:+$PARAM1=$OPT}" "$DEBUG" "$DIR"
89: then
90: echo " OK"
91: else
92: echo "FAILED!"
93: # abort?
94: fi
95: fi
96: else
97: echo "$CNT ERROR: document directory $DIR not found!"
98: fi
99: done < $DIRLIST
100: fi
101:
102: if [ $CNT = 0 ]
103: then
104: echo "ERROR: the list file $DIRLIST seems to be empty!"
105: else
106: echo "Processed $CNT documents!"
107: fi
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>