aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBruce Momjian <bruce@momjian.us>2002-02-18 05:33:13 +0000
committerBruce Momjian <bruce@momjian.us>2002-02-18 05:33:13 +0000
commitb0bf66dfbe0f4a2032b81384cd7dbaee35c2f3f5 (patch)
tree042e8e3260f30aaf7e0342305a4b6ccaeeb2bee4
parent865d26fdd632890167035dac905b6379d4383209 (diff)
downloadpostgresql-b0bf66dfbe0f4a2032b81384cd7dbaee35c2f3f5.tar.gz
postgresql-b0bf66dfbe0f4a2032b81384cd7dbaee35c2f3f5.zip
Add HTML output option to pgcvslog.
-rwxr-xr-xsrc/tools/pgcvslog84
1 files changed, 70 insertions, 14 deletions
diff --git a/src/tools/pgcvslog b/src/tools/pgcvslog
index 6a4ef02e04c..9b8ead1c4ee 100755
--- a/src/tools/pgcvslog
+++ b/src/tools/pgcvslog
@@ -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/\&/\&amp;/g' \
+ -e 's/</\&lt;/g' \
+ -e 's/>/\&gt;/g' \
+ -e 's/"/\&quot;/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,27 +48,39 @@ 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:" \
+ $1 == "date:" \
{
# get entry date
datetime=$2"-"$3
if (workingfile != "")
{
+ 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
# remove semicolon from committers name
+ gsub("/", "-", $2);
+ gsub(";", "", $3);
gsub(";", "", $5);
- printf ("%s| %10d|%s\n", datetime, NR-2, workingfile);
- printf ("%s| %10d|%s\n", datetime, NR-1, $0);
- # output name of committer
- printf ("%s| %10d| %70s\n", datetime, NR+1, $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