From 51c87f2091afdab8a18fccdaa175f67b36a8684c Mon Sep 17 00:00:00 2001 From: =?utf8?q?Guido=20G=C3=BCnther?= Date: Mon, 25 Jul 2011 17:49:47 +0200 Subject: [PATCH] git-import-orig: split out package and version detection Git-Dch: Ignore --- git-import-orig | 75 +++++++++++++++++++++++++++++++-------------------------- 1 file changed, 41 insertions(+), 34 deletions(-) diff --git a/git-import-orig b/git-import-orig index 5e9bbb5..b109659 100755 --- a/git-import-orig +++ b/git-import-orig @@ -112,6 +112,46 @@ def upstream_import_commit_msg(options, version): return options.import_msg % dict(version=version) +def detect_name_and_version(repo, source, options): + # Guess defaults for the package name and version from the + # original tarball. + (guessed_package, guessed_version) = guess_upstream_version(source.path) or ('', '') + + # Try to find the source package name + try: + cp = parse_changelog(filename='debian/changelog') + sourcepackage = cp['Source'] + except NoChangelogError: + try: + # Check the changelog file from the repository, in case + # we're not on the debian-branch (but upstream, for + # example). + cp = parse_changelog_repo(repo, options.debian_branch, 'debian/changelog') + sourcepackage = cp['Source'] + except NoChangelogError: + if options.interactive: + sourcepackage = ask_package_name(guessed_package) + else: + if guessed_package: + sourcepackage = guessed_package + else: + raise GbpError, "Couldn't determine upstream package name. Use --interactive." + + # Try to find the version. + if options.version: + version = options.version + else: + if options.interactive: + version = ask_package_version(guessed_version) + else: + if guessed_version: + version = guessed_version + else: + raise GbpError, "Couldn't determine upstream version. Use '-u' or --interactive." + + return (sourcepackage, version) + + def ask_package_name(default): """ Ask the user for the source package name. @@ -300,40 +340,7 @@ def main(argv): gbp.log.err(no_upstream_branch_msg % options.upstream_branch) raise GbpError - # Guess defaults for the package name and version from the - # original tarball. - (guessed_package, guessed_version) = guess_upstream_version(source.path) or ('', '') - - # Try to find the source package name - try: - cp = parse_changelog(filename='debian/changelog') - sourcepackage = cp['Source'] - except NoChangelogError: - try: - # Check the changelog file from the repository, in case - # we're not on the debian-branch (but upstream, for - # example). - cp = parse_changelog_repo(repo, options.debian_branch, 'debian/changelog') - sourcepackage = cp['Source'] - except NoChangelogError: - if options.interactive: - sourcepackage = ask_package_name(guessed_package) - else: - if guessed_package: - sourcepackage = guessed_package - raise GbpError, "Couldn't determine upstream package name. Use --interactive." - - # Try to find the version. - if options.version: - version = options.version - else: - if options.interactive: - version = ask_package_version(guessed_version) - else: - if guessed_version: - version = guessed_version - else: - raise GbpError, "Couldn't determine upstream version. Use '-u' or --interactive." + (sourcepackage, version) = detect_name_and_version(repo, source, options) (clean, out) = repo.is_clean() if not clean and not is_empty: -- 2.7.4