summaryrefslogtreecommitdiffstats
path: root/scripts/combo-layer
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/combo-layer')
-rwxr-xr-xscripts/combo-layer33
1 files changed, 30 insertions, 3 deletions
diff --git a/scripts/combo-layer b/scripts/combo-layer
index 4029d2bff8..2d100bebdf 100755
--- a/scripts/combo-layer
+++ b/scripts/combo-layer
@@ -29,6 +29,7 @@ import tempfile
29import ConfigParser 29import ConfigParser
30import re 30import re
31from collections import OrderedDict 31from collections import OrderedDict
32from string import Template
32 33
33__version__ = "0.2.1" 34__version__ = "0.2.1"
34 35
@@ -77,15 +78,27 @@ class Configuration(object):
77 value = getattr(parser, 'get' + types[name])(section, name) 78 value = getattr(parser, 'get' + types[name])(section, name)
78 self.repos[repo][name] = value 79 self.repos[repo][name] = value
79 80
81 def readglobalsection(parser, section):
82 for (name, value) in parser.items(section):
83 if name == "commit_msg":
84 self.commit_msg_template = value
85
80 logger.debug("Loading config file %s" % self.conffile) 86 logger.debug("Loading config file %s" % self.conffile)
81 self.parser = ConfigParser.ConfigParser() 87 self.parser = ConfigParser.ConfigParser()
82 with open(self.conffile) as f: 88 with open(self.conffile) as f:
83 self.parser.readfp(f) 89 self.parser.readfp(f)
84 90
91 # initialize default values
92 self.commit_msg_template = "Automatic commit to update last_revision"
93
85 self.repos = {} 94 self.repos = {}
86 for repo in self.parser.sections(): 95 for repo in self.parser.sections():
87 self.repos[repo] = {} 96 if repo == "combo-layer-settings":
88 readsection(self.parser, repo, repo) 97 # special handling for global settings
98 readglobalsection(self.parser, repo)
99 else:
100 self.repos[repo] = {}
101 readsection(self.parser, repo, repo)
89 102
90 # Load local configuration, if available 103 # Load local configuration, if available
91 self.localconffile = None 104 self.localconffile = None
@@ -715,7 +728,21 @@ def action_update(conf, args):
715 if output: 728 if output:
716 logger.info("Committing updated configuration file") 729 logger.info("Committing updated configuration file")
717 if output.lstrip().startswith("M"): 730 if output.lstrip().startswith("M"):
718 runcmd('git commit -m "Automatic commit to update last_revision" %s' % relpath) 731
732 # create the "components" string
733 component_str = "all components"
734 if len(components) > 0:
735 # otherwise tell which components were actually changed
736 component_str = ", ".join(components)
737
738 # expand the template with known values
739 template = Template(conf.commit_msg_template)
740 raw_msg = template.substitute(components = component_str)
741
742 # sanitize the string before using it in command line
743 msg = raw_msg.replace('"', '\\"')
744
745 runcmd('git commit -m "%s" %s' % (msg, relpath))
719 746
720def apply_patchlist(conf, repos): 747def apply_patchlist(conf, repos):
721 """ 748 """