[csw-devel] SF.net SVN: gar:[18177] csw/mgar/gar/v2-solaris11/lib/python/system_pkgmap. py

chninkel at users.sourceforge.net chninkel at users.sourceforge.net
Wed May 30 13:17:31 CEST 2012


Revision: 18177
          http://gar.svn.sourceforge.net/gar/?rev=18177&view=rev
Author:   chninkel
Date:     2012-05-30 11:17:31 +0000 (Wed, 30 May 2012)
Log Message:
-----------
v2-solaris11: improve ips name to svr4 name conversion

Modified Paths:
--------------
    csw/mgar/gar/v2-solaris11/lib/python/system_pkgmap.py

Modified: csw/mgar/gar/v2-solaris11/lib/python/system_pkgmap.py
===================================================================
--- csw/mgar/gar/v2-solaris11/lib/python/system_pkgmap.py	2012-05-30 08:37:18 UTC (rev 18176)
+++ csw/mgar/gar/v2-solaris11/lib/python/system_pkgmap.py	2012-05-30 11:17:31 UTC (rev 18177)
@@ -21,6 +21,7 @@
 import sys
 
 CONTENT_PKG_RE = r"^\*?(CSW|SUNW)[0-9a-zA-Z\-]?[0-9a-z\-]+$"
+ALPHANUMERIC_RE = r"[0-9a-zA-Z]+"
 
 class Error(Exception):
   pass
@@ -111,7 +112,7 @@
 
   def _ParsePkgListLine(self, line):
     fields = re.split(c.WS_RE, line)
-    pkgname = self._IpsNameToPkgname(fields[0])
+    pkgname = self._IpsNameToSrv4Name(fields[0])
     desc_field_start = 1
     # The optional publisher field is always between
     # parenthesis, we skip it if necessary
@@ -144,7 +145,7 @@
     f_owner = None
     f_group = None
     f_pkgname = None
-    pkgnames = [ self._IpsNameToPkgname(parts[2]) ]
+    pkgnames = [ self._IpsNameToSrv4Name(parts[2]) ]
     if f_type == 's' or f_type == 'l':
       f_target = parts[3]
     else:
@@ -386,9 +387,9 @@
     logging.debug("<- _ParsePkginfoOutput()")
     return packages_by_pkgname
   
-  def _IpsNameToPkgname(self, ips_name):
+  def _IpsNameToSrv4Name(self, ips_name):
     """Create a fake Svr4 pkgname from an ips pkgname"""
-    return "SUNW" + ips_name.replace("/", "_")    
+    return "SUNW" + "-".join(re.findall (ALPHANUMERIC_RE, ips_name))
 
 class InstallContentsImporter(object):
   """Responsible for importing a pickled file into the database."""

This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.



More information about the devel mailing list