From: Jaroslav Kysela Date: Tue, 16 May 2017 11:14:27 +0000 (+0200) Subject: bintray.py: fix the parsing of package names X-Git-Tag: v4.2.2~1 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=82c8872db45042b143adbfaca4be3275292369c4;p=thirdparty%2Ftvheadend.git bintray.py: fix the parsing of package names --- diff --git a/support/bintray.py b/support/bintray.py index 289b90236..6d872d20e 100755 --- a/support/bintray.py +++ b/support/bintray.py @@ -96,7 +96,7 @@ def do_upload(*args): error(10, 'HTTP ERROR "%s" %s %s', resp.url, resp.code, resp.reason) def get_ver(version): - if version.find('-'): + if version.find('-') > 0: version, git = version.split('-', 1) else: git = None @@ -118,7 +118,7 @@ def get_path(version, repo): def get_component(version): major, minor, rest, git = get_ver(version) if int(major) >= 4 and int(minor) & 1 == 0: - if git.find('~') > 0: + if git and git.find('~') > 0: return 'stable-%s.%s' % (major, minor) return 'release-%s.%s' % (major, minor) return 'unstable' @@ -147,7 +147,10 @@ def get_bintray_params(filename, hint=None): extra = [] if args.repo == 'deb': debbase, debarch = name.rsplit('_', 1) - debname, debversion = debbase.split('_', 1) + try: + debname, debversion = debbase.split('_', 1) + except: + debname, debversion = debbase.split('-', 1) debversion, debdistro = debversion.rsplit('~', 1) args.version = debversion args.path = 'pool/' + get_path(debversion, args.repo) + '/' + args.package @@ -157,9 +160,8 @@ def get_bintray_params(filename, hint=None): else: rpmbase, rpmarch = name.rsplit('.', 1) rpmname, rpmversion = rpmbase.rsplit('-', 1) - if rpmversion.find('~') > 0: - rpmname, rpmversion2 = rpmname.rsplit('-', 1) - rpmversion = rpmversion2 + '-' + rpmversion + rpmname, rpmversion2 = rpmname.rsplit('-', 1) + rpmversion = rpmversion2 + '-' + rpmversion rpmver1, rpmver2 = rpmversion.split('-', 1) rpmversion, rpmdist = rpmver2.split('.', 1) rpmversion = rpmver1 + '-' + rpmversion @@ -229,8 +231,29 @@ def do_unknown(*args): r += ' ' + n[3:] + '\n' error(1, r[:-1]) +def test_filename(): + FILES=[ + "tvheadend_4.3-86~g7d2c4e8~xenial_amd64.deb", + "tvheadend_4.3-86~g7d2c4e8~xenial_arm64.deb", + "tvheadend-4.3-86~g7d2c4e8.el7.centos.x86_64.rpm", + "tvheadend-4.3-86~g7d2c4e8.fc24.x86_64.rpm", + "tvheadend-4.2.2~xenial_amd64.deb", + "tvheadend_4.2.2~xenial_arm64.deb", + "tvheadend-4.2.2-1.el7.centos.x86_64.rpm", + "tvheadend-4.2.2-1.fc24.x86_64.rpm" + ] + from pprint import pprint + for f in FILES: + basename, args, extra = get_bintray_params(f) + print('\n') + print('BASENAME:', basename) + print('EXTRA:', basename) + pprint(vars(args), indent=2) + def main(argv): global DEBUG + if argv[1] == '--test-filename': + return test_filename() if not BINTRAY_USER or not BINTRAY_PASS: error(2, 'No credentals') if argv[1] == '--debug':