configuration tree as template for a new project and copy / symlink that on project creation. To make this process a little more configurable, two new configuration options, 'mtn_confdir' and 'mtn_confdir_extra', have been added which allow the forge admin to adapt the directory structure and its default hooks to his likings for all new projects. (More on that in doc/syncmonotone.mdtext). The 'mtn_remote_auth' configuration option was removed, because setting this to false would have not worked for setups which did not allow write access to remote automate commands for anonymous users and opening this would have meant a huge security hole. Instead, for every project which is created a corresponding client key is created as well which is used as authentication in the IDF source frontend. Finally the monolithic monotonerc file has been split up into individual, easily configurable lua files which are linked / copied underknees hooks.d/ and which do not conflict with each other (for example by overwriting certain main notification hooks).
59 lines
1.7 KiB
Lua
59 lines
1.7 KiB
Lua
-- ***** BEGIN LICENSE BLOCK *****
|
|
-- This file is part of InDefero, an open source project management application.
|
|
-- Copyright (C) 2011 Céondo Ltd and contributors.
|
|
--
|
|
-- InDefero is free software; you can redistribute it and/or modify
|
|
-- it under the terms of the GNU General Public License as published by
|
|
-- the Free Software Foundation; either version 2 of the License, or
|
|
-- (at your option) any later version.
|
|
--
|
|
-- InDefero is distributed in the hope that it will be useful,
|
|
-- but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
-- GNU General Public License for more details.
|
|
--
|
|
-- You should have received a copy of the GNU General Public License
|
|
-- along with this program; if not, write to the Free Software
|
|
-- Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
|
--
|
|
-- ***** END LICENSE BLOCK *****
|
|
|
|
--
|
|
-- let IDF know of new arriving revisions to fill its timeline
|
|
--
|
|
_idf_revs = {}
|
|
push_hook_functions(
|
|
{
|
|
start =
|
|
function (session_id)
|
|
_idf_revs[session_id] = {}
|
|
return "continue",nil
|
|
end,
|
|
revision_received =
|
|
function (new_id, revision, certs, session_id)
|
|
table.insert(_idf_revs[session_id], new_id)
|
|
return "continue",nil
|
|
end,
|
|
["end"] =
|
|
function (session_id, ...)
|
|
if table.getn(_idf_revs[session_id]) == 0 then
|
|
return "continue",nil
|
|
end
|
|
|
|
local pin,pout,pid = spawn_pipe(IDF_push_script, IDF_project);
|
|
if pid == -1 then
|
|
print("could not execute " .. IDF_push_script)
|
|
return "continue",nil
|
|
end
|
|
|
|
for _,r in ipairs(_idf_revs[session_id]) do
|
|
pin:write(r .. "\n")
|
|
end
|
|
pin:close()
|
|
|
|
wait(pid)
|
|
return "continue",nil
|
|
end
|
|
})
|
|
|