xref: /plan9-contrib/sys/lib/dist/sources2web (revision 433d7a0141698c193b72416ac78173edb8f0e743)
1*433d7a01SDavid du Colombier#!/bin/rc
2*433d7a01SDavid du Colombier# sources2web source-file - massage source file into html
3*433d7a01SDavid du Colombierrfork e
4*433d7a01SDavid du Colombiercontrib=`{cat /sys/lib/dist/contrib.note}
5*433d7a01SDavid du Colombiercontrib=`{echo $contrib | sed 's;/;\\/;g'}
6*433d7a01SDavid du Colombierifs='
7*433d7a01SDavid du Colombier'
8*433d7a01SDavid du Colombierfile=$1
9*433d7a01SDavid du Colombiersafefile=`{cleanname -d `{pwd} $file | sed 's;/;\\/;g'}	# safe for sed
10*433d7a01SDavid du Colombierif(! ~ $safefile *contrib*)
11*433d7a01SDavid du Colombier	contrib=''
12*433d7a01SDavid du Colombier
13*433d7a01SDavid du Colombierfn html {
14*433d7a01SDavid du Colombier	echo Content-Type: text/html
15*433d7a01SDavid du Colombier	echo
16*433d7a01SDavid du Colombier}
17*433d7a01SDavid du Colombierfn head {
18*433d7a01SDavid du Colombier	sed -n '1,/END HEADER/p' /usr/web/plan9/sources.html | translate
19*433d7a01SDavid du Colombier}
20*433d7a01SDavid du Colombierfn tail {
21*433d7a01SDavid du Colombier	sed -n '/BEGIN TAIL/,$p' /usr/web/plan9/sources.html | translate
22*433d7a01SDavid du Colombier}
23*433d7a01SDavid du Colombierfn translate {
24*433d7a01SDavid du Colombier	sed 's/PATH/'$safefile'/g; s/CONTRIB/'$"contrib'/g;' $*
25*433d7a01SDavid du Colombier}
26*433d7a01SDavid du Colombier
27*433d7a01SDavid du Colombierif(test -f $1){
28*433d7a01SDavid du Colombier	type=`{file -m $1}
29*433d7a01SDavid du Colombier	if(! ~ $type text/*){
30*433d7a01SDavid du Colombier		len=`{ls -l $1 | awk '{print $6}'}
31*433d7a01SDavid du Colombier		echo Content-Type: $type
32*433d7a01SDavid du Colombier		echo Content-Length: $len
33*433d7a01SDavid du Colombier		echo
34*433d7a01SDavid du Colombier		cat $1
35*433d7a01SDavid du Colombier		exit 0
36*433d7a01SDavid du Colombier	}
37*433d7a01SDavid du Colombier	html
38*433d7a01SDavid du Colombier	head
39*433d7a01SDavid du Colombier	cat $1 | aux/htmlsanitize
40*433d7a01SDavid du Colombier	tail
41*433d7a01SDavid du Colombier	exit 0
42*433d7a01SDavid du Colombier}
43*433d7a01SDavid du Colombierif(test -d $1){
44*433d7a01SDavid du Colombier	html
45*433d7a01SDavid du Colombier	head
46*433d7a01SDavid du Colombier	# exclude stuff that we don't want to publish with grep -v
47*433d7a01SDavid du Colombier	ls -lp $1 | grep -v ' _| snap$| (9k|nix|pac)' |
48*433d7a01SDavid du Colombier		sed 's/ . [0-9]+ / /' |
49*433d7a01SDavid du Colombier		aux/htmlsanitize |
50*433d7a01SDavid du Colombier		sed 's; ([^ /]+)$; <a href="\1">\1</a>;'
51*433d7a01SDavid du Colombier	tail
52*433d7a01SDavid du Colombier	exit 0
53*433d7a01SDavid du Colombier}
54*433d7a01SDavid du Colombier
55*433d7a01SDavid du Colombierecho not found
56*433d7a01SDavid du Colombierexit 0
57