Created
July 22, 2009 19:12
-
-
Save zodman/152200 to your computer and use it in GitHub Desktop.
a small script for get info package on foresight
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import urllib | |
import re | |
URL ="http://packages.foresightlinux.org/sources/" | |
class ForesightPackageNotFound(Exception): | |
pass | |
class ForesightInfo: | |
def __init__(self, repository, package_name): | |
self.repository = repository | |
self.package_name = package_name | |
self.conary = None | |
self.package_recipe = None | |
def _open_url(self, filename): | |
url = urllib.urlopen(URL+"%(repository)s/%(package_name)s/%(filename)s" % dict( | |
package_name = self.package_name, repository = self.repository, filename = filename | |
) | |
) | |
if url.getcode() == 404: | |
raise ForesightPackageNotFound | |
#print "getting from web %s" % filename | |
return url.read() | |
def _get_recipe(self): | |
if self.package_recipe: | |
return self.package_recipe | |
self.package_recipe = self._open_url( "%s.recipe" % self.package_name) | |
return self.package_recipe | |
def _get_conary(self): | |
if self.conary: | |
return self.conary | |
self.conary = self._open_url("CONARY") | |
return self.conary | |
def _get_regex(self,regex): | |
file = self._get_conary() | |
regex = re.search(regex,file) | |
return regex.groups()[0] | |
def get_recipe(self): | |
return self._get_recipe() | |
def get_version(self): | |
version_string = self._get_regex("\sversion (?P<version>.*?)\s") | |
return version_string.split("/")[2].split(":")[1] | |
if __name__ == "__main__": | |
import sys | |
try: | |
fl = ForesightInfo(repository=sys.argv[1],package_name =sys.argv[2]) | |
fl.get_recipe() | |
print fl.get_recipe() | |
fl.get_version() | |
fl.get_version() | |
except ForesightPackageNotFound: | |
print "not found" |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment