summaryrefslogtreecommitdiffstats
path: root/src/gns-deb-diff.py
diff options
context:
space:
mode:
authorrsiddharth <rsiddharth@ninthfloor.org>2013-12-10 23:45:18 +0530
committerrsiddharth <rsiddharth@ninthfloor.org>2013-12-10 23:45:18 +0530
commit21225aac8880d840612d186defa043be485b8db0 (patch)
tree7d2ba885ba4309283d9a674adf2bfcabe70c4af9 /src/gns-deb-diff.py
initial commit.
Diffstat (limited to 'src/gns-deb-diff.py')
-rw-r--r--src/gns-deb-diff.py95
1 files changed, 95 insertions, 0 deletions
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 <rsiddharth@ninthfloor.org>
+#
+# 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
+# <http://www.wtfpl.net/> 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)