summaryrefslogtreecommitdiffstats
path: root/mgagnome
diff options
context:
space:
mode:
authorOlav Vitters <ovitters@mageia.org>2012-03-21 19:17:35 +0000
committerOlav Vitters <ovitters@mageia.org>2012-03-21 19:17:35 +0000
commiteeb14c33b4e7ac5e0db6ec31857c1d4943541df4 (patch)
treea4f90f8d126eff72654d74b118a41794b6818c48 /mgagnome
parent88002eca6abd5e5f37efd152cbc4c3da55000f57 (diff)
downloadmgagnome-eeb14c33b4e7ac5e0db6ec31857c1d4943541df4.tar
mgagnome-eeb14c33b4e7ac5e0db6ec31857c1d4943541df4.tar.gz
mgagnome-eeb14c33b4e7ac5e0db6ec31857c1d4943541df4.tar.bz2
mgagnome-eeb14c33b4e7ac5e0db6ec31857c1d4943541df4.tar.xz
mgagnome-eeb14c33b4e7ac5e0db6ec31857c1d4943541df4.zip
allow to limit upstream names; fix packages subcommand
Diffstat (limited to 'mgagnome')
-rwxr-xr-xmgagnome40
1 files changed, 26 insertions, 14 deletions
diff --git a/mgagnome b/mgagnome
index 425e5f4..afd6699 100755
--- a/mgagnome
+++ b/mgagnome
@@ -484,22 +484,29 @@ class Patch(object):
return self._svn_author
-def get_upstream_names():
- urlopen = urllib2.build_opener()
- good_dir = re.compile('^[-A-Za-z0-9_+.]+/$')
+class Upstream(object):
- # Get the files
- usock = urlopen.open(URL)
- parser = urllister()
- parser.feed(usock.read())
- usock.close()
- parser.close()
- files = parser.urls
+ limit = None
- tarballs = set([filename.replace('/', '') for filename in files if good_dir.search(filename)])
+ def __init__(self):
+ urlopen = urllib2.build_opener()
- return tarballs
+ good_dir = re.compile('^[-A-Za-z0-9_+.]+/$')
+
+ # Get the files
+ usock = urlopen.open(URL)
+ parser = urllister()
+ parser.feed(usock.read())
+ usock.close()
+ parser.close()
+ files = parser.urls
+
+ tarballs = set([filename.replace('/', '') for filename in files if good_dir.search(filename)])
+ if self.limit is not None:
+ tarballs.intersection_update(self.limit)
+
+ self.names = tarballs
def get_downstream_names():
re_file = re.compile(r'^(?P<module>.*?)[_-](?:(?P<oldversion>([0-9]+[\.])*[0-9]+)-)?(?P<version>([0-9]+[\.\-])*[0-9]+)\.(?P<format>(?:tar\.|diff\.)?[a-z][a-z0-9]*)$')
@@ -591,7 +598,7 @@ def cmd_co(options, parser):
def join_streams(show_version=False, only_diff_version=False):
root = os.path.expanduser(PKGROOT)
- upstream = get_upstream_names()
+ upstream = Upstream().names
downstream, downstream_files = get_downstream_names()
matches = upstream & set(downstream.keys())
@@ -615,7 +622,7 @@ def cmd_ls(options, parser):
for package, module, package_version, spec_version, downstream_files in sorted(join_streams(show_version=options.show_version, only_diff_version=options.diff)):
sys.stdout.write(package)
if options.upstream: sys.stdout.write("\t%s" % module)
- if options.show_version: sys.stdout.write("\t%s\t%s".join((spec_version, package_version)))
+ if options.show_version: sys.stdout.write("\t%s\t%s" % (spec_version, package_version))
print
def cmd_patches(options, parser):
@@ -783,6 +790,9 @@ def main():
description = """Mageia GNOME commands."""
epilog="""Report bugs to Olav Vitters"""
parser = argparse.ArgumentParser(description=description,epilog=epilog)
+ parser.add_argument("-l", "--limit", type=argparse.FileType('r', 0),
+ dest="limit_upstream", metavar="FILE",
+ help="File containing upstream names")
# SUBPARSERS
subparsers = parser.add_subparsers(title='subcommands')
@@ -849,6 +859,8 @@ def main():
sys.exit(2)
options = parser.parse_args()
+ if options.limit_upstream:
+ Upstream.limit = set(options.limit_upstream.read().strip("\n").splitlines())
try:
options.func(options, parser)