Here’s a little script I wrote which will traverse through an online git repo and hopefully display the file tree. There’s probably a command to do this but I thought I’d try to write it anyway to test my recursion skills.
#!/usr/bin/python
import re
import urllib
def mt(tn):
o = ""
for x in range(0, tn):
o += " "
return o
def rr(pd, tn):
webobj = urllib.urlopen("http://git.fedorahosted.org/git/?p=arm.git;a=tree;f=" + pd)
webstr = webobj.read()
webstr = webstr.replace("\t", "")
webstr = webstr.replace("\r", "")
webstr = webstr.replace("\n", "")
webstr = re.sub("<tr", "\n<tr", webstr)
weblist = webstr.split("\n")
dirlist = pd.split("/")
while (len(dirlist) > 1):
dirlist.pop(0)
print(mt(tn) + dirlist[0] + "/")
for webitem in weblist:
if (re.match("^<tr", webitem)):
webitem = re.sub("<[^>]*>", " ", webitem)
webitem = webitem.strip()
webitem = re.sub(" [ ]*", " ", webitem)
itemlist = webitem.split(" ")
if (len(itemlist) < 3):
continue
if (itemlist[2] == ".."):
continue
if (not re.match("^d.*", itemlist[0])):
print(mt(tn + 1) + itemlist[2])
else:
rr(pd + "/" + itemlist[2], tn + 1)
rr("styrene", 0)
also to get the last check-in name/time:
#!/bin/bash
webpoutp=`curl -s 'http://git.fedorahosted.org/git/?p=arm.git;a=shortlog'`
webpoutp=`echo "$webpoutp" | tr -d '\t\r\n'`
webpoutp=`echo "$webpoutp" | awk '{ gsub(/<td/, "\n<td"); gsub(/<\/td/, "\n</td"); print; }'`
webpoutp=`echo "$webpoutp" | grep -i '^<td'`
webpoutp=`echo "$webpoutp" | head -n 2`
webpoutp=`echo "$webpoutp" | sed -e 's/<[^>]*>//g'`
fnaloutp=""
echo "$webpoutp" | while read lineread
do
if [ "$fnaloutp" != "" ]
then
fnaloutp="${fnaloutp} - "
fi
fnaloutp="${fnaloutp}${lineread}"
echo "Last git push: [$fnaloutp]" > /tmp/git.log
done
cat /tmp/git.log