summaryrefslogtreecommitdiffstats
path: root/doc/Tapset_Reference_Guide
diff options
context:
space:
mode:
authorddomingo <ddomingo@redhat.com>2009-03-17 13:41:40 +1000
committerddomingo <ddomingo@redhat.com>2009-03-17 13:41:40 +1000
commit983449d2c555c85825041fe3bbf7fd2478531a0b (patch)
tree0a3c2f0d70472edb3c87d31069d1aef533aaea5c /doc/Tapset_Reference_Guide
parent5d369d06fa39e4769fb3364ba29f588f3d995c24 (diff)
downloadsystemtap-steved-983449d2c555c85825041fe3bbf7fd2478531a0b.tar.gz
systemtap-steved-983449d2c555c85825041fe3bbf7fd2478531a0b.tar.xz
systemtap-steved-983449d2c555c85825041fe3bbf7fd2478531a0b.zip
almost done, output clean, just a few more improvements
Diffstat (limited to 'doc/Tapset_Reference_Guide')
-rw-r--r--doc/Tapset_Reference_Guide/manpager.sh106
1 files changed, 62 insertions, 44 deletions
diff --git a/doc/Tapset_Reference_Guide/manpager.sh b/doc/Tapset_Reference_Guide/manpager.sh
index 9aede5c4..16ee441f 100644
--- a/doc/Tapset_Reference_Guide/manpager.sh
+++ b/doc/Tapset_Reference_Guide/manpager.sh
@@ -3,78 +3,79 @@
# generated herein should be in sync with Tapset Reference Guide
# cleanup
-rm -rf manpages
+rm -rf workingdir
# create working directory
-mkdir manpages ;
+mkdir workingdir ;
# create list of man pages to generate; should be in sync with Tapset Reference Guide
cat ../SystemTap_Tapset_Reference/tapsets.tmpl | grep ^\!Itapset > manpageus ;
sed -i -e 's/\!Itapset\///g' manpageus ;
# copy list of man pages into working directory
-for i in `cat manpageus` ; do cp ../../tapset/$i manpages ; done ;
+for i in `cat manpageus` ; do cp ../../tapset/$i workingdir ; done ;
# enter workdir
-# rm manpageus ;
-cd manpages ;
+cd workingdir ;
# copy tapsetdescriptions, then clean
-for i in `ls`; do sed -n '/\/\/ <tapsetdescription>/,/\/\/ <\/tapsetdescription>/ s/.*/&/w temp' < $i ;
+for i in `cat ../manpageus`; do
+sed -n '/\/\/ <tapsetdescription>/,/\/\/ <\/tapsetdescription>/ s/.*/&/w temp' < $i ;
mv temp $i.tapsetdescription ;
sed -i -e 's/\/\/ <tapsetdescription>//g' $i.tapsetdescription ;
sed -i -e 's/\/\/ <\/tapsetdescription>//g' $i.tapsetdescription ;
sed -i -e 's/\/\///g' $i.tapsetdescription ;
done
-# strip all tapset files to just comments; but first, make sure all comments are exactly 1 space before *
-for i in `ls | grep -v tapsetdescription` ; do sed -i -e 's/^ \*/ \*/g' $i; done ;
-for i in `ls | grep -v tapsetdescription` ; do sed -i -e '/^ \*/!d' $i; done ;
+# strip all tapset files to just comments; but all comments must be exactly 1 space before and after "*"
+for i in `cat ../manpageus` ; do sed -i -e 's/^ \*/ \*/g' $i;
+sed -i -e 's/^ \* / \* /g' $i;
+# mark the start of each probe entry (sub "/**")
+perl -p -i -e 's|^/\*\*| *probestart|g' $i;
+sed -i -e '/^ \*/!d' $i;
# rename all tapsets (remove .stp filename suffix), create templates
-for i in `ls | grep -v tapsetdescription` ; do echo $i > tempname ; sed -i -e 's/.stp//g' tempname ; mv $i `cat tempname` ; mv tempname $i ; done ;
+echo $i > tempname ;
+sed -i -e 's/.stp//g' tempname ;
+mv $i `cat tempname` ; mv tempname $i ;
+done ;
# clean all tapsetdescriptions (remove excess spaces)
# for i in `ls | grep tapsetdescription` ; do perl -p -i -e 's|^\n||g' $i ; done ;
-for i in `ls | grep -v .stp | grep -v tapsetdescription` ;
-do echo ".\" -*- nroff -*-" >> $i.template ;
+# create man page headers
+for i in `ls | grep -v .stp | grep -v tapsetdescription` ; do
+#echo ".\" -*- nroff -*-" >> $i.template ;
echo ".TH STAPPROBES.manpagename 5 @DATE@ "IBM"" >> $i.template ;
echo ".SH NAME" >> $i.template ;
echo "stapprobes."`cat $i.stp`" \- systemtap "`cat $i.stp`" probe points" >> $i.template ;
echo " " >> $i.template ;
-echo ".\" macros" >> $i.template ;
-echo ".de SAMPLE" >> $i.template ;
-echo ".br" >> $i.template ;
-echo ".RS" >> $i.template ;
-echo ".nf" >> $i.template ;
-echo ".nh" >> $i.template ;
-echo ".." >> $i.template ;
-echo ".de ESAMPLE" >> $i.template ;
-echo ".hy" >> $i.template ;
-echo ".fi" >> $i.template ;
-echo ".RE" >> $i.template ;
-echo ".." >> $i.template ;
-echo " " >> $i.template ;
echo ".SH DESCRIPTION" >> $i.template ;
cat $i.stp.tapsetdescription >> $i.template ;
+echo " " >> $i.template ;
+#echo " " >> $i.template ;
+echo ".SH PROBES" >> $i.template ;
+echo ".br" >> $i.template ;
echo ".P" >> $i.template ;
echo ".TP" >> $i.template ;
done
+# MOST IMPORTANT: clean man page body!
for i in `ls | grep -v .stp | grep -v tapsetdescription | grep -v template` ;
-do cp $i $i.manpagebody ;
-perl -p -i -e 's| \* sfunction|.B|g' $i.manpagebody ;
-perl -p -i -e 's| \* probe|.B|g' $i.manpagebody ;
-perl -p -i -e 's| -|\n\t|g' $i.manpagebody ;
-perl -p -i -e 's|(^\t[^\n]*)\n|$1\n\n.B Arguments:|g' $i.manpagebody ;
-perl -p -i -e 's| \* @([^:]*):|.I $1 \n|g' $i.manpagebody ;
-perl -p -i -e 's| \* ([^:]*):|.B $1 \n|g' $i.manpagebody ;
-perl -p -i -e 's| \* ||g' $i.manpagebody ;
-perl -p -i -e 's|.B Arguments: \*|.B No Arguments:\n\n.B Description:|g' $i.manpagebody ;
-perl -p -i -e 's|.B Arguments:.I|.B Arguments:\n.I|g' $i.manpagebody ;
-perl -p -i -e 's|^ \*/|\n.P\n.TP|g' $i.manpagebody ;
-perl -p -i -e 's|\.I|\n\n.I|g' $i.manpagebody ;
-perl -p -i -e 's|.B Context|\n.B Context|g' $i.manpagebody ;
-#perl -p -i -e 's|^[^*]*\*|.P|g' $i.manpagebody ;
+do cp $i $i.tmp ;
+perl -p -i -e 's| \* sfunction|.BR|g' $i.tmp ;
+perl -p -i -e 's| \* probe|.BR|g' $i.tmp ;
+perl -p -i -e 's| -|\ninitlinehere|g' $i.tmp ;
+perl -p -i -e 's|^initlinehere([^\n]*)\n|\n.br\n$1\n\n.B Arguments:|g' $i.tmp ;
+perl -p -i -e 's| \* @([^:]*):|\n.I $1\n.br\n|g' $i.tmp ;
+perl -p -i -e 's| \* ([^:]*):|\n.BR $1:\n.br\n|g' $i.tmp ;
+perl -p -i -e 's|\*probestart|\n.P\n.TP|g' $i.tmp ;
+perl -p -i -e 's|\.I|\n\n.I|g' $i.tmp ;
+# special formatting for Arguments header
+perl -p -i -e 's|.B Arguments: \*\/||g' $i.tmp ;
+perl -p -i -e 's|.B Arguments: \*|.B Description:|g' $i.tmp ;
+
+cat $i.tmp |
+perl -p -e 'undef $/;s|.B Arguments:\n.B|.B|msg' |
+perl -p -e 'undef $/;s|\n\n\n|\n\n|msg' > $i.manpagebody ;
done
# generate footer template
@@ -87,17 +88,34 @@ for i in `cat manpageus`; do echo ".IR stapprobes."$i" (5)," >> footer ; done
# assemble parts
for i in `cat manpageus`; do
-cat $i.template >> stapprobes.$i.5.in ;
-cat $i.manpagebody >> stapprobes.$i.5.in ;
-cat footer >> stapprobes.$i.5.in ;
+cat $i.template >> $i.5 ;
+cat $i.manpagebody >> $i.5 ;
+cat footer >> $i.5 ;
done
# cleanup
for i in `cat manpageus`; do
-perl -p -i -e 's|.B Description:/|\n.P\n.TP|g' stapprobes.$i.5.in ;
+# context.stp
+perl -p -i -e 's|.B Description:/|\n.P\n.TP|g' $i.5 ;
+perl -p -i -e 's|.B Description:|.B Description:\n\n |g' $i.5 ;
+cat $i.5 | perl -p -e 'undef $/;s|\.B Arguments:\n\n\.B |.B|msg' |
+perl -p -e 'undef $/;s|\n \* ||msg' > stapprobes.$i.5.in ;
+# cleanup all remaining stars, excess initial whitespace, and trailing "/" per line
+perl -p -i -e 's|^ \*||g' stapprobes.$i.5.in;
+perl -p -i -e 's|^ ||g' stapprobes.$i.5.in;
+perl -p -i -e 's|^/||g' stapprobes.$i.5.in;
done
+# file cleanup
+rm `ls | grep -v stapprobes`
+
+# perl -p -i -e 's|||g' stapprobes.$i.5.in ;
# perl -p -i -e 's|||g' $i.manpagebody
# use to move marked strings.
-# sed -n '/\/\/ <tapsetdescription>/,/\/\/ <\/tapsetdescription>/ s/.*/&/w bleh' < ioscheduler \ No newline at end of file
+# sed -n '/\/\/ <tapsetdescription>/,/\/\/ <\/tapsetdescription>/ s/.*/&/w bleh' < ioscheduler
+# remove excess initial whitespace for each line
+# perl -p -i -e 's|^ ||g' stapprobes.$i.5.in;
+# convert tags
+# perl -p -i -e 's|</[^>]*>|\n|g' stapprobes.$i.5.in ;
+# perl -p -i -e 's|<[^>]*>|\n.B |g' stapprobes.$i.5.in ; \ No newline at end of file