diff options
author | André Erdmann <dywi@mailerd.de> | 2012-06-28 15:28:59 +0200 |
---|---|---|
committer | André Erdmann <dywi@mailerd.de> | 2012-06-28 15:28:59 +0200 |
commit | d1789f1570486f0ac5f52804801de7f078d0991f (patch) | |
tree | 5d91c306e1a8db32de67818f471d7e859056761f /roverlay/packageinfo.py | |
parent | ebuild: don't print empty vars (DEPEND="" etc.) (diff) | |
download | R_overlay-d1789f1570486f0ac5f52804801de7f078d0991f.tar.gz R_overlay-d1789f1570486f0ac5f52804801de7f078d0991f.tar.bz2 R_overlay-d1789f1570486f0ac5f52804801de7f078d0991f.zip |
PackageInfo: fix illegal ebuild names
modified: roverlay/packageinfo.py
Diffstat (limited to 'roverlay/packageinfo.py')
-rw-r--r-- | roverlay/packageinfo.py | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/roverlay/packageinfo.py b/roverlay/packageinfo.py index 8f59439..cc09a6b 100644 --- a/roverlay/packageinfo.py +++ b/roverlay/packageinfo.py @@ -41,6 +41,10 @@ class PackageInfo ( object ): config.get_or_fail ( 'R_PACKAGE.suffix_regex' ) + '$' ) + ILLEGAL_NAME_CHARS = re.compile ( "[.:]{1,}" ) + ILLEGAL_NAME_CHARS_REPLACE_BY = '_' + + def __init__ ( self, **initial_info ): """Initializes a PackageInfo. @@ -296,13 +300,20 @@ class PackageInfo ( object ): # TODO: discard or continue with bad version? logging.error ( "Cannot parse version string '%s' for '%s'" - % ( filepath, version_str ) + % ( _filename, version_str ) ) raise # using package name as name (unless modified later), # using pkg_version for the ebuild version - self ['name'] = package_name + + # removing illegal chars from the package_name + ebuild_name = PackageInfo.ILLEGAL_NAME_CHARS.sub ( + PackageInfo.ILLEGAL_NAME_CHARS_REPLACE_BY, package_name + ) + if ebuild_name != package_name: + self ['name'] = ebuild_name + self ['ebuild_verstr'] = version_str # for DescriptionReader |