summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTill Maas <opensource@till.name>2009-07-17 21:50:41 +0200
committerTill Maas <opensource@till.name>2009-07-17 21:56:30 +0200
commit9d38d7ec27bcbf8e32975a281f2753c90b9b1132 (patch)
treea5e7d3c85429b8a38e4689513b4b51ce34cf453e
parenta88b87bab613268c232c8f7020ece5f9be80286f (diff)
downloadcnucnu-9d38d7ec27bcbf8e32975a281f2753c90b9b1132.tar.gz
cnucnu-9d38d7ec27bcbf8e32975a281f2753c90b9b1132.tar.xz
cnucnu-9d38d7ec27bcbf8e32975a281f2753c90b9b1132.zip
add freshmeat defaults for url and regex
FM-DEFAULT can now be used for url or regex to get defaults for freshmeat. The checkshell now also support the command fm to test these values.
-rw-r--r--lib/cnucnu/checkshell.py5
-rw-r--r--lib/cnucnu/package_list.py10
2 files changed, 13 insertions, 2 deletions
diff --git a/lib/cnucnu/checkshell.py b/lib/cnucnu/checkshell.py
index 2b60eb6..01be358 100644
--- a/lib/cnucnu/checkshell.py
+++ b/lib/cnucnu/checkshell.py
@@ -45,6 +45,11 @@ class CheckShell(cmd.Cmd):
self.package.regex = "DEFAULT"
if not self.package.url:
self.package.url = "SF-DEFAULT"
+
+ def do_fm(self, args):
+ self.package.name = args
+ self.package.regex = "FM-DEFAULT"
+ self.package.url = "FM-DEFAULT"
def do_regex(self, args):
self.package.regex = args
diff --git a/lib/cnucnu/package_list.py b/lib/cnucnu/package_list.py
index 7d31f88..05a127a 100644
--- a/lib/cnucnu/package_list.py
+++ b/lib/cnucnu/package_list.py
@@ -18,6 +18,7 @@
#}}}
import sys
+import re
sys.path.insert(0, './lib')
sys.path.insert(0, '../lib')
sys.path.insert(0, '../../lib')
@@ -28,6 +29,7 @@ from cnucnu.helper import rpm_cmp
class Package(object):
def __init__(self, name, regex, url, repo):
+ # :TODO: add some sanity checks
self.name = name
self.regex = regex
@@ -57,7 +59,9 @@ class Package(object):
def set_regex(self, regex):
if regex == "DEFAULT":
- regex = "%s-([0-9.]*)\\.[tz][ai][rp]" % self.name
+ regex = "%s-([0-9.]*)\\.[tz][ai][rp]" % re.escape(self.name)
+ elif regex == "FM-DEFAULT":
+ regex = '<a href="/projects/[^/]*/releases/[0-9]*">([^<]*)</a>'
self.__regex = regex
self._invalidate_caches()
@@ -66,6 +70,9 @@ class Package(object):
def set_url(self, url):
if url == "SF-DEFAULT":
url = "http://prdownloads.sourceforge.net/%s" % self.name
+ elif url == "FM-DEFAULT":
+ url = "http://freshmeat.net/projects/%s" % self.name
+
self.__url = url
self._invalidate_caches()
@@ -75,7 +82,6 @@ class Package(object):
def upstream_versions(self):
if not self._upstream_versions:
from cnucnu.helper import get_html
- import re
try:
html = get_html(self.url)