shithub: shithub

ref: d2917cc98cfbda35f505c06d1712e11638ef4663
dir: shithub/files

View raw version
#!/bin/rc -e

. /sys/lib/shithub/common.rc

cd $1
shift

rfork ne
nl='
'


gituser=$1
repo=$2
refname=$3

repons $gituser $repo
repodir=/mnt/$repo/.git
if(! ref=`{resolveref $refname}){
	echo '<b>invalid ref '$refname'</b>'
	exit
}

if(test -f /mnt/git/$ref/hash)
	hash=`{cat /mnt/git/$ref/hash}
if not
	hash=$ref

user_prelude $gituser $repo $hash

if(! test -d /mnt/git/$ref/tree){
	echo '	<p>No code pushed</p>
		</body>
		</html>
	'
	exit
}

cd /mnt/git/$ref/tree

echo '	<p>
	<b>ref:</b> <a href="'/git/$gituser/$repo/$hash/files.html'">'$hash'</a><br/>
	<b>tar:</b> <a href="'/git/$gituser/$repo/$hash/snap.tar.gz'">snap.tar.gz</a><br/></p>'

echo '<p><div id="code">'
for(f in `$nl{ls}){
	url=`$nl{echo -n $f/f.html | urlencode}
	fname=`$nl{echo -n $f | htcat}
	echo -n '<a href="'$url'">'$fname
	if (test -d $f) echo '/'
	echo '</a><br/>'
}		
echo '	</div>
	</p>
	</body>
	</html>'