annotate bin/updatetreepkg.py @ 171:c0ea6cbb0fd2

Add "--debbuildopts -b" to "pbuilder build" command line to stop pbuilder from creating a source package. The .changes would otherwise contain references to that new source package instead of the one we passed to pbuilder. The checksums for the two source packages would be different so the .changes file would not match the source package that treepkg produces.
author Bernhard Herzog <bh@intevation.de>
date Mon, 23 Jun 2008 16:12:01 +0000
parents dd54ef8a9244
children 757e5504f46a
rev   line source
144
dd54ef8a9244 New file. Script to update an existing treepkg installation to the
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
1 #! /usr/bin/python2.4
dd54ef8a9244 New file. Script to update an existing treepkg installation to the
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
2 # Copyright (C) 2007, 2008 by Intevation GmbH
dd54ef8a9244 New file. Script to update an existing treepkg installation to the
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
3 # Authors:
dd54ef8a9244 New file. Script to update an existing treepkg installation to the
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
4 # Bernhard Herzog <bh@intevation.de>
dd54ef8a9244 New file. Script to update an existing treepkg installation to the
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
5 #
dd54ef8a9244 New file. Script to update an existing treepkg installation to the
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
6 # This program is free software under the GPL (>=v2)
dd54ef8a9244 New file. Script to update an existing treepkg installation to the
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
7 # Read the file COPYING coming with the software for details.
dd54ef8a9244 New file. Script to update an existing treepkg installation to the
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
8
dd54ef8a9244 New file. Script to update an existing treepkg installation to the
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
9 """Script to help update a tree packager installation to the current
dd54ef8a9244 New file. Script to update an existing treepkg installation to the
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
10 version. The script updates the information stored in the filesystem
dd54ef8a9244 New file. Script to update an existing treepkg installation to the
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
11 for the individual revisions in the following ways:
dd54ef8a9244 New file. Script to update an existing treepkg installation to the
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
12
dd54ef8a9244 New file. Script to update an existing treepkg installation to the
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
13 - Rename the build log from build.log to log/build_log.txt
dd54ef8a9244 New file. Script to update an existing treepkg installation to the
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
14
dd54ef8a9244 New file. Script to update an existing treepkg installation to the
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
15 - Rename the build log from build_log.txt to log/build_log.txt
dd54ef8a9244 New file. Script to update an existing treepkg installation to the
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
16 """
dd54ef8a9244 New file. Script to update an existing treepkg installation to the
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
17
dd54ef8a9244 New file. Script to update an existing treepkg installation to the
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
18 import os
dd54ef8a9244 New file. Script to update an existing treepkg installation to the
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
19
dd54ef8a9244 New file. Script to update an existing treepkg installation to the
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
20 import treepkgcmd
dd54ef8a9244 New file. Script to update an existing treepkg installation to the
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
21 from treepkg.options import create_parser
dd54ef8a9244 New file. Script to update an existing treepkg installation to the
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
22 from treepkg.packager import create_package_track, PackagerGroup
dd54ef8a9244 New file. Script to update an existing treepkg installation to the
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
23 from treepkg.readconfig import read_config
dd54ef8a9244 New file. Script to update an existing treepkg installation to the
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
24
dd54ef8a9244 New file. Script to update an existing treepkg installation to the
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
25 def rename_file(old_name, new_name, dry_run):
dd54ef8a9244 New file. Script to update an existing treepkg installation to the
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
26 if os.path.exists(old_name):
dd54ef8a9244 New file. Script to update an existing treepkg installation to the
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
27 new_dir = os.path.dirname(new_name)
dd54ef8a9244 New file. Script to update an existing treepkg installation to the
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
28 if not os.path.isdir(new_dir):
dd54ef8a9244 New file. Script to update an existing treepkg installation to the
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
29 print "mkdir %s" % (new_dir,)
dd54ef8a9244 New file. Script to update an existing treepkg installation to the
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
30 if not dry_run:
dd54ef8a9244 New file. Script to update an existing treepkg installation to the
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
31 os.mkdir(new_dir)
dd54ef8a9244 New file. Script to update an existing treepkg installation to the
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
32 print "mv %s %s" % (old_name, new_name)
dd54ef8a9244 New file. Script to update an existing treepkg installation to the
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
33 if not dry_run:
dd54ef8a9244 New file. Script to update an existing treepkg installation to the
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
34 os.rename(old_name, new_name)
dd54ef8a9244 New file. Script to update an existing treepkg installation to the
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
35
dd54ef8a9244 New file. Script to update an existing treepkg installation to the
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
36 def update_treepkg(config_file, dry_run):
dd54ef8a9244 New file. Script to update an existing treepkg installation to the
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
37 treepkg_opts, packager_opts = read_config(config_file)
dd54ef8a9244 New file. Script to update an existing treepkg installation to the
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
38 for opts in packager_opts:
dd54ef8a9244 New file. Script to update an existing treepkg installation to the
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
39 opts["handle_dependencies"] = False
dd54ef8a9244 New file. Script to update an existing treepkg installation to the
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
40 group = PackagerGroup([create_package_track(**opts)
dd54ef8a9244 New file. Script to update an existing treepkg installation to the
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
41 for opts in packager_opts],
dd54ef8a9244 New file. Script to update an existing treepkg installation to the
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
42 **treepkg_opts)
dd54ef8a9244 New file. Script to update an existing treepkg installation to the
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
43 for track in group.get_package_tracks():
dd54ef8a9244 New file. Script to update an existing treepkg installation to the
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
44 for revision in track.get_revisions():
dd54ef8a9244 New file. Script to update an existing treepkg installation to the
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
45 # Originally, the build logs were called build.log and were
dd54ef8a9244 New file. Script to update an existing treepkg installation to the
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
46 # in the base directory of a revision
dd54ef8a9244 New file. Script to update an existing treepkg installation to the
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
47 rename_file(os.path.join(revision.base_dir, "build.log"),
dd54ef8a9244 New file. Script to update an existing treepkg installation to the
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
48 revision.build_log, dry_run)
dd54ef8a9244 New file. Script to update an existing treepkg installation to the
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
49 # for a while, the build logs were called build_log.txt but
dd54ef8a9244 New file. Script to update an existing treepkg installation to the
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
50 # still were in the base directory
dd54ef8a9244 New file. Script to update an existing treepkg installation to the
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
51 rename_file(os.path.join(revision.base_dir, "build_log.txt"),
dd54ef8a9244 New file. Script to update an existing treepkg installation to the
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
52 revision.build_log, dry_run)
dd54ef8a9244 New file. Script to update an existing treepkg installation to the
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
53
dd54ef8a9244 New file. Script to update an existing treepkg installation to the
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
54 def parse_commandline():
dd54ef8a9244 New file. Script to update an existing treepkg installation to the
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
55 parser = create_parser()
dd54ef8a9244 New file. Script to update an existing treepkg installation to the
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
56 parser.set_defaults(dry_run=False)
dd54ef8a9244 New file. Script to update an existing treepkg installation to the
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
57 parser.add_option("-n", "--dry-run", action="store_true",
dd54ef8a9244 New file. Script to update an existing treepkg installation to the
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
58 help="Do not actually change anything")
dd54ef8a9244 New file. Script to update an existing treepkg installation to the
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
59 return parser.parse_args()
dd54ef8a9244 New file. Script to update an existing treepkg installation to the
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
60
dd54ef8a9244 New file. Script to update an existing treepkg installation to the
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
61
dd54ef8a9244 New file. Script to update an existing treepkg installation to the
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
62 def main():
dd54ef8a9244 New file. Script to update an existing treepkg installation to the
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
63 options, args = parse_commandline()
dd54ef8a9244 New file. Script to update an existing treepkg installation to the
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
64 update_treepkg(options.config_file, options.dry_run)
dd54ef8a9244 New file. Script to update an existing treepkg installation to the
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
65
dd54ef8a9244 New file. Script to update an existing treepkg installation to the
Bernhard Herzog <bh@intevation.de>
parents:
diff changeset
66 main()
This site is hosted by Intevation GmbH (Datenschutzerklärung und Impressum | Privacy Policy and Imprint)