liquid_feedback_frontend

annotate env/lf4rcs/commit.lua @ 1220:af42478acf74

Avoid executing commands after error in lf4rcs.commit(...)
author jbe
date Tue Dec 01 02:10:04 2015 +0100 (2015-12-01)
parents 30523f31b186
children 32cc544d5a5b
rev   line source
bsw@1219 1 function lf4rcs.commit(issue)
bsw@1219 2 local repository, path, url = lf4rcs.get_config(issue.area.unit)
bsw@1219 3 if not (config.lf4rcs[repository] and config.lf4rcs[repository].commit) then
bsw@1219 4 error("Unsupported repository type")
bsw@1219 5 end
bsw@1219 6 local initiatives = Initiative:new_selector()
bsw@1219 7 :add_where{ "issue_id = ?", issue.id }
bsw@1219 8 :exec()
bsw@1219 9 for i, initiative in ipairs(initiatives) do
jbe@1220 10 local failure = false
bsw@1219 11 local function exec(...)
bsw@1219 12 local command, output, err_message, exit_code = lf4rcs.exec(...)
jbe@1220 13 local log
jbe@1220 14 if failure then
jbe@1220 15 log = "Skipped: " .. command .. "\n"
jbe@1220 16 else
jbe@1220 17 log = "Executed: " .. command .. "\n"
jbe@1220 18 if output then
jbe@1220 19 log = log .. output .. "\n"
jbe@1220 20 end
jbe@1220 21 if err_message and #err_message > 0 then
jbe@1220 22 log = log .. "ERROR: " .. err_message .. "\n"
jbe@1220 23 failure = true
jbe@1220 24 end
jbe@1220 25 if exit_code and exit_code ~= 0 then
jbe@1220 26 log = log .. "Exit code: " .. tostring(exit_code) .. "\n"
jbe@1220 27 failure = true
jbe@1220 28 end
bsw@1219 29 end
bsw@1219 30 issue.admin_notice = (issue.admin_notice or "") .. log
bsw@1219 31 issue:save()
bsw@1219 32 end
bsw@1219 33 local close_message, merge_message
bsw@1219 34 if initiative.winner then
bsw@1219 35 close_message = "Initiative i" .. initiative.id
bsw@1219 36 .. " accepted as winner. Closing branch."
bsw@1219 37 merge_message = "Initiative i" .. initiative.id
bsw@1219 38 .. " accepted as winner. Applying branch changesets to upstream."
bsw@1219 39 else
bsw@1219 40 close_message = "Initiative i" .. initiative.id .. " rejected. Closing branch."
bsw@1219 41 end
bsw@1219 42 local target_node_id = initiative.current_draft.external_reference
bsw@1219 43 if target_node_id then
bsw@1219 44 local branch = "i" .. initiative.id
bsw@1219 45 lf4rcs[repository].commit(path, exec, branch, target_node_id, close_message, merge_message)
bsw@1219 46 end
bsw@1219 47 end
bsw@1219 48 end

Impressum / About Us