diff options
Diffstat (limited to 'lib/gitano/util.lua')
-rw-r--r-- | lib/gitano/util.lua | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/lib/gitano/util.lua b/lib/gitano/util.lua index 291c68d..ab8730a 100644 --- a/lib/gitano/util.lua +++ b/lib/gitano/util.lua @@ -15,6 +15,28 @@ local tconcat = table.concat local check_password = scrypt.verify_password +local function run_command(cmd, cmdline, parsed_cmdline, user, + config, env, repo) + log.debug("Welcome to " .. config.global.site_name) + log.debug("Running:") + for i = 1, #parsed_cmdline do + log.debug(" => " .. parsed_cmdline[i]) + end + log.debug("") + log.debug("On behalf of " .. user .. " using key " .. env["GITANO_KEYTAG"]) + + local how, why = cmd.run(config, repo, parsed_cmdline, env) + + if how ~= "exit" or why ~= 0 then + log.critical("Error running " .. parsed_cmdline[1] .. ": " .. how) + log.critical("Unable to continue") + return why + else + log.syslog.info(cmdline, "completed successfully") + return 0 + end +end + local function hash_password(password) -- For the moment we are using scrypt, -- we may decide to use other hash functions in the future @@ -502,4 +524,6 @@ return { hash_password = hash_password, check_password = check_password, + + run_command = run_command, } |