diff options
Diffstat (limited to 'lib/gitano/patterns.lua')
-rw-r--r-- | lib/gitano/patterns.lua | 95 |
1 files changed, 27 insertions, 68 deletions
diff --git a/lib/gitano/patterns.lua b/lib/gitano/patterns.lua index ede4541..e8527a0 100644 --- a/lib/gitano/patterns.lua +++ b/lib/gitano/patterns.lua @@ -1,6 +1,6 @@ -- gitano.patterns -- --- Internal centralised pattern definitions. Not stable ABI. +-- Centralised pattern definitions. Not stable ABI. -- -- Copyright 2017 Richard Maw <richard.maw@gmail.com> -- All rights reserved. @@ -31,85 +31,44 @@ -- local _NICE_NAME = "[a-z][a-z0-9_.-]+" -local _STARTS_DOT = "^%." -local _ENDS_DOTSTAR = "%.%*$" -local _HEX40 = string.rep("[0-9A-Fa-f]", 40) -local TEXT_LINE = "([^\n]*)\n" - -local DOTFILE = _STARTS_DOT - -local VALID_USERNAME = "^" .. _NICE_NAME .. "$" -local VALID_SSHKEYNAME = "^" .. _NICE_NAME .. "$" local USER_INFO_PREFIX = "^(users/.-)(".. _NICE_NAME .. ")/" -local USER_CONF_MATCH = USER_INFO_PREFIX .. "user%.conf$" -local USER_KEY_MATCH = USER_INFO_PREFIX .. "(" .. _NICE_NAME .. ")%.key$" - -local SSH_KEY_CONTENTS = "^([^ ]+) ([^ ]+) ([^ ].*)$" - -local VALID_GROUPNAME = "^" .. _NICE_NAME .. "$" local GROUP_INFO_PREFIX = "^(groups/.-)(".. _NICE_NAME .. ")" -local GROUP_CONF_MATCH = GROUP_INFO_PREFIX .. "%.conf$" - -local VALID_KEY_FINGERPRINT = "^" .. _HEX40 .. "$" -local VALID_KEYRING_NAME = "^" .. _NICE_NAME .. "$" local KEYRING_INFO_PREFIX = "^(keyrings/.-)(".. _NICE_NAME .. ")" -local KEYRING_MATCH = KEYRING_INFO_PREFIX .. "%.gpg$" - -local GPG_OUTPUT_FINGERPRINT_MATCH = "fpr:::::::::([0-9A-F]+):" - -local HTTP_RESPONSE = "^HTTP/1.[01] (...) ?([^\r\n]+)\r?\n(.-)\r?\n\r?\n(.*)$" -local HTTP_HEADER = "([^:\r\n]+): *([^\r\n]+)" -local CONF_ENDS_WILDCARD = _ENDS_DOTSTAR -local CONF_WILDCARD = "^(.+)" .. CONF_ENDS_WILDCARD -local CONF_ARRAY_INDEX = "^(.+)%.i_[0-9]+$" -local CONF_SET_TYPE_PREFIX = "^([sbi]):(.*)$" +local CONF_ENDS_WILDCARD = "%.%*$" local GIT_REPO_SUFFIX = "%.git$" -local GIT_REPO_NAME_MATCH = "^(.+)" .. GIT_REPO_SUFFIX - -local LACE_GLOBAL_DEFINITION = "^global:(.+)$" - -local PLUGIN_NAME = "^([^_]+)%.lua$" - -local REF_IS_NORMALISED = "^refs/" - -local PARSE_TIME_AND_TZOFFSET = "^([0-9]+) ([+-][0-9]+)$" - -local SUPPLE_MODULE_LOAD_MATCH = "^([^%.]+)%.(.+)$" - -local GITHOOK_PARSE_CHANGESET = "([^ ]+) ([^ ]+) ([^\n]+)\n?" return { - TEXT_LINE = TEXT_LINE, - DOTFILE = DOTFILE, - VALID_USERNAME = VALID_USERNAME, - VALID_SSHKEYNAME = VALID_SSHKEYNAME, + TEXT_LINE = "([^\n]*)\n", + DOTFILE = "^%.", + VALID_USERNAME = "^" .. _NICE_NAME .. "$", + VALID_SSHKEYNAME = "^" .. _NICE_NAME .. "$", USER_INFO_PREFIX = USER_INFO_PREFIX, - USER_CONF_MATCH = USER_CONF_MATCH, - USER_KEY_MATCH = USER_KEY_MATCH, - SSH_KEY_CONTENTS = SSH_KEY_CONTENTS, - VALID_GROUPNAME = VALID_GROUPNAME, + USER_CONF_MATCH = USER_INFO_PREFIX .. "user%.conf$", + USER_KEY_MATCH = USER_INFO_PREFIX .. "(" .. _NICE_NAME .. ")%.key$", + SSH_KEY_CONTENTS = "^([^ ]+) ([^ ]+) ([^ ].*)$", + VALID_GROUPNAME = "^" .. _NICE_NAME .. "$", GROUP_INFO_PREFIX = GROUP_INFO_PREFIX, - GROUP_CONF_MATCH = GROUP_CONF_MATCH, - VALID_KEY_FINGERPRINT = VALID_KEY_FINGERPRINT, - VALID_KEYRING_NAME = VALID_KEYRING_NAME, + GROUP_CONF_MATCH = GROUP_INFO_PREFIX .. "%.conf$", + VALID_KEY_FINGERPRINT = "^" .. string.rep("[0-9A-Fa-f]", 40) .. "$", + VALID_KEYRING_NAME = "^" .. _NICE_NAME .. "$", KEYRING_INFO_PREFIX = KEYRING_INFO_PREFIX, - KEYRING_MATCH = KEYRING_MATCH, - GPG_OUTPUT_FINGERPRINT_MATCH = GPG_OUTPUT_FINGERPRINT_MATCH, - HTTP_RESPONSE = HTTP_RESPONSE, - HTTP_HEADER = HTTP_HEADER, + KEYRING_MATCH = KEYRING_INFO_PREFIX .. "%.gpg$", + GPG_OUTPUT_FINGERPRINT_MATCH = "fpr:::::::::([0-9A-F]+):", + HTTP_RESPONSE = "^HTTP/1.[01] (...) ?([^\r\n]+)\r?\n(.-)\r?\n\r?\n(.*)$", + HTTP_HEADER = "([^:\r\n]+): *([^\r\n]+)", CONF_ENDS_WILDCARD = CONF_ENDS_WILDCARD, - CONF_WILDCARD = CONF_WILDCARD, - CONF_ARRAY_INDEX = CONF_ARRAY_INDEX, - CONF_SET_TYPE_PREFIX = CONF_SET_TYPE_PREFIX, + CONF_WILDCARD = "^(.+)" .. CONF_ENDS_WILDCARD, + CONF_ARRAY_INDEX = "^(.+)%.i_[0-9]+$", + CONF_SET_TYPE_PREFIX = "^([sbi]):(.*)$", GIT_REPO_SUFFIX = GIT_REPO_SUFFIX, - GIT_REPO_NAME_MATCH = GIT_REPO_NAME_MATCH, - LACE_GLOBAL_DEFINITION = LACE_GLOBAL_DEFINITION, - PLUGIN_NAME = PLUGIN_NAME, - REF_IS_NORMALISED = REF_IS_NORMALISED, - PARSE_TIME_AND_TZOFFSET = PARSE_TIME_AND_TZOFFSET, - SUPPLE_MODULE_LOAD_MATCH = SUPPLE_MODULE_LOAD_MATCH, - GITHOOK_PARSE_CHANGESET = GITHOOK_PARSE_CHANGESET, + GIT_REPO_NAME_MATCH = "^(.+)" .. GIT_REPO_SUFFIX, + LACE_GLOBAL_DEFINITION = "^global:(.+)$", + PLUGIN_NAME = "^([^_]+)%.lua$", + REF_IS_NORMALISED = "^refs/", + PARSE_TIME_AND_TZOFFSET = "^([0-9]+) ([+-][0-9]+)$", + SUPPLE_MODULE_LOAD_MATCH = "^([^%.]+)%.(.+)$", + GITHOOK_PARSE_CHANGESET = "([^ ]+) ([^ ]+) ([^\n]+)\n?", } |