mirror of
https://git.postgresql.org/git/postgresql.git
synced 2024-12-21 08:29:39 +08:00
Add HTML output option to pgcvslog.
This commit is contained in:
parent
865d26fdd6
commit
b0bf66dfbe
@ -19,12 +19,27 @@
|
||||
# find . -name CVS -type d -exec rm '{}/Entries.Static' \;
|
||||
#
|
||||
|
||||
if [ "X$1" == "X-h" ]
|
||||
then HTML="Y"
|
||||
shift
|
||||
else HTML="N"
|
||||
fi
|
||||
|
||||
cat "$@" |
|
||||
|
||||
# protect HTML input if in HTML mode
|
||||
if [ "$HTML" = "Y" ]
|
||||
then sed -e 's/\&/\&/g' \
|
||||
-e 's/</\</g' \
|
||||
-e 's/>/\>/g' \
|
||||
-e 's/"/\"/g'
|
||||
else cat
|
||||
fi |
|
||||
|
||||
# mark each line with a datetime and line number, for sorting and merging
|
||||
# We don't print anything from the -- or == line and the date:
|
||||
|
||||
awk '
|
||||
awk ' BEGIN {html="'"$HTML"'"; lineno = 0;}
|
||||
# store working directory
|
||||
$0 ~ /^Working file:/ {workingfile = "/" $3}
|
||||
|
||||
@ -33,14 +48,18 @@ awk '
|
||||
# print blank line to separate entries
|
||||
if (datetime != "")
|
||||
{
|
||||
printf ("%s| %10d|%s\n", datetime, NR, "");
|
||||
printf ("%s| %10d|%s\n", datetime, NR, "---");
|
||||
if (html != "Y")
|
||||
printf ("%s| %10d|%s\n", datetime, lineno++, "");
|
||||
printf ("%s| %10d|", datetime, lineno++);
|
||||
if (html != "Y")
|
||||
printf ("%s\n", "---");
|
||||
else printf ("<HR>\n");
|
||||
}
|
||||
datetime="";
|
||||
}
|
||||
|
||||
# if we have a saved datetime, print filename, date line, and committer
|
||||
datetime != "" {printf ("%s| %10d| %s\n", datetime, NR, $0);}
|
||||
datetime != "" {printf ("%s| %10d| %s\n", datetime, lineno++, $0);}
|
||||
|
||||
$1 == "date:" \
|
||||
{
|
||||
@ -48,12 +67,20 @@ awk '
|
||||
datetime=$2"-"$3
|
||||
if (workingfile != "")
|
||||
{
|
||||
# remove semicolon from committers name
|
||||
gsub(";", "", $5);
|
||||
printf ("%s| %10d|%s\n", datetime, NR-2, workingfile);
|
||||
printf ("%s| %10d|%s\n", datetime, NR-1, $0);
|
||||
printf ("%s| %10d|", datetime, lineno++);
|
||||
if (html != "Y")
|
||||
printf ("%s\n", workingfile);
|
||||
else printf ("<SMALL><FONT COLOR=\"red\">%s</FONT></SMALL>\n", workingfile);
|
||||
|
||||
# output name of committer
|
||||
printf ("%s| %10d| %70s\n", datetime, NR+1, $5);
|
||||
# remove semicolon from committers name
|
||||
gsub("/", "-", $2);
|
||||
gsub(";", "", $3);
|
||||
gsub(";", "", $5);
|
||||
printf ("%s| %10d|", datetime, lineno++);
|
||||
if (html != "Y")
|
||||
printf ("%78s\n", $5);
|
||||
else printf ("<DIV ALIGN=\"right\"><SMALL><FONT COLOR=\"teal\">%s</FONT> <FONT COLOR=\"green\">%s</FONT></SMALL></DIV>\n", $5, $2);
|
||||
}
|
||||
}
|
||||
|
||||
@ -64,12 +91,11 @@ sort | cut -d'|' -f3 | cat |
|
||||
|
||||
# collect duplicate narratives
|
||||
|
||||
awk ' BEGIN { slot = 0; oldslot=0; save_working = ""; }
|
||||
awk ' BEGIN { slot = 0; oldslot=0; save_working = ""; html="'"$HTML"'"}
|
||||
{
|
||||
# We have a filename, so we look at the previous
|
||||
# narrative to see if it is new narrative text.
|
||||
#
|
||||
if ($0 ~ /^\//)
|
||||
if ($0 ~ /^\// || $0 ~ />\//)
|
||||
{
|
||||
# If there are a different number of narrative
|
||||
# lines, they can not possibly be the same.
|
||||
@ -93,7 +119,13 @@ awk ' BEGIN { slot = 0; oldslot=0; save_working = ""; }
|
||||
{
|
||||
if (oldslot)
|
||||
for (i=1; i <= oldslot; i++)
|
||||
{
|
||||
print oldnarr[i];
|
||||
if (html == "Y" &&
|
||||
oldnarr[i] != "<HR>" &&
|
||||
oldnarr[i] !~ "^<DIV ")
|
||||
print "<BR>";
|
||||
}
|
||||
|
||||
# save the current narrative
|
||||
for (i=1; i <= slot; i++)
|
||||
@ -104,12 +136,14 @@ awk ' BEGIN { slot = 0; oldslot=0; save_working = ""; }
|
||||
|
||||
# dump out the previous filename
|
||||
print save_working;
|
||||
if (html == "Y")
|
||||
print "<BR>";
|
||||
|
||||
# store the current filename for later printing
|
||||
save_working = $0;
|
||||
}
|
||||
else
|
||||
# we have a narrative line
|
||||
else if ($1 != "date:")
|
||||
{
|
||||
# accumulate narrative
|
||||
narr[++slot] = $0;
|
||||
@ -117,9 +151,31 @@ awk ' BEGIN { slot = 0; oldslot=0; save_working = ""; }
|
||||
}
|
||||
END {
|
||||
# dump out the last filename
|
||||
|
||||
print save_working;
|
||||
if (html == "Y")
|
||||
print "<BR>";
|
||||
|
||||
# dump out the last narrative
|
||||
for (i=1; i <= slot; i++)
|
||||
{
|
||||
print narr[i];
|
||||
}'
|
||||
if (html == "Y" &&
|
||||
oldnarr[i] != "<HR>" &&
|
||||
oldnarr[i] !~ "^<DIV ")
|
||||
print "<BR>";
|
||||
}
|
||||
}' |
|
||||
|
||||
# add HTML wrapper
|
||||
if [ "$HTML" = "Y" ]
|
||||
then echo "<HTML>"
|
||||
echo "<HEAD>"
|
||||
echo "<TITLE>CVS</TITLE>"
|
||||
echo "</HEAD>"
|
||||
echo "<BODY>"
|
||||
cat
|
||||
echo "</BODY>"
|
||||
echo "</HTML>"
|
||||
else cat
|
||||
fi
|
||||
|
Loading…
Reference in New Issue
Block a user