From: Torsten Werner Date: Sat, 8 Jan 2011 17:58:51 +0000 (+0100) Subject: copy_installer.py: implement main() X-Git-Url: https://err.no/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=e9bf858b51a1dabbdba78c4f75c19de9f11b439b;p=dak copy_installer.py: implement main() Signed-off-by: Torsten Werner --- diff --git a/dak/copy_installer.py b/dak/copy_installer.py old mode 100644 new mode 100755 index 8e767d22..6bc86601 --- 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 + +# 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()