From ab1c0b22b57fc96782d9dd3498b36be04ac6f328 Mon Sep 17 00:00:00 2001 From: Daniel Silverstone Date: Mon, 10 Mar 2014 12:41:44 +0000 Subject: Add support for a GITANO_PLUGIN_PATH in install-lua-bin The binary installer `install-lua-bin` needs to update all of the files ending in `.in` to be ready for installation. This patch ensures that we support a tag for loading plugins which the various `.in` files can then use to ensure they load plugins at an appropriate point. Signed-off-by: Daniel Silverstone --- Makefile | 8 ++++++-- utils/install-lua-bin | 14 +++++++++++++- 2 files changed, 19 insertions(+), 3 deletions(-) diff --git a/Makefile b/Makefile index 775f5cc..359b817 100644 --- a/Makefile +++ b/Makefile @@ -6,6 +6,7 @@ LUA_VER := 5.1 LUA := /usr/bin/lua$(LUA_VER) PREFIX ?= /usr/local INST_ROOT := $(PREFIX) +SYSCONF_DIR ?= /etc # Internal stuff LUA_MOD_PATH := $(INST_ROOT)/share/lua/$(LUA_VER) @@ -19,6 +20,7 @@ SHARE_INST_PATH := $(DESTDIR)$(SHARE_PATH) SKEL_INST_PATH := $(SHARE_INST_PATH)/skel MAN_PATH := $(INST_ROOT)/share/man MAN_INST_PATH := $(DESTDIR)$(MAN_PATH) +PLUGIN_PATH := $(SYSCONF_DIR)/gitano/plugins:$(INST_ROOT)/lib/gitano/plugins LIB_BINS := gitano-auth gitano-post-receive-hook gitano-update-hook \ gitano-update-ssh gitano-pre-receive-hook gitano-smart-http.cgi \ @@ -59,6 +61,8 @@ SKEL_FILES := gitano-admin/rules/selfchecks.lace \ MAN1S := gitano-setup.1 +PLUGINS := + MOD_DIRS := gitano MOD_FILES := $(patsubst %,%.lua,$(subst .,/,$(MODS))) SRC_MOD_FILES := $(patsubst %,lib/%,$(MOD_FILES)) @@ -77,14 +81,14 @@ GEN_BIN := utils/install-lua-bin RUN_GEN_BIN := $(LUA) $(GEN_BIN) $(LUA) define GEN_LOCAL_BIN -$(RUN_GEN_BIN) $(shell pwd) $(shell pwd)/bin $(shell pwd)/lib $1 $2 +$(RUN_GEN_BIN) $(shell pwd) $(shell pwd)/bin $(shell pwd)/lib $(shell pwd)/plugins $1 $2 chmod 755 $2 endef define GEN_INSTALL_BIN -$(RUN_GEN_BIN) $(SHARE_PATH) $(LIB_BIN_PATH) $(LUA_MOD_PATH) $1 $2 +$(RUN_GEN_BIN) $(SHARE_PATH) $(LIB_BIN_PATH) $(LUA_MOD_PATH) $(PLUGIN_PATH) $1 $2 chmod 755 $2 endef diff --git a/utils/install-lua-bin b/utils/install-lua-bin index 4d7322c..3353a34 100644 --- a/utils/install-lua-bin +++ b/utils/install-lua-bin @@ -1,6 +1,6 @@ -- Run this explicitly through -*- Lua -*- -local lua_bin, inst_share_path, inst_bin_path, inst_mod_path, input_name, output_name = ... +local lua_bin, inst_share_path, inst_bin_path, inst_mod_path, inst_plugin_path, input_name, output_name = ... local input_fh = assert(io.open(input_name, "r")) local output_fh = assert(io.open(output_name, "w")) @@ -20,6 +20,16 @@ for path_elem in package.path:gmatch("([^;]+)") do end end +do + -- transform the plugin path from colon separated to a table + -- for interpolation + local path = {} + for entry in string.gfind(inst_plugin_path, "([^:]+)") do + path[#path+1] = ("%q"):format(entry) + end + inst_plugin_path = ("{%s}"):format(table.concat(path, ", ")) +end + while line do local token = line:match("^%-%- @@(.+)$") if token then @@ -38,6 +48,8 @@ while line do output_fh:write(("gitano.config.lib_bin_path(%q)\n"):format(inst_bin_path)) elseif token == "GITANO_SHARE_PATH" then output_fh:write(("gitano.config.share_path(%q)\n"):format(inst_share_path)) + elseif token == "GITANO_PLUGIN_PATH" then + output_fh:write(("gitano.plugins.load_plugins %s\n"):format(inst_plugin_path)) else output_fh:write("-- Unknown token: " .. token .. "\n") end -- cgit v1.2.1