summaryrefslogtreecommitdiff
path: root/bin
diff options
context:
space:
mode:
authorRichard Maw <richard.maw@gmail.com>2017-06-17 17:50:15 +0100
committerRichard Maw <richard.maw@gmail.com>2017-06-17 17:50:15 +0100
commit317740cc2b35d0cf9c716a64d2984a5f14c624c0 (patch)
treefb42c924a7b582e9cc178a238ebbb1ec23a36cd6 /bin
parent7c992daade9445584d2f233c722500d426546361 (diff)
downloadgitano-317740cc2b35d0cf9c716a64d2984a5f14c624c0.tar.gz
Centralise patterns into a single module
This has moved every pattern that wasn't obviously just for string manipulation and has in the process of doing so reworked some logic so that fewer distinct patterns are used, and the repository path normalisation has been unified.
Diffstat (limited to 'bin')
-rw-r--r--bin/gitano-post-receive-hook.in3
-rw-r--r--bin/gitano-pre-receive-hook.in3
-rw-r--r--bin/gitano-setup.in9
3 files changed, 9 insertions, 6 deletions
diff --git a/bin/gitano-post-receive-hook.in b/bin/gitano-post-receive-hook.in
index 42c416c..0751535 100644
--- a/bin/gitano-post-receive-hook.in
+++ b/bin/gitano-post-receive-hook.in
@@ -36,6 +36,7 @@
-- @@GITANO_LUA_PATH
local gitano = require "gitano"
+local pat = require "gitano.patterns"
local gall = require "gall"
local luxio = require "luxio"
local sio = require "luxio.simple"
@@ -113,7 +114,7 @@ end
-- emails, ensuring that new rules are applied, etc)
local updates = {}
-for oldsha, newsha, refname in (sio.stdin:read("*a")):gmatch("([^ ]+) ([^ ]+) ([^\n]+)\n?") do
+for oldsha, newsha, refname in (sio.stdin:read("*a")):gmatch(pat.GITHOOK_PARSE_CHANGESET) do
gitano.log.ddebug("post-receive:", oldsha, newsha, refname)
updates[refname] = {oldsha, newsha, oldsha=oldsha, newsha=newsha}
end
diff --git a/bin/gitano-pre-receive-hook.in b/bin/gitano-pre-receive-hook.in
index c244c47..19483d1 100644
--- a/bin/gitano-pre-receive-hook.in
+++ b/bin/gitano-pre-receive-hook.in
@@ -36,6 +36,7 @@
-- @@GITANO_LUA_PATH
local gitano = require "gitano"
+local pat = require "gitano.patterns"
local gall = require "gall"
local luxio = require "luxio"
local sio = require "luxio.simple"
@@ -116,7 +117,7 @@ end
-- you.
local updates = {}
-for oldsha, newsha, refname in (sio.stdin:read("*a")):gmatch("([^ ]+) ([^ ]+) ([^\n]+)") do
+for oldsha, newsha, refname in (sio.stdin:read("*a")):gmatch(pat.GITHOOK_PARSE_CHANGESET) do
gitano.log.ddebug("pre-receive:", oldsha, newsha, refname)
updates[refname] = {oldsha, newsha, oldsha=oldsha, newsha=newsha}
end
diff --git a/bin/gitano-setup.in b/bin/gitano-setup.in
index 86b2e08..174b6b8 100644
--- a/bin/gitano-setup.in
+++ b/bin/gitano-setup.in
@@ -36,6 +36,7 @@
-- @@GITANO_LUA_PATH
local gitano = require "gitano"
+local pat = require "gitano.patterns"
local gall = require "gall"
local luxio = require "luxio"
local sio = require "luxio.simple"
@@ -170,8 +171,8 @@ function file_exists(path)
return true
end
-function validate_name(n)
- if not n:match("^[a-z_][a-z0-9_%-]*$") then
+function validate_name(n, pattern)
+ if not n:match(pattern) then
error(gitano.i18n.expand("SETUP_ERROR_INVALID_NAME", { name=n }), 2)
end
end
@@ -214,7 +215,7 @@ ask_for("paths.repos", gitano.i18n.expand("SETUP_PATHS_REPOS_INFO"),
get("paths.home") .. "/repos")
validate_name(ask_for("admin.username", gitano.i18n.expand("SETUP_ADMIN_USERNAME_INFO"),
- "admin"))
+ "admin"), pat.VALID_USERNAME)
ask_for("admin.realname", gitano.i18n.expand("SETUP_ADMIN_REALNAME_INFO"),
"Administrator")
@@ -222,7 +223,7 @@ ask_for("admin.email", gitano.i18n.expand("SETUP_ADMIN_EMAIL_INFO"),
"admin@administrator.local")
validate_name(ask_for("admin.keyname", gitano.i18n.expand("SETUP_ADMIN_KEYNAME_INFO"),
- "default"))
+ "default"), pat.VALID_SSHKEYNAME)
ask_for("site.name", gitano.i18n.expand("SETUP_SITE_NAME_INFO"), "a random Gitano instance")
ask_for("log.prefix", gitano.i18n.expand("SETUP_LOG_PREFIX_INFO"), "gitano")