Merge "BUG-2471: create odlparent template"
[releng/builder.git] / scripts / jjb-autoupdate-project.py
1 #!/usr/bin/python
2
3 import os
4
5 import yaml
6
7
8 def get_autoupdate_projects(jjb_dir, projects):
9     """Get list of projects that should be auto-updated."""
10     project_list = []
11     for project in projects:
12         template = os.path.join(jjb_dir, project, "%s.yaml" % project)
13         if os.path.isfile(template):
14             with open(template, 'r') as f:
15                 first_line = f.readline()
16             if first_line.startswith("# REMOVE THIS LINE IF"):
17                 project_list.append(project)
18
19     return project_list
20
21
22 def update_templates(projects):
23     for project in projects:
24
25         # If project has customized variables
26         cfg_file = "jjb/%s/%s.cfg" % (project, project)
27         parameters = ["python scripts/jjb-init-project.py"]
28         if os.path.isfile(cfg_file):
29             stream = open(cfg_file, "r")
30             cfg = yaml.load(stream)
31             for k, v in cfg.items():
32                 if k == "MVN_GOALS" and v is not None:
33                     parameters.append("-g '%s'" % v)
34                 elif k == "MVN_OPTS" and v is not None:
35                     parameters.append("-o '%s'" % v)
36
37             parameters.append(project)
38             cmd = " ".join(parameters)
39             os.system(cmd)
40
41         else:
42             os.system("python scripts/jjb-init-project.py %s" % project)
43
44 ##############
45 # Code Start #
46 ##############
47
48 jjb_dir = "jjb"
49 all_projects = [d for d in os.listdir(jjb_dir)
50                 if os.path.isdir(os.path.join(jjb_dir, d))]
51 auto_update_projects = get_autoupdate_projects(jjb_dir, all_projects)
52 update_templates(auto_update_projects)