diff options
author | Daniel Silverstone <dsilvers@digital-scurf.org> | 2012-03-29 16:56:44 +0100 |
---|---|---|
committer | Daniel Silverstone <dsilvers@digital-scurf.org> | 2012-03-29 16:56:44 +0100 |
commit | bf1bcfe43716f0ca5adbb48d3fc972ff07fb636a (patch) | |
tree | f0d6a0f755617004b1e9963b5688b1dfa1ed11d0 /lib/gitano/config.lua | |
parent | f9aa94c3cb584ddd3e6792ca33b35c4cca42d862 (diff) | |
download | gitano-bf1bcfe43716f0ca5adbb48d3fc972ff07fb636a.tar.gz |
CONFIG: Allow for pre.rules so we can run rules before the repository rules
Diffstat (limited to 'lib/gitano/config.lua')
-rw-r--r-- | lib/gitano/config.lua | 26 |
1 files changed, 21 insertions, 5 deletions
diff --git a/lib/gitano/config.lua b/lib/gitano/config.lua index faf1c81..4f81f8f 100644 --- a/lib/gitano/config.lua +++ b/lib/gitano/config.lua @@ -38,6 +38,10 @@ local function parse_admin_config(commit) return nil, "No core rules file" end + if flat_tree["pre.rules"] and not is_blob(flat_tree["pre.rules"]) then + return nil, "pre.rules is not a file" + end + local conf_fn, conf_globals = sb.wrap(flat_tree["site.conf"].obj.content, "gitano-admin:" .. commit.sha .. ":site.conf", @@ -62,14 +66,25 @@ local function parse_admin_config(commit) end -- Attempt to parse the core ruleset. - local ruleset, msg = rules.parse(flat_tree["core.rules"].obj.content, - "gitano-admin:" .. commit.sha .. ":core.rules", - true) + local coreruleset, msg = rules.parse(flat_tree["core.rules"].obj.content, + "gitano-admin:" .. commit.sha .. ":core.rules", + true) - if not ruleset then + if not coreruleset then return nil, msg end + -- Attempt to parse the core ruleset. + local preruleset + if flat_tree["pre.rules"] then + preruleset, msg = rules.parse(flat_tree["pre.rules"].obj.content, + "gitano-admin:" .. commit.sha .. ":pre.rules", + true) + if not preruleset then + return nil, msg + end + end + -- Gather the users local users = {} for filename, obj in pairs(flat_tree) do @@ -214,7 +229,8 @@ local function parse_admin_config(commit) global = conf_globals, users = users, groups = groups, - rules = ruleset, + rules = coreruleset, + prerules = preruleset, } end |