summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoshua Ismael Haase Hernández <hahj87@gmail.com>2011-02-14 02:28:01 -0600
committerJoshua Ismael Haase Hernández <hahj87@gmail.com>2011-02-14 02:28:01 -0600
commitcbe877f2ba25b398ad32b92d22dc6f5a108ef59f (patch)
tree83a79f020cc5439f96a6677b5e882ca950e5ba1d
parent7f40b89e8cd0e9b2cfd92a8b74c4063d8b9aa3e3 (diff)
* Changed get_file_list_ for pkginfo in function names
* Added pkginfo_from_... funcions
-rw-r--r--filter.py57
-rw-r--r--test/test1.py8
2 files changed, 42 insertions, 23 deletions
diff --git a/filter.py b/filter.py
index c789cd5..232319f 100644
--- a/filter.py
+++ b/filter.py
@@ -1,13 +1,34 @@
#! /usr/bin/python
#-*- encoding: utf-8 -*-
import commands
-import os
import re
from repm.config import *
from repm.pato2 import *
-def get_file_list_from_rsync_output(rsync_output):
- """ Generates a list of packages and versions from an rsync output using --list-only --no-motd.
+def pkginfo_from_filename(filename):
+ """ Generates a Package object with info from a filename,
+ filename can be relative or absolute
+
+ Parameters:
+ ----------
+ filename -> str
+
+ Returns:
+ ----------
+ pkg -> Package object"""
+ pkg = Package()
+ pkg["location"] = filename
+ fileattrs = os.path.basename(filename).split("-")
+ pkg["arch"] = fileattrs.pop(-1).split(".")[0]
+ pkg["release"] = fileattrs.pop(-1)
+ pkg["version"] = fileattrs.pop(-1)
+ pkg["name"] = "-".join(fileattrs)
+ return pkg
+
+
+def pkginfo_from_rsync_output(rsync_output):
+ """ Generates a list of packages and versions from an rsync output
+ wich uses --list-only and --no-motd options.
Parameters:
----------
@@ -18,33 +39,30 @@ def get_file_list_from_rsync_output(rsync_output):
package_list -> tuple Contains Package objects. """
a=list()
- def directory(line):
- pass
-
def package_or_link(line):
""" Take info out of filename """
location_field = 4
- pkg = Package()
- pkg["location"] = line.rsplit()[location_field]
- fileattrs = pkg["location"].split("/")[-1].split("-")
- pkg["arch"] = fileattrs.pop(-1).split(".")[0]
- pkg["release"] = fileattrs.pop(-1)
- pkg["version"] = fileattrs.pop(-1)
- pkg["name"] = "-".join(fileattrs)
- return pkg
-
+ pkginfo_from_filename(line.rsplit()[location_field])
+
+ def directory(line):
+ pass
+
options = { "d": directory,
"l": package_or_link,
"-": package_or_link}
for line in rsync_output.split("\n"):
if ".pkg.tar" in line:
- pkginfo=options[line[0]](line)
- if pkginfo:
- a.append(pkginfo)
+ pkginfo_=options[line[0]](line)
+ if pkginfo_:
+ a.append(pkginfo_)
return tuple(a)
+def pkginfo_from_files_in_dir(directory):
+ """ Returns pkginfo from filenames of packages in dir
+ wich has .pkg.tar.{xz,gz} on them """
+
def generate_exclude_list_from_blacklist(packages_iterable, blacklisted_names,
exclude_file=rsync_blacklist, debug=verbose):
""" Generate an exclude list for rsync
@@ -78,8 +96,9 @@ def generate_exclude_list_from_blacklist(packages_iterable, blacklisted_names,
fsock.close()
except IOError:
printf("%s wasnt written" % blacklist_file)
+
if __name__ == "__main__":
a=run_rsync(rsync_list_command)
- packages=get_file_list_from_rsync_output(a)
+ packages=pkginfo_from_rsync_output(a)
generate_exclude_list_from_blacklist(packages,listado(blacklist))
diff --git a/test/test1.py b/test/test1.py
index 13b5660..9e94352 100644
--- a/test/test1.py
+++ b/test/test1.py
@@ -29,12 +29,12 @@ class KnownValues(unittest.TestCase):
def generate_results(self, example_tuple, attr):
rsync_out, name, version, arch, release, location = example_tuple
- return get_file_list_from_rsync_output(rsync_out)[0][attr], locals()[attr]
+ return pkginfo_from_rsync_output(rsync_out)[0][attr], locals()[attr]
def testDirectoryOutput(self):
- """get_file_list_from_rsync_output should ignore directories"""
+ """pkginfo_from_rsync_output should ignore directories"""
rsync_out="\n".join(self.directory_list)
- result=get_file_list_from_rsync_output(rsync_out)
+ result=pkginfo_from_rsync_output(rsync_out)
self.assertEqual(tuple(), result)
def testNames(self):
@@ -62,5 +62,5 @@ class KnownValues(unittest.TestCase):
k,v = self.generate_results(example_tuple=i,attr="location")
self.assertEqual(k, v)
-if __name__ == "__main__":
+if __name__ == "__mpain__":
unittest.main()