aMule Forum
English => aMule Help => Topic started by: FreeToGo on December 12, 2008, 10:05:37 PM
-
#! /usr/bin/python
import os
import re
import urllib2
svnHttp="http://amule.uw.hu/tarballs/tarballs.xml"
tarHttp="http://amule.uw.hu/tarballs"
def regexMatches(matchstr,rawstr):
#match_obj = re.search(rawstr, matchstr)
match_objs = re.findall(rawstr, matchstr)
return match_objs
def getCurrentRevisionNum():
stdout_handle = os.popen("amule --version","r")
matchstr = stdout_handle.read()
rawstr = r"""rev.*(?P<rev>\d{4,4})"""
m = regexMatches(matchstr,rawstr)
if len(m) ==1 :
return int(m[0])
else:
return -1
def getWebPage():
res = urllib2.urlopen(svnHttp)
page = res.read()
#print page
return page
def getMostUpdatedSvnRevisionNum(wpage):
rawstr = r"""revision='(?P<rev>\d{4,4})'"""
m = regexMatches(wpage,rawstr)
m.sort()
m.reverse()
return int(m[0])
def getNewerSvnRevisionNum(wpage):
ret={}
ret["currentRevision"] = getCurrentRevisionNum()
ret["mostUpdatedRevision"] = getMostUpdatedSvnRevisionNum(wpage)
ret["branch"]=None
ret["outdated"]=True
if (not ret["currentRevision"]) or \
(not ret["mostUpdatedRevision"]) or \
(ret["mostUpdatedRevision"] <= ret["currentRevision"]):
ret["outdated"]=False
revPos=wpage.rfind("%04d"%ret["mostUpdatedRevision"])
s = wpage[revPos:-1].split(">")[0]
#print s
pos= s.rfind("branch=")
if pos > 0:
branch=s[pos+8:-2]
ret["branch"] = branch
#print ret
return ret
def downloadSVN(revNum,branch):
fBasename="aMule-SVN-r%04d"%revNum
if branch:
fBasename+="-%s"%branch
fName=fBasename+".tar.bz2"
bashScript="cd /tmp; rm aMule* -Rf;"
if os.path.exists("/usr/bin/axel"):
downloader="axel"
else:
downloader="wget"
bashScript+="%s %s/%s; "%(downloader,tarHttp,fName)
bashScript+="tar jxvf %s; "%fName
bashScript+="cd /tmp/%s ;"%fBasename
bashScript+="./configure --prefix=/usr --enable-geoip --enable-amule-gui --enable-amule-daemon --enable-optimize --enable-alc --enable-webserver && "
bashScript+= " make -j 4 && sudo make install"
#bashScript = ("bash -c \"%s\" |zenity --text-info")%bashScript
print bashScript
stdout_handle = os.system(bashScript)
print stdout_handle
def main():
wpage=getWebPage()
ret = getNewerSvnRevisionNum(wpage)
print "Installed Revision=%04d"%ret["currentRevision"]
print "Newest Revision=%04d"%ret["mostUpdatedRevision"]
if ret["branch"]:
print "Branch=%s"%ret["branch"]
if not ret["outdated"]:
print "You have already got the newest SVN Revision!"
return
else:
downloadSVN(ret["mostUpdatedRevision"],ret["branch"])
#print "dummy"
if __name__ == '__main__':
main()