d63e6e0741e28e48d1fbfae045642b9e27012565 kuhn Fri Nov 30 09:47:09 2012 -0800 fixed two check*Static scripts to run with htmlCheck instead of LinkCheck and streamlined them a bit diff --git src/utils/qa/checkStaticLinks.csh src/utils/qa/checkStaticLinks.csh index c42484c..a8d495d 100755 --- src/utils/qa/checkStaticLinks.csh +++ src/utils/qa/checkStaticLinks.csh @@ -1,103 +1,101 @@ #!/bin/tcsh source `which qaConfig.csh` ############################################### # 05-10-04 # # checks the links in all the files in a directory # Robert Kuhn # ############################################### set filePath="" -set yymmdd="today" set exclude="" +set excludeList="" set file="" -set currDir=$cwd +set baseUrl="http://hgwbeta.cse.ucsc.edu" -if ( $#argv < 1 || $#argv > 3 ) then +if ( $#argv < 1 || $#argv > 2 ) then # wrong number of command-line args echo - echo " checks the links in all the files in a directory on the RR." - echo " (uses directory on hgwbeta to get list)." + echo " checks the links in all the static pages in a directory." + echo " operates on pages on hgwbeta" + echo " writes a file called dir.dir.err" echo - echo " usage: pathIn/htdocs [yymmdd] [excludeList]" + echo " usage: pathInHtdocs [excludeList]" echo ' where:' - echo ' pathIn/htdocs: (zero for root) ' - echo ' yymmdd: any dateString for output files. defaults to "today"' - echo " excludeList: filename or list of files not to check. " + echo ' pathInHtdocs = path in htdocs (0 for htdocs root)' + echo " excludeList = filename for list of files not to check" echo exit endif -# strip trailing backslash" if ($argv[1] == 0) then - set filePath="" + set file=0 + # filePath is already htdocs root level else + # strip trailing backslash" set filePath=`echo $argv[1] | sed -e 's/\/$//'` endif -if ( $#argv > 1 ) then - set yymmdd=$argv[2] -endif - -if ( $#argv == 3 ) then - set exclude=$argv[3] - file $exclude | grep -q "ASCII text" +if ( $#argv == 2 ) then + set excludeList=$argv[2] + file $excludeList | grep -q "ASCII text" if ( $status ) then - echo "\nexclude file does not exist\n" + echo "\nexclude file $excludeList does not exist\n" exit 1 - else - set exclude=`cat $exclude` endif + set exclude=`cat $excludeList` endif # get list of active files from beta -# and strip off the pathnames from list leaving only filenames +# and strip off the pathname from list leaving only filenames set origlist=`ssh hgwbeta 'ls /usr/local/apache/htdocs/'${filePath}'/*html' \ - | sed -e "s/.*\///g"` + | sed "s/.*\///g"` + +# echo origlist before $origlist | sed "s/ /\n/g" +# echo "exclude = $exclude" | sed "s/ /\n/g" -# echo "exclude = $exclude" # strip out any files in exclude list foreach excl ( $exclude ) - set origlist=`echo $origlist | sed -e "s/ /\n/g" | egrep -v $excl` -end - -echo $origlist | sed -e "s/ /\n/g" > ${currDir}/filelist - -# echo "yymmdd = $yymmdd" -# echo "filepath = $filePath" -# echo $exclude - -echo "files in htdocs/${filePath}" -cat filelist - -echo - -foreach file (`cat ${currDir}/filelist`) - echo $file - LinkCheck $argv[1] $file $yymmdd + set origlist=`echo $origlist | sed "s/ /\n/g" | egrep -v $excl` end -rm -f linkCheck.all.$yymmdd -set outfile="linkCheck.all.$yymmdd" - -echo >> $outfile -echo "======== reporting only on files with errors ========" >> $outfile -echo "========================================================" >> $outfile -echo >> $outfile -dumpEmpty.csh . -foreach file (`ls -1 *.$yymmdd.errors`) - # recover directory structure from dir.dir.dir.yymmdd.error files - # and strip out filename from any file with errors - set filename=`echo $file | sed -e "s/\./\//g" | sed -e "s/\/$yymmdd\/errors/\.html/"` - echo >> $outfile - cat $file >> $outfile - echo >> $outfile - echo "========================================================" >> $outfile - echo >> $outfile -# rm $file ?? +# echo origlist after $origlist | sed "s/ /\n/g" + +set i=0 +rm -f outfile$i +echo "\nfiles checked in htdocs/${filePath}" >> outfile$i +echo $origlist | sed "s/ /\n/g" >> outfile$i +echo >> outfile$i + +foreach file ( $origlist ) + rm -f outfile$file + echo $file >>& outfile$file + echo $baseUrl/$filePath/$file >>& outfile$file + htmlCheck checkLinks $baseUrl/$filePath/$file \ + |& grep -v "doesn't exist" >>& outfile$file + if ( `cat outfile$file | wc -l` > 2 ) then + cat outfile$i outfile$file > outfileTmp + echo >> outfileTmp + else + mv outfile$i outfileTmp + endif + rm -f outfile$i + @ i = $i + 1 + if ( -e outfileTmp ) then + mv outfileTmp outfile$i + endif + rm -f outfile$file end +mv outfile$i outfile +echo "\nchecked $i files\n" >> outfile -rm -f filelist +cat outfile +if ( $filePath == "" ) then + set file=htdocs.err +else + set file=`echo $filePath | sed s@/@.@g`.err +endif +mv outfile $file