From 21225aac8880d840612d186defa043be485b8db0 Mon Sep 17 00:00:00 2001 From: rsiddharth Date: Tue, 10 Dec 2013 23:45:18 +0530 Subject: initial commit. --- src/gns-deb-diff.py | 95 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 95 insertions(+) create mode 100644 src/gns-deb-diff.py (limited to 'src/gns-deb-diff.py') diff --git a/src/gns-deb-diff.py b/src/gns-deb-diff.py new file mode 100644 index 0000000..48dab1d --- /dev/null +++ b/src/gns-deb-diff.py @@ -0,0 +1,95 @@ +# Copyright 2013 rsiddharth +# +# This work is free. You can redistribute it and/or modify it under +# the terms of the Do What The Fuck You Want To Public License, +# Version 2, as published by Sam Hocevar. See the COPYING file or +# for more details. + +import subprocess as child +import shlex + +# global variables. +bzr_base_url = "" +local_dir = "" +pkgs_file = "" + +def get_packages(): + """ + Return a list of package names from pkgs_file. + """ + global pkgs_file + + try: + packages_file = file(pkgs_file, 'r') + except IOError, e: + print "Trouble opening %r" % pkgs_file + print e + return None + + packages = [] + for package in packages_file.readlines(): + packages.append(package.strip()) + + packages_file.close() + + print packages + + return packages + + +def bzr_branch_command(package): + """ + Return the command to create a local bzr branch of package. + """ + global bzr_base_url, local_dir + + return "bzr branch %s/%s %s/%s" % (bzr_base_url, package, + local_dir, package) + +def fetch_bzr_branch(package): + """ + Create a local bzr branch of the package. + """ + bzr_branch_cmd = bzr_branch_command(package) + print "doing %s ..." % bzr_branch_cmd + return child.call(shlex.split(bzr_branch_cmd)) + + +def deploy_packages_locally(packages_list): + """ + Create a local bzr branch for each package in packages list. + """ + for pkg in packages_list: + fetch_bzr_branch(pkg) + +def get_paraphernalia(): + """ + Read relevant values from stdin to start work. + """ + global bzr_base_url, local_dir, pkgs_file + + stdin = raw_input("> url of packages location: ").strip() + + if (len(stdin) != 0): + bzr_base_url = stdin + else: + bzr_base_url = "bzr://bzr.savannah.gnu.org/gnewsense/packages-parkes" + + # directory under which the bzr branches has to be stored. + local_dir = raw_input("> local directory: ") + + # absolute path to file which contains the packages names. + # one package per line. + stdin = raw_input("> packages list file (absolute path): ").strip() + + if (len(stdin) != 0): + pkgs_file = stdin + else: + pkgs_file = "packages-parkes.list" + + packages_list = get_packages() + + return packages_list + +pkgs_list = get_paraphernalia() +deploy_packages_locally(pkgs_list) -- cgit v1.2.3