diff options
author | Richard Maw <richard.maw@gmail.com> | 2017-07-08 14:33:41 +0100 |
---|---|---|
committer | Richard Maw <richard.maw@gmail.com> | 2017-07-08 14:42:25 +0100 |
commit | fca3bcf7ec9f368edea838a8a3c57d1e60755d55 (patch) | |
tree | cdddc2f6e3da9c270d3e4411e4f91a93779989ab | |
parent | a04ec5eb5319b7b895ff286fb082acfaaefe0534 (diff) | |
download | gitano-richardmaw/unified-patterns.tar.gz |
Reduce verbosity of pattern definitionsrichardmaw/unified-patterns
Having both local definitions for each exported pattern
and the export in the package was not helpful,
and in fact caused accidents while developing
where the package was filled with undefined variables.
-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?", } |