]> git.decadent.org.uk Git - dak.git/commitdiff
copy_installer.py: implement main()
authorTorsten Werner <twerner@debian.org>
Sat, 8 Jan 2011 17:58:51 +0000 (18:58 +0100)
committerTorsten Werner <twerner@debian.org>
Sat, 8 Jan 2011 17:58:51 +0000 (18:58 +0100)
Signed-off-by: Torsten Werner <twerner@debian.org>
dak/copy_installer.py [changed mode: 0644->0755]

old mode 100644 (file)
new mode 100755 (executable)
index 8e767d2..6bc8660
@@ -1,8 +1,70 @@
 #!/usr/bin/env python
 
+""" Copies the installer from one suite to another """
+# Copyright (C) 2011  Torsten Werner <twerner@debian.org>
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+################################################################################
+
 from daklib.config import Config
 
-import glob, os.path, re, shutil
+import apt_pkg, glob, os.path, re, shutil, sys
+
+def usage(exit_code = 0):
+    print """Usage: dak copy-installer [OPTION]... VERSION
+  -h, --help         show this help and exit
+  -s, --source       source suite      (defaults to unstable)
+  -d, --destination  destination suite (defaults to testing)
+  -n, --no-action    don't change anything
+
+Exactly 1 version must be specified."""
+    sys.exit(exit_code)
+
+def main():
+    cnf = Config()
+    Arguments = [
+            ('h', "help",        "Copy-Installer::Options::Help"),
+            ('s', "source",      "Copy-Installer::Options::Source",      "HasArg"),
+            ('d', "destination", "Copy-Installer::Options::Destination", "HasArg"),
+            ('n', "no-action",   "Copy-Installer::Options::No-Action"),
+            ]
+    for option in [ "help", "source", "destination", "no-action" ]:
+        if not cnf.has_key("Copy-Installer::Options::%s" % (option)):
+            cnf["Copy-Installer::Options::%s" % (option)] = ""
+    extra_arguments = apt_pkg.ParseCommandLine(cnf.Cnf, Arguments, sys.argv)
+    Options = cnf.SubTree("Copy-Installer::Options")
+
+    if Options["Help"]:
+        usage()
+    if len(extra_arguments) != 1:
+        usage(1)
+
+    initializer = { "version": extra_arguments[0] }
+    if Options["Source"] != "":
+        initializer["source"] = Options["Source"]
+    if Options["Destination"] != "":
+        initializer["dest"] = Options["Destination"]
+
+    copier = InstallerCopier(**initializer)
+    print copier.get_message()
+    if Options["No-Action"]:
+        print 'Do nothing because --no-action has been set.'
+    else:
+        copier.do_copy()
+        print 'Installer has been copied successfully.'
 
 root_dir = Config()['Dir::Root']
 
@@ -64,3 +126,7 @@ Architectures to skip: %(skip_arch_list)s""" % {
             if os.path.lexists(dest):
                 os.unlink(dest)
             os.symlink(source, dest)
+
+
+if __name__ == '__main__':
+    main()