Mercurial > bitten > bitten-test
annotate scripts/build.py @ 142:5a27ec93100d
Remove unused code
author | cmlenz |
---|---|
date | Thu, 18 Aug 2005 10:17:14 +0000 |
parents | 3ed8f568f60a |
children | 76dea27af878 |
rev | line source |
---|---|
0 | 1 #!/usr/bin/env python |
5 | 2 # -*- coding: iso8859-1 -*- |
3 # | |
4 # Copyright (C) 2005 Christopher Lenz <cmlenz@gmx.de> | |
5 # | |
6 # Bitten is free software; you can redistribute it and/or | |
7 # modify it under the terms of the GNU General Public License as | |
8 # published by the Free Software Foundation; either version 2 of the | |
9 # License, or (at your option) any later version. | |
10 # | |
11 # Trac is distributed in the hope that it will be useful, | |
12 # but WITHOUT ANY WARRANTY; without even the implied warranty of | |
13 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |
14 # General Public License for more details. | |
15 # | |
16 # You should have received a copy of the GNU General Public License | |
17 # along with this program; if not, write to the Free Software | |
18 # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. | |
19 # | |
20 # Author: Christopher Lenz <cmlenz@gmx.de> | |
0 | 21 |
103
f1baf05a49dd
* Strip extra line separators from recipe command output on windows. Closes #25.
cmlenz
parents:
72
diff
changeset
|
22 import itertools |
f1baf05a49dd
* Strip extra line separators from recipe command output on windows. Closes #25.
cmlenz
parents:
72
diff
changeset
|
23 import logging |
4 | 24 import sys |
0 | 25 |
61
47ab019508dd
Moved {{{BuildError}}} class into package {{{bitten.build}}}.
cmlenz
parents:
60
diff
changeset
|
26 from bitten.build import BuildError |
4 | 27 from bitten.recipe import Recipe |
28 | |
103
f1baf05a49dd
* Strip extra line separators from recipe command output on windows. Closes #25.
cmlenz
parents:
72
diff
changeset
|
29 def main(): |
f1baf05a49dd
* Strip extra line separators from recipe command output on windows. Closes #25.
cmlenz
parents:
72
diff
changeset
|
30 from bitten import __version__ as VERSION |
f1baf05a49dd
* Strip extra line separators from recipe command output on windows. Closes #25.
cmlenz
parents:
72
diff
changeset
|
31 from optparse import OptionParser |
4 | 32 |
103
f1baf05a49dd
* Strip extra line separators from recipe command output on windows. Closes #25.
cmlenz
parents:
72
diff
changeset
|
33 parser = OptionParser(usage='usage: %prog [options] [step1] [step2] ...', |
f1baf05a49dd
* Strip extra line separators from recipe command output on windows. Closes #25.
cmlenz
parents:
72
diff
changeset
|
34 version='%%prog %s' % VERSION) |
f1baf05a49dd
* Strip extra line separators from recipe command output on windows. Closes #25.
cmlenz
parents:
72
diff
changeset
|
35 parser.add_option('-v', '--verbose', action='store_const', dest='loglevel', |
f1baf05a49dd
* Strip extra line separators from recipe command output on windows. Closes #25.
cmlenz
parents:
72
diff
changeset
|
36 const=logging.DEBUG, help='print as much as possible') |
f1baf05a49dd
* Strip extra line separators from recipe command output on windows. Closes #25.
cmlenz
parents:
72
diff
changeset
|
37 parser.add_option('-q', '--quiet', action='store_const', dest='loglevel', |
f1baf05a49dd
* Strip extra line separators from recipe command output on windows. Closes #25.
cmlenz
parents:
72
diff
changeset
|
38 const=logging.ERROR, help='print as little as possible') |
f1baf05a49dd
* Strip extra line separators from recipe command output on windows. Closes #25.
cmlenz
parents:
72
diff
changeset
|
39 parser.set_defaults(loglevel=logging.INFO) |
f1baf05a49dd
* Strip extra line separators from recipe command output on windows. Closes #25.
cmlenz
parents:
72
diff
changeset
|
40 options, args = parser.parse_args() |
f1baf05a49dd
* Strip extra line separators from recipe command output on windows. Closes #25.
cmlenz
parents:
72
diff
changeset
|
41 |
f1baf05a49dd
* Strip extra line separators from recipe command output on windows. Closes #25.
cmlenz
parents:
72
diff
changeset
|
42 log = logging.getLogger('bitten') |
f1baf05a49dd
* Strip extra line separators from recipe command output on windows. Closes #25.
cmlenz
parents:
72
diff
changeset
|
43 log.setLevel(options.loglevel) |
f1baf05a49dd
* Strip extra line separators from recipe command output on windows. Closes #25.
cmlenz
parents:
72
diff
changeset
|
44 handler = logging.StreamHandler() |
f1baf05a49dd
* Strip extra line separators from recipe command output on windows. Closes #25.
cmlenz
parents:
72
diff
changeset
|
45 handler.setLevel(options.loglevel) |
109
5bf22bb87915
Transmit build log and generated data back to the build master in XML format. Closes #23.
cmlenz
parents:
103
diff
changeset
|
46 formatter = logging.Formatter('%(message)s') |
103
f1baf05a49dd
* Strip extra line separators from recipe command output on windows. Closes #25.
cmlenz
parents:
72
diff
changeset
|
47 handler.setFormatter(formatter) |
f1baf05a49dd
* Strip extra line separators from recipe command output on windows. Closes #25.
cmlenz
parents:
72
diff
changeset
|
48 log.addHandler(handler) |
f1baf05a49dd
* Strip extra line separators from recipe command output on windows. Closes #25.
cmlenz
parents:
72
diff
changeset
|
49 |
f1baf05a49dd
* Strip extra line separators from recipe command output on windows. Closes #25.
cmlenz
parents:
72
diff
changeset
|
50 steps_to_run = dict([(step, False) for step in args]) |
4 | 51 recipe = Recipe() |
52 for step in recipe: | |
103
f1baf05a49dd
* Strip extra line separators from recipe command output on windows. Closes #25.
cmlenz
parents:
72
diff
changeset
|
53 if not steps_to_run or step.id in steps_to_run: |
109
5bf22bb87915
Transmit build log and generated data back to the build master in XML format. Closes #23.
cmlenz
parents:
103
diff
changeset
|
54 print |
4 | 55 print '-->', step.description or step.id |
109
5bf22bb87915
Transmit build log and generated data back to the build master in XML format. Closes #23.
cmlenz
parents:
103
diff
changeset
|
56 for type, function, output in step.execute(recipe.ctxt): |
131
3ed8f568f60a
Fix error handling so that reports are still generated even if a command has failed.
cmlenz
parents:
109
diff
changeset
|
57 if type == Recipe.ERROR: |
3ed8f568f60a
Fix error handling so that reports are still generated even if a command has failed.
cmlenz
parents:
109
diff
changeset
|
58 log.error('Failure in step "%s": %s', step.id, output) |
103
f1baf05a49dd
* Strip extra line separators from recipe command output on windows. Closes #25.
cmlenz
parents:
72
diff
changeset
|
59 if step.id in steps_to_run: |
f1baf05a49dd
* Strip extra line separators from recipe command output on windows. Closes #25.
cmlenz
parents:
72
diff
changeset
|
60 steps_to_run[step.id] = True |
0 | 61 |
62 if __name__ == '__main__': | |
4 | 63 try: |
103
f1baf05a49dd
* Strip extra line separators from recipe command output on windows. Closes #25.
cmlenz
parents:
72
diff
changeset
|
64 main() |
4 | 65 except BuildError, e: |
8 | 66 print>>sys.stderr, 'FAILED: %s' % e |
4 | 67 sys.exit(-1) |
8 | 68 print 'SUCCESS' |