diff options
author | 2015-07-10 21:25:17 -0400 | |
---|---|---|
committer | 2015-07-10 21:25:20 -0400 | |
commit | 9e251c7574d074e424ea19024f743c754f321979 (patch) | |
tree | 79460aaabf0c00e15e52db8d6d5bd7ff0931c18c | |
parent | version.py: Modifies version to reflect git status (diff) | |
download | webapp-config-9e251c7574d074e424ea19024f743c754f321979.tar.gz webapp-config-9e251c7574d074e424ea19024f743c754f321979.tar.bz2 webapp-config-9e251c7574d074e424ea19024f743c754f321979.zip |
config.py: Fixes package version checking regression
Previously webapp-config would not do any sanity checks when
setting the package version. After adding a sanity check in 1.54
I made the mistake of not being flexible enough and this caused
a regression that prevented web apps with versions such as
"20140929d"[1] to be installed. This commit fixes that while still
allowing for some sanity checking.
[1]: https://github.com/gentoo/webapp-config/issues/2
-rw-r--r-- | WebappConfig/config.py | 21 |
1 files changed, 12 insertions, 9 deletions
diff --git a/WebappConfig/config.py b/WebappConfig/config.py index 6c915c3..3a176a0 100644 --- a/WebappConfig/config.py +++ b/WebappConfig/config.py @@ -996,17 +996,20 @@ class Config: OUT.die('Invalid package name') if len(args) > 1: - argsvr = args[1].split('.') - if len(argsvr) == 1: - OUT.die('Invalid package version: %(pvr)s' + pvr = args[1] + has_int = False # A package version should have at least one + # numerical value, but we want to allow for + # the flexibility of having any alphanumeric + # value while checking to make sure it's sane. + + for char in pvr: + if char.isdigit(): + has_int = True + + if not has_int: + OUT.die('Invalid package version: "%(pvr)s"' % {'pvr': args[1]}) - pvr = '' - for i in range(0, len(argsvr)): - if not i == len(argsvr) - 1: - pvr += argsvr[i] + '.' - else: - pvr += argsvr[i] self.config.set('USER', 'pvr', pvr) if (not options['dir'] and |