From 9b8833619780eb1c8c2fffc0f95cf93c6adb1d83 Mon Sep 17 00:00:00 2001 From: Daniel Silverstone Date: Wed, 5 Sep 2012 14:57:11 +0100 Subject: GITANO: Rationalise splittable stuff and split groups on dashes and repos on slashes --- lib/gitano/util.lua | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) (limited to 'lib/gitano/util.lua') diff --git a/lib/gitano/util.lua b/lib/gitano/util.lua index b0ca710..1d497c0 100644 --- a/lib/gitano/util.lua +++ b/lib/gitano/util.lua @@ -258,6 +258,32 @@ local function set(t) return ret end +local function add_splitable(context, key, value, splitter, + prefix_name, suffix_name) + if not value or value == "" then + return + end + local function _(k, v) + context[k] = v + end + _(key, value) + local prefix, suffix = value:match("^(.*%" .. splitter .. ")" .. + "([^%" .. splitter .. "]+)$") + + if prefix then + _(key .. "/" .. prefix_name, prefix:sub(1, -2)) + _(key .. "/" .. suffix_name, suffix) + else + _(key .. "/" .. suffix_name, value) + end + + local i = 1 + for section in value:gmatch("([^%" .. splitter .. "]+)") do + _(key .. "/" .. tostring(i), section) + i = i + 1 + end +end + return { parse_cmdline = _parse_cmdline, @@ -274,6 +300,8 @@ return { deep_copy = _deep_copy, prep_expansion = prep_expansion, + + add_splitable = add_splitable, process_expansion = process_expansion, set = set, -- cgit v1.2.1