File tree Expand file tree Collapse file tree 5 files changed +24
-1
lines changed
Expand file tree Collapse file tree 5 files changed +24
-1
lines changed Original file line number Diff line number Diff line change @@ -42,3 +42,4 @@ disallowed_argument: "%{name} must be one of: %{allowed}"
4242disallowed_environment_variable : " %{name} environment variable must be one of: %{allowed}"
4343unsupported_bash_version : " bash version 4 or higher is required"
4444validation_error : " validation error in %s:\\ n%s"
45+ environment_variable_validation_error : " validation error in environment variable %s:\\ n%s"
Original file line number Diff line number Diff line change @@ -3,7 +3,9 @@ module Script
33 class EnvironmentVariable < Base
44 class << self
55 def option_keys
6- @option_keys ||= %i[ allowed default help name required private ]
6+ @option_keys ||= %i[
7+ allowed default help name required private validate
8+ ]
79 end
810 end
911
Original file line number Diff line number Diff line change @@ -30,6 +30,11 @@ def required_environment_variables
3030 def whitelisted_environment_variables
3131 environment_variables . select ( &:allowed )
3232 end
33+
34+ # Returns an array of all the environment_variables with a validation
35+ def validated_environment_variables
36+ environment_variables . select ( &:validate )
37+ end
3338 end
3439 end
3540 end
Original file line number Diff line number Diff line change @@ -24,3 +24,9 @@ if whitelisted_environment_variables.any?
2424 > fi
2525 end
2626end
27+
28+ if validated_environment_variables.any?
29+ validated_environment_variables.each do |env_var|
30+ = env_var.render(:validations)
31+ end
32+ end
Original file line number Diff line number Diff line change 1+ if validate
2+ = view_marker
3+
4+ > if [[ -v {{ name.upcase }} && -n $(validate_{{ validate }} "${{ name.upcase }}") ]]; then
5+ > printf "{{ strings[:environment_variable_validation_error] }}\n" "{{ usage_string }}" "$(validate_{{ validate }} "${{ name.upcase }}")" >&2
6+ > exit 1
7+ > fi
8+ >
9+ end
You can’t perform that action at this time.
0 commit comments