提交 e9bf858b 编写于 作者: T Torsten Werner

copy_installer.py: implement main()

Signed-off-by: NTorsten Werner <twerner@debian.org>
上级 c435e434
#!/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()
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册