mkmfs: fix zone bitmap initialization.
[helenos.git] / tools / jobfile.py
blob95043fef2aa4e72c2bd64a366bb267a35e0790f5
1 #!/usr/bin/env python
3 # Copyright (c) 2009 Martin Decky
4 # All rights reserved.
6 # Redistribution and use in source and binary forms, with or without
7 # modification, are permitted provided that the following conditions
8 # are met:
10 # - Redistributions of source code must retain the above copyright
11 # notice, this list of conditions and the following disclaimer.
12 # - Redistributions in binary form must reproduce the above copyright
13 # notice, this list of conditions and the following disclaimer in the
14 # documentation and/or other materials provided with the distribution.
15 # - The name of the author may not be used to endorse or promote products
16 # derived from this software without specific prior written permission.
18 # THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
19 # IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
20 # OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
21 # IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
22 # INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
23 # NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
24 # DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
25 # THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
26 # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
27 # THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
30 """
31 Add a source/object file pair to a checker jobfile
32 """
34 import sys
35 import os
36 import fcntl
38 def usage(prname):
39 "Print usage syntax"
40 print(prname + " <JOBFILE> <SOURCE> <TARGET> <TOOL> <CATEGORY> [OPTIONS ...]")
42 def main():
43 if (len(sys.argv) < 6):
44 usage(sys.argv[0])
45 return
47 jobfname = sys.argv[1]
48 srcfname = sys.argv[2]
49 tgtfname = sys.argv[3]
50 toolname = sys.argv[4]
51 category = sys.argv[5]
52 cwd = os.getcwd()
53 options = " ".join(sys.argv[6:])
55 jobfile = open(jobfname, "a")
56 fcntl.lockf(jobfile, fcntl.LOCK_EX)
57 jobfile.write("{%s},{%s},{%s},{%s},{%s},{%s}\n" % (srcfname, tgtfname, toolname, category, cwd, options))
58 fcntl.lockf(jobfile, fcntl.LOCK_UN)
59 jobfile.close()
61 if __name__ == '__main__':
62 main()