#!/usr/bin/ksh PROGNAME=`basename $0` SIMULATE=false TMP_DIR=${TMP_DIR:-/var/tmp} VERSION="UNKNOWN" simulate_sh() { if [ "X$SIMULATE" = Xfalse ]; then eval "$@" else echo "$@" fi } svn_propadd() { PROPERTY="$1" PATTERN="$2" shift shift for DIR in $*; do { svn pg $PROPERTY $DIR echo "$PATTERN" } | sort -u > /tmp/$PROGNAME.$$.patterns head -c `ls -l /tmp/$PROGNAME.$$.patterns | awk '{ print $5 }' | xargs expr -1 +` /tmp/$PROGNAME.$$.patterns | EDITOR="tee > /dev/null" simulate_sh svn pe $PROPERTY $DIR rm /tmp/$PROGNAME.$$.patterns done } fix_alexis_hp_ignores() { echo "making alexis-hp to get files to be ignored ..." simulate_sh "( cd alexis-hp && make )" echo "getting alexis-hp status ..." svn st alexis-hp > $TMP_DIR/$PROGNAME.$$.st echo "repairing alexis-hp ignore list ..." svn_propadd svn:ignore index.html `sed -n 's/.*[ ]\([^ ].*\)\/index\.html$/\1/p' $TMP_DIR/$PROGNAME.$$.st | sort -u` svn_propadd svn:ignore 'tn-*.jpg' `sed -n 's/.*[ ]\([^ ].*\/images\)\/tn-.*\.jpg$/\1/p' $TMP_DIR/$PROGNAME.$$.st | sort -u` svn_propadd svn:ignore '[0-9]_*.jpg' `sed -n 's/.*[ ]\([^ ].*\/images\)\/[0-9]_.*\.jpg$/\1/p' $TMP_DIR/$PROGNAME.$$.st | sort -u` svn_propadd svn:ignore 'content-08-photos.fhtml' `sed -n 's/.*[ ]\([^ ].*\/hiking\/.*\)\/content-08-photos.fhtml/\1/p' $TMP_DIR/$PROGNAME.$$.st | sort -u` svn_propadd svn:ignore 'r*_c*_i*.html' `sed -n 's/.*[ ]\([^ ].*\/alexis\)\/r[1-3]_c[1-3]_i[1-2]\.html/\1/p' $TMP_DIR/$PROGNAME.$$.st | sort -u` svn_propadd svn:ignore 'mydebguide.lyx' `sed -n 's/.*[ ]\([^ ].*\/advocacy\)\/mydebguide\.lyx/\1/p' $TMP_DIR/$PROGNAME.$$.st | sort -u` svn_propadd svn:ignore 'mydebguide.ps' `sed -n 's/.*[ ]\([^ ].*\/advocacy\)\/mydebguide\.ps/\1/p' $TMP_DIR/$PROGNAME.$$.st | sort -u` rm -f $TMP_DIR/$PROGNAME.$$.st } fix_alexis_hp_mimetypes() { echo "cleaning alexis-hp to determine pictures files in archive ..." simulate_sh "( cd alexis-hp && make clean )" echo "repairing alexis-hp mime list ..." find . -name '*.jpg' | fgrep -v /.svn/ | while read JPG_FILE; do simulate_sh svn ps svn:mime-type 'image/jpeg' $JPG_FILE done find . -name '*.gif' | fgrep -v /.svn/ | while read GIF_FILE; do simulate_sh svn ps svn:mime-type 'image/gif' $GIF_FILE done find . -name '*.png' | fgrep -v /.svn/ | while read PNG_FILE; do simulate_sh svn ps svn:mime-type 'image/png' $PNG_FILE done } fix_programs_ignores() { for PROGRAM in abm ade align aub aubdom backup fad fixperms hexdump inews-mail2news irctls lcuinv locate lspipe mumc mvrat rsdeb sarplt switcher weeklyreport which; do echo "repairing $PROGRAM ignore list ..." for PATTERN in paths.mk paths.spp .adeconf.cmdline; do svn_propadd svn:ignore $PATTERN $PROGRAM/trunk/bldcfg done for SUBDIR in man bin; do for FILE in `ls $PROGRAM/trunk/$SUBDIR/*.spp 2>/dev/null`; do [ -e `dirname $FILE`/`basename $FILE .spp` ] && { echo "`dirname $FILE`/`basename $FILE .spp` exists!" >&2 exit 1 } svn_propadd svn:ignore `basename $FILE .spp` `dirname $FILE` done done done } fix_svn_markers() { echo "repairing keyword properties ..." find . -type f | fgrep -v /.svn/ | xargs egrep -l 'HeadURL|LastChangedRevision' | while read FILE; do svn_propadd svn:keywords HeadURL $FILE svn_propadd svn:keywords LastChangedRevision $FILE done } fix_alexis_hp() { fix_alexis_hp_ignores fix_alexis_hp_mimetypes } fix_programs() { #fix_programs_ignores fix_svn_markers } #fix_alexis_hp fix_programs #simulate_sh svn commit -m "repaired property info"