#!/usr/bin/ksh # # $Id: fixpath.sh,v 1.1.1.1 2006/06/19 17:49:28 10057123 Exp $ # # fix paths in SyncML files to point to local server instead of distributed # server # # Ben Secrest # set -- $(getopt b:g:sx: ${*}) SAVEBAK=0 for i in ${*} do case ${i} in -b) BADURL=${2}; shift 2;; -g) GOODURL=${2}; shift 2;; -s) SAVEBAK=1; shift;; -x) FILETAG=${2}; shift 2;; --) shift; break;; esac done if [ ${?} -ne 0 -o "${BADURL}" == "" -o "${GOODURL}" == "" \ -o "${FILETAG}" == "" ] then echo usage: ${0} [-s] -b string -g string -x string echo -b Bad URL to replace echo -g Good URL to insert echo -s Save backups [Default is to delete] echo -x Filename tag to search for strings in echo echo ex: ${0} -b localhost/cgi-bin -g waptest.ssdtgsm.com/replay -x xml exit fi echo Attempting to replace all occurences of ${BADURL} echo with ${GOODURL} in files: # find and process all xml source files for f in $(${FIND} . -name "*.${FILETAG}") do # see if the file contains the bad URL if ${GREP} -q ${BADURL} ${f} then # if so, make a backup, remove dos line feeds and use sed # to replace the bad with the good ${CP} ${f} ${f}.bak ${CAT} ${f}.bak | ${TR} -d '\r' \ | ${SED} "s,${BADURL},${GOODURL}," > ${f} if [ ${SAVEBAK} -eq 0 ] then ${RM} ${f}.bak fi echo ${f} fi done