[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

[dak/master] copy_installer.py: implement main()



Signed-off-by: Torsten Werner <twerner@debian.org>
---
 dak/copy_installer.py |   68 ++++++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 67 insertions(+), 1 deletions(-)
 mode change 100644 => 100755 dak/copy_installer.py

diff --git a/dak/copy_installer.py b/dak/copy_installer.py
old mode 100644
new mode 100755
index 8e767d2..6bc8660
--- a/dak/copy_installer.py
+++ b/dak/copy_installer.py
@@ -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()
-- 
1.5.6.5



Reply to: