mirror of
https://git.FreeBSD.org/ports.git
synced 2024-10-30 21:49:25 +00:00
37ee08a11b
mtree outputs. Also change the title of the file from "List of extra files and directories" to "List of files and directories that do not match their mtree description", which is more accurate.
71 lines
2.7 KiB
Bash
Executable File
71 lines
2.7 KiB
Bash
Executable File
#!/bin/sh
|
|
|
|
of=extras.html.new
|
|
|
|
# delete .new file if it is more than a day old
|
|
find $of -mtime +1 -delete 2>/dev/null
|
|
|
|
if [ -f $of ]; then exit; fi
|
|
|
|
if [ -e .stamp -a $(echo $(find . -newer .stamp -type f -name '*.log' 2>/dev/null | wc -l)) = "0" ]; then exit; fi
|
|
|
|
echo "<html><head><title>List of files and directories that do not match their mtree description</title>" >$of
|
|
echo "<h1>List of files and directories that do not match their mtree description</h1>" >>$of
|
|
echo "</head><body>" >>$of
|
|
|
|
touch .stamp
|
|
|
|
#find . -name '*.log' | xargs grep -l '^list of extra files and directories' | xargs-exec sed -n -e '/^checking installed files/d' -e 's:^extra[:] :{} :p' -e 's:\(.*\) extra$:{} \1:p' '{}' ';' | sort | sed -e 's/^..//' -e 's/\.log//' | awk '{print $1 " " $2}' > .tmp
|
|
find . -name '*.log' | xargs grep -l '^list of extra files and directories' | sort | sed -e 's/^..//' > .tmp
|
|
if [ $(echo $(cat .tmp | wc -l)) = 0 ]; then
|
|
echo "No extra files (yet)" >> $of
|
|
else
|
|
set $(cat .tmp)
|
|
num=$#
|
|
if [ -s cvsdone ]; then
|
|
echo "(cvs update finished at: $(cat cvsdone))<br>" >> $of
|
|
fi
|
|
echo "(timestamp of newest log: $(ls -rtTl | grep 'log$' | tail -1 | awk '{printf("%s %s %s %s\n",$6,$7,$8,$9)}'))<br><br>" >> $of
|
|
echo "<table border=1>" >>$of
|
|
echo "<tr><th>Log</th><th>Aff.</th><th>Size</th><th>Repository</th><th>Maintainer</th><th>Pathname</th></tr>" >>$of
|
|
while [ $# -gt 0 ]; do
|
|
log=$(echo $1 | basename $1 .log)
|
|
for file in $(cat $log.log | sed -e '1,/^list of extra files and directories/d' -e '/^list of all files and directories/,$d' -e '/^ /d' -e 's/^extra: //' -e 's/^missing: //' -e 's/://' | awk '{print $1}'); do
|
|
echo -n "<tr><td>" >>$of
|
|
echo -n "<a name=\"$log.log\"></a>" >> $of
|
|
echo -n "<a href=\"$log.log\">" >>$of
|
|
echo -n $log >>$of
|
|
echo -n "</a>" >>$of
|
|
echo -n "</td><td align=right>" >>$of
|
|
affected=$(($(grep -cF $log < INDEX) - 1))
|
|
if [ $affected != 0 ]; then echo -n $affected >>$of; fi
|
|
echo -n "</td><td align=right>" >>$of
|
|
size=$(/bin/ls -sk $log.log | awk '{print $1}')
|
|
echo -n "$size KB" >>$of
|
|
echo -n "</td><td>" >>$of
|
|
dir=$(sed -n -e '3p' $log.log | awk '{print $4}' | sed -e 's,^/[^/]*/[^/]*/,,')
|
|
echo -n "<a href=\"http://www.FreeBSD.org/cgi/cvsweb.cgi/ports/$dir\">$dir</a>" >>$of
|
|
echo -n "</td><td>" >>$of
|
|
maint=$(sed -n -e '4p' $log.log | awk '{print $3}')
|
|
maints="$maints $maint"
|
|
echo -n "<a href=\"mailto:$maint\">$maint</a>" >>$of
|
|
echo "</td><td>$file</td></tr>" >>$of
|
|
done
|
|
shift
|
|
done
|
|
echo "</table><br>" >> $of
|
|
echo "$num errors<br>" >> $of
|
|
fi
|
|
|
|
rm .tmp
|
|
|
|
echo "<hr>" >> $of
|
|
echo "<a href=\"../\">back to top</a>" >> $of
|
|
|
|
echo "</body></html>" >>$of
|
|
|
|
mv -f $of extras.html
|
|
|
|
echo $maints | sed -e 's/ /\
|
|
/g' | sort -fu > maintainers
|