#!/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']
if os.path.lexists(dest):
os.unlink(dest)
os.symlink(source, dest)
+
+
+if __name__ == '__main__':
+ main()