bashly 1.2.1 → 1.2.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (37) hide show
  1. checksums.yaml +4 -4
  2. data/lib/bashly/commands/shell.rb +1 -1
  3. data/lib/bashly/concerns/completions.rb +3 -3
  4. data/lib/bashly/docs/env.yml +10 -0
  5. data/lib/bashly/docs/flag.yml +23 -0
  6. data/lib/bashly/libraries/ini/ini.sh +1 -0
  7. data/lib/bashly/libraries/render/mandoc/mandoc.gtx +7 -4
  8. data/lib/bashly/libraries/render/markdown/markdown.gtx +7 -3
  9. data/lib/bashly/libraries/settings/settings.yml +5 -0
  10. data/lib/bashly/libraries/strings/strings.yml +4 -0
  11. data/lib/bashly/script/command.rb +9 -208
  12. data/lib/bashly/script/environment_variable.rb +5 -1
  13. data/lib/bashly/script/flag.rb +5 -2
  14. data/lib/bashly/script/introspection/arguments.rb +41 -0
  15. data/lib/bashly/script/introspection/commands.rb +111 -0
  16. data/lib/bashly/script/introspection/dependencies.rb +16 -0
  17. data/lib/bashly/script/introspection/environment_variables.rb +47 -0
  18. data/lib/bashly/script/introspection/examples.rb +14 -0
  19. data/lib/bashly/script/introspection/flags.rb +58 -0
  20. data/lib/bashly/script/introspection/visibility.rb +19 -0
  21. data/lib/bashly/settings.rb +5 -0
  22. data/lib/bashly/version.rb +1 -1
  23. data/lib/bashly/views/argument/usage.gtx +3 -3
  24. data/lib/bashly/views/command/environment_variables_filter.gtx +6 -0
  25. data/lib/bashly/views/command/fixed_flags_filter.gtx +2 -1
  26. data/lib/bashly/views/command/long_usage.gtx +8 -4
  27. data/lib/bashly/views/command/needy_flags_filter.gtx +9 -0
  28. data/lib/bashly/views/command/parse_requirements.gtx +1 -0
  29. data/lib/bashly/views/command/usage_commands.gtx +10 -3
  30. data/lib/bashly/views/command/usage_environment_variables.gtx +20 -4
  31. data/lib/bashly/views/command/usage_flags.gtx +10 -2
  32. data/lib/bashly/views/environment_variable/usage.gtx +2 -2
  33. data/lib/bashly/views/environment_variable/validations.gtx +9 -0
  34. data/lib/bashly/views/flag/needs.gtx +22 -0
  35. data/lib/bashly/views/flag/usage.gtx +11 -3
  36. data/lib/bashly.rb +27 -40
  37. metadata +67 -3
@@ -0,0 +1,16 @@
1
+ module Bashly
2
+ module Script
3
+ module Introspection
4
+ module Dependencies
5
+ # Returns an array of Dependency objects
6
+ def dependencies
7
+ return [] unless options['dependencies']
8
+
9
+ @dependencies ||= options['dependencies'].map do |key, value|
10
+ Dependency.from_config key, value
11
+ end
12
+ end
13
+ end
14
+ end
15
+ end
16
+ end
@@ -0,0 +1,47 @@
1
+ module Bashly
2
+ module Script
3
+ module Introspection
4
+ module EnvironmentVariables
5
+ # Returns an array of all the Environment Variables with default values
6
+ def default_environment_variables
7
+ environment_variables.select(&:default)
8
+ end
9
+
10
+ # Returns an array of EnvironmentVariable objects
11
+ def environment_variables
12
+ return [] unless options['environment_variables']
13
+
14
+ options['environment_variables'].map do |options|
15
+ EnvironmentVariable.new options
16
+ end
17
+ end
18
+
19
+ # Returns only environment variables that are not private
20
+ def public_environment_variables
21
+ environment_variables.reject(&:private)
22
+ end
23
+
24
+ # Returns an array of all the required EnvironmentVariables
25
+ def required_environment_variables
26
+ environment_variables.select(&:required)
27
+ end
28
+
29
+ # Returns an array of all the environment_variables with a validation
30
+ def validated_environment_variables
31
+ environment_variables.select(&:validate)
32
+ end
33
+
34
+ # Returns only public environment variables, or both public and private
35
+ # environment variables if Settings.private_reveal_key is set
36
+ def visible_environment_variables
37
+ Settings.private_reveal_key ? environment_variables : public_environment_variables
38
+ end
39
+
40
+ # Returns an array of all the environment_variables with a whitelist arg
41
+ def whitelisted_environment_variables
42
+ environment_variables.select(&:allowed)
43
+ end
44
+ end
45
+ end
46
+ end
47
+ end
@@ -0,0 +1,14 @@
1
+ module Bashly
2
+ module Script
3
+ module Introspection
4
+ module Examples
5
+ # Returns an array of examples
6
+ def examples
7
+ return nil unless options['examples']
8
+
9
+ options['examples'].is_a?(Array) ? options['examples'] : [options['examples']]
10
+ end
11
+ end
12
+ end
13
+ end
14
+ end
@@ -0,0 +1,58 @@
1
+ module Bashly
2
+ module Script
3
+ module Introspection
4
+ module Flags
5
+ # Returns an array of all the default Flags
6
+ def default_flags
7
+ flags.select(&:default)
8
+ end
9
+
10
+ # Returns an array of Flags
11
+ def flags
12
+ return [] unless options['flags']
13
+
14
+ options['flags'].map do |options|
15
+ Flag.new options
16
+ end
17
+ end
18
+
19
+ # Returns true if this command's flags should be considered as gloal
20
+ # flags, and cascade to subcommands
21
+ def global_flags?
22
+ flags.any? and commands.any?
23
+ end
24
+
25
+ # Returns an array of all fpags that need other flags
26
+ def needy_flags
27
+ flags.select(&:needs)
28
+ end
29
+
30
+ # Returns only flags that are not private
31
+ def public_flags
32
+ flags.reject(&:private)
33
+ end
34
+
35
+ # Returns an array of all the required Flags
36
+ def required_flags
37
+ flags.select(&:required)
38
+ end
39
+
40
+ # Returns true if one of the flags matches the provided short code
41
+ def short_flag_exist?(flag)
42
+ flags.any? { |f| f.short == flag }
43
+ end
44
+
45
+ # Returns only public flags, or both public and private flags if
46
+ # Settings.private_reveal_key is set
47
+ def visible_flags
48
+ Settings.private_reveal_key ? flags : public_flags
49
+ end
50
+
51
+ # Returns an array of all the flags with a whitelist arg
52
+ def whitelisted_flags
53
+ flags.select(&:allowed)
54
+ end
55
+ end
56
+ end
57
+ end
58
+ end
@@ -0,0 +1,19 @@
1
+ module Bashly
2
+ module Script
3
+ module Introspection
4
+ module Visibility
5
+ # Returns :public, :private, or :semi_private based on the `private`
6
+ # option of the host, in conjunction with `Settings.private_reveal_key`.
7
+ def visibility
8
+ if !options['private']
9
+ :public
10
+ elsif Settings.private_reveal_key
11
+ :semi_private
12
+ else
13
+ :private
14
+ end
15
+ end
16
+ end
17
+ end
18
+ end
19
+ end
@@ -10,6 +10,7 @@ module Bashly
10
10
  :config_path,
11
11
  :lib_dir,
12
12
  :partials_extension,
13
+ :private_reveal_key,
13
14
  :show_examples_on_error,
14
15
  :source_dir,
15
16
  :strict,
@@ -54,6 +55,10 @@ module Bashly
54
55
  @partials_extension ||= get :partials_extension
55
56
  end
56
57
 
58
+ def private_reveal_key
59
+ @private_reveal_key ||= get :private_reveal_key
60
+ end
61
+
57
62
  def production?
58
63
  env == :production
59
64
  end
@@ -1,3 +1,3 @@
1
1
  module Bashly
2
- VERSION = '1.2.1'
2
+ VERSION = '1.2.3'
3
3
  end
@@ -4,14 +4,14 @@
4
4
  > printf "{{ help.wrap(76).indent(4).sanitize_for_print }}\n"
5
5
 
6
6
  if allowed
7
- > printf " {{ strings[:allowed] % { values: allowed.join(', ') } }}\n"
7
+ > printf " %s\n" "{{ strings[:allowed] % { values: allowed.join(', ') } }}"
8
8
  end
9
9
 
10
10
  if default
11
11
  if default.is_a? Array
12
- > printf " {{ strings[:default] % { value: default.join(', ') } }}\n"
12
+ > printf " %s\n" "{{ strings[:default] % { value: default.join(', ') } }}"
13
13
  else
14
- > printf " {{ strings[:default] % { value: default } }}\n"
14
+ > printf " %s\n" "{{ strings[:default] % { value: default } }}"
15
15
  end
16
16
  end
17
17
 
@@ -24,3 +24,9 @@ if whitelisted_environment_variables.any?
24
24
  > fi
25
25
  end
26
26
  end
27
+
28
+ if validated_environment_variables.any?
29
+ validated_environment_variables.each do |env_var|
30
+ = env_var.render(:validations)
31
+ end
32
+ end
@@ -1,7 +1,8 @@
1
1
  = view_marker
2
2
 
3
3
  > while [[ $# -gt 0 ]]; do
4
- > case "${1:-}" in
4
+ > key="$1"
5
+ > case "$key" in
5
6
 
6
7
  if root_command?
7
8
  = (short_flag_exist?("-v") ? "--version)" : "--version | -v)").indent(4)
@@ -1,13 +1,17 @@
1
1
  = view_marker
2
2
 
3
- > if [[ -n $long_usage ]]; then
4
- options_caption = public_commands.any? && public_flags.any? ? strings[:global_options] : strings[:options]
3
+ > if [[ -n "$long_usage" ]]; then
4
+ options_caption = strings[:options]
5
+ if commands.any? && (public_flags.any? || (flags.any? && Settings.private_reveal_key))
6
+ options_caption = strings[:global_options]
7
+ end
8
+
5
9
  > printf "%s\n" "{{ options_caption.color(:caption) }}"
6
10
  >
7
- = render(:usage_flags).indent 2 if public_flags.any?
11
+ = render(:usage_flags).indent 2 if flags.any?
8
12
  = render(:usage_fixed_flags).indent 2
9
13
  = render(:usage_args).indent 2 if args.any? or catch_all.help
10
- = render(:usage_environment_variables).indent 2 if public_environment_variables.any?
14
+ = render(:usage_environment_variables).indent 2 if environment_variables.any?
11
15
  = render(:usage_examples).indent 2 if examples
12
16
  = render(:footer).indent 2 if footer
13
17
  >
@@ -0,0 +1,9 @@
1
+ if needy_flags.any?
2
+ = view_marker
3
+
4
+ needy_flags.each do |flag|
5
+ = flag.render(:needs)
6
+ end
7
+
8
+ >
9
+ end
@@ -13,6 +13,7 @@ end
13
13
  = render(:parse_requirements_while).indent 2
14
14
  = render(:required_args_filter).indent 2
15
15
  = render(:required_flags_filter).indent 2
16
+ = render(:needy_flags_filter).indent 2
16
17
  = render(:catch_all_filter).indent 2
17
18
  = render(:default_assignments).indent 2
18
19
  = render(:validations).indent 2
@@ -6,11 +6,18 @@ command_help_data.each do |group, commands|
6
6
  > printf "%s\n" "{{ group.color(:caption) }}"
7
7
 
8
8
  commands.each do |command, info|
9
+ next if info[:visibility] == :private
10
+
11
+ line = %Q[printf " %s #{info[:summary].sanitize_for_print}\\n" "#{command.ljust(maxlen).color(:command)}"]
9
12
  if info[:help_only]
10
- > [[ -n $long_usage ]] && printf " %s {{ info[:summary].sanitize_for_print }}\n" "{{ command.ljust(maxlen).color(:command) }}"
11
- else
12
- > printf " %s {{ info[:summary].sanitize_for_print }}\n" "{{ command.ljust(maxlen).color(:command) }}"
13
+ line = %Q[[[ -n "$long_usage" ]] && #{line}]
14
+ end
15
+
16
+ if info[:visibility] == :semi_private
17
+ line = %Q[[[ -n "${#{Settings.private_reveal_key}:-}" ]] && #{line}]
13
18
  end
19
+
20
+ = line
14
21
  end
15
22
 
16
23
  > echo
@@ -1,10 +1,26 @@
1
1
  = view_marker
2
2
 
3
- > printf "%s\n" "{{ strings[:environment_variables].color(:caption) }}"
4
- >
3
+ caption = %Q[printf "%s\\n" "#{strings[:environment_variables].color(:caption)}"]
4
+ if public_environment_variables.any?
5
+ = caption
6
+ >
7
+ elsif environment_variables.any? && Settings.private_reveal_key
8
+ > if [[ -n "${{{ Settings.private_reveal_key }}:-}" ]]; then
9
+ = caption.indent(2)
10
+ > fi
11
+ >
12
+ end
13
+
14
+ environment_variables.each do |env_var|
15
+ next if env_var.visibility == :private
5
16
 
6
- public_environment_variables.each do |env_var|
7
- = env_var.render :usage
17
+ if env_var.visibility == :semi_private
18
+ > if [[ -n "${{{ Settings.private_reveal_key }}:-}" ]]; then
19
+ = env_var.render(:usage).indent(2)
20
+ > fi
21
+ else
22
+ = env_var.render :usage
23
+ end
8
24
  end
9
25
 
10
26
  >
@@ -1,7 +1,15 @@
1
1
  = view_marker
2
2
 
3
- public_flags.each do |flag|
4
- = flag.render :usage
3
+ flags.each do |flag|
4
+ next if flag.visibility == :private
5
+
6
+ if flag.visibility == :semi_private
7
+ > if [[ -n "${{{ Settings.private_reveal_key }}:-}" ]]; then
8
+ = flag.render(:usage).indent(2)
9
+ > fi
10
+ else
11
+ = flag.render :usage
12
+ end
5
13
  end
6
14
 
7
15
  >
@@ -4,11 +4,11 @@
4
4
  > printf "{{ help.wrap(76).indent(4).sanitize_for_print }}\n"
5
5
 
6
6
  if allowed
7
- > printf " {{ strings[:allowed] % { values: allowed.join(', ') } }}\n"
7
+ > printf " %s\n" "{{ strings[:allowed] % { values: allowed.join(', ') } }}"
8
8
  end
9
9
 
10
10
  if default
11
- > printf " {{ strings[:default] % { value: default } }}\n"
11
+ > printf " %s\n" "{{ strings[:default] % { value: default } }}"
12
12
  end
13
13
 
14
14
  > echo
@@ -0,0 +1,9 @@
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
@@ -0,0 +1,22 @@
1
+ if needs
2
+
3
+ = view_marker
4
+
5
+ if needs.count == 1
6
+ > if [[ -n ${args['{{ name }}']+x} ]] && [[ -z "${args[{{ needs.first }}]:-}" ]]; then
7
+ > printf "%s\n" "{{ strings[:flag_needs_another] % { name: name, need: needs.first } }}" >&2
8
+ > exit 1
9
+ > fi
10
+ >
11
+ else
12
+ > if [[ -n ${args['{{ name }}']+x} ]]; then
13
+ > for need in {{ needs.join ' ' }}; do
14
+ > if [[ -z "${args[$need]:-}" ]]; then
15
+ > printf "%s\n" "{{ strings[:flag_needs_another] % { name: name, need: "$need" } }}" >&2
16
+ > exit 1
17
+ > fi
18
+ > done
19
+ > fi
20
+ >
21
+ end
22
+ end
@@ -4,16 +4,24 @@
4
4
  > printf "{{ help.wrap(76).indent(4).sanitize_for_print }}\n"
5
5
 
6
6
  if allowed
7
- > printf " {{ strings[:allowed] % { values: allowed.join(', ') } }}\n"
7
+ > printf " %s\n" "{{ strings[:allowed] % { values: allowed.join(', ') } }}"
8
8
  end
9
9
 
10
10
  if default
11
11
  if default.is_a? Array
12
- > printf " {{ strings[:default] % { value: default.join(', ') } }}\n"
12
+ > printf " %s\n" "{{ strings[:default] % { value: default.join(', ') } }}"
13
13
  else
14
- > printf " {{ strings[:default] % { value: default } }}\n"
14
+ > printf " %s\n" "{{ strings[:default] % { value: default } }}"
15
15
  end
16
16
  end
17
17
 
18
+ if needs
19
+ > printf " %s\n" "{{ strings[:needs] % { values: needs.join(', ') } }}"
20
+ end
21
+
22
+ if conflicts
23
+ > printf " %s\n" "{{ strings[:conflicts] % { values: conflicts.join(', ') } }}"
24
+ end
25
+
18
26
  > echo
19
27
  >
data/lib/bashly.rb CHANGED
@@ -3,53 +3,40 @@ if ENV['DEBUGGER']
3
3
  require 'lp'
4
4
  end
5
5
 
6
- require 'bashly/extensions/array'
7
- require 'bashly/extensions/file'
8
- require 'bashly/extensions/string'
9
- require 'bashly/extensions/yaml'
10
- require 'bashly/exceptions'
6
+ require 'requires'
7
+ requires 'bashly/extensions'
8
+ requires 'bashly/exceptions'
11
9
 
12
10
  module Bashly
13
- autoload :CLI, 'bashly/cli'
14
- autoload :Config, 'bashly/config'
15
- autoload :ConfigValidator, 'bashly/config_validator'
16
- autoload :Library, 'bashly/library'
17
- autoload :LibrarySource, 'bashly/library_source'
18
- autoload :LibrarySourceConfig, 'bashly/library_source_config'
19
- autoload :MessageStrings, 'bashly/message_strings'
20
- autoload :RenderContext, 'bashly/render_context'
21
- autoload :RenderSource, 'bashly/render_source'
22
- autoload :VERSION, 'bashly/version'
23
-
24
- autoload :AssetHelper, 'bashly/concerns/asset_helper'
25
- autoload :Completions, 'bashly/concerns/completions'
26
- autoload :ComposeRefinements, 'bashly/refinements/compose_refinements'
27
- autoload :Renderable, 'bashly/concerns/renderable'
28
- autoload :Settings, 'bashly/settings'
29
- autoload :ValidationHelpers, 'bashly/concerns/validation_helpers'
11
+ autoloads 'bashly/refinements', %i[ComposeRefinements]
12
+
13
+ autoloads 'bashly', %i[
14
+ CLI Config ConfigValidator Library LibrarySource LibrarySourceConfig
15
+ MessageStrings RenderContext RenderSource Settings VERSION
16
+ ]
17
+
18
+ autoloads 'bashly/concerns', %i[
19
+ AssetHelper Completions Renderable ValidationHelpers
20
+ ]
30
21
 
31
22
  module Script
32
- autoload :Argument, 'bashly/script/argument'
33
- autoload :Base, 'bashly/script/base'
34
- autoload :CatchAll, 'bashly/script/catch_all'
35
- autoload :Command, 'bashly/script/command'
36
- autoload :Dependency, 'bashly/script/dependency'
37
- autoload :EnvironmentVariable, 'bashly/script/environment_variable'
38
- autoload :Flag, 'bashly/script/flag'
39
- autoload :Wrapper, 'bashly/script/wrapper'
23
+ autoloads 'bashly/script', %i[
24
+ Argument Base CatchAll Command Dependency EnvironmentVariable Flag
25
+ Wrapper
26
+ ]
27
+
28
+ module Introspection
29
+ autoloads 'bashly/script/introspection', %i[
30
+ Arguments Commands Dependencies EnvironmentVariables Examples Flags
31
+ Visibility
32
+ ]
33
+ end
40
34
  end
41
35
 
42
36
  module Commands
43
- autoload :Add, 'bashly/commands/add'
44
- autoload :Base, 'bashly/commands/base'
45
- autoload :Completions, 'bashly/commands/completions'
46
- autoload :Doc, 'bashly/commands/doc'
47
- autoload :Generate, 'bashly/commands/generate'
48
- autoload :Init, 'bashly/commands/init'
49
- autoload :Preview, 'bashly/commands/preview'
50
- autoload :Render, 'bashly/commands/render'
51
- autoload :Shell, 'bashly/commands/shell'
52
- autoload :Validate, 'bashly/commands/validate'
37
+ autoloads 'bashly/commands', %i[
38
+ Add Base Completions Doc Generate Init Preview Render Shell Validate
39
+ ]
53
40
  end
54
41
 
55
42
  module Libraries
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bashly
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.1
4
+ version: 1.2.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Danny Ben Shitrit
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-07-25 00:00:00.000000000 Z
11
+ date: 2024-10-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: colsole
@@ -100,6 +100,20 @@ dependencies:
100
100
  - - "~>"
101
101
  - !ruby/object:Gem::Version
102
102
  version: '0.7'
103
+ - !ruby/object:Gem::Dependency
104
+ name: requires
105
+ requirement: !ruby/object:Gem::Requirement
106
+ requirements:
107
+ - - "~>"
108
+ - !ruby/object:Gem::Version
109
+ version: 1.1.0
110
+ type: :runtime
111
+ prerelease: false
112
+ version_requirements: !ruby/object:Gem::Requirement
113
+ requirements:
114
+ - - "~>"
115
+ - !ruby/object:Gem::Version
116
+ version: 1.1.0
103
117
  - !ruby/object:Gem::Dependency
104
118
  name: tty-markdown
105
119
  requirement: !ruby/object:Gem::Requirement
@@ -114,6 +128,46 @@ dependencies:
114
128
  - - "~>"
115
129
  - !ruby/object:Gem::Version
116
130
  version: '0.7'
131
+ - !ruby/object:Gem::Dependency
132
+ name: logger
133
+ requirement: !ruby/object:Gem::Requirement
134
+ requirements:
135
+ - - ">="
136
+ - !ruby/object:Gem::Version
137
+ version: '1'
138
+ - - "<"
139
+ - !ruby/object:Gem::Version
140
+ version: '3'
141
+ type: :runtime
142
+ prerelease: false
143
+ version_requirements: !ruby/object:Gem::Requirement
144
+ requirements:
145
+ - - ">="
146
+ - !ruby/object:Gem::Version
147
+ version: '1'
148
+ - - "<"
149
+ - !ruby/object:Gem::Version
150
+ version: '3'
151
+ - !ruby/object:Gem::Dependency
152
+ name: ostruct
153
+ requirement: !ruby/object:Gem::Requirement
154
+ requirements:
155
+ - - ">="
156
+ - !ruby/object:Gem::Version
157
+ version: '0'
158
+ - - "<"
159
+ - !ruby/object:Gem::Version
160
+ version: '2'
161
+ type: :runtime
162
+ prerelease: false
163
+ version_requirements: !ruby/object:Gem::Requirement
164
+ requirements:
165
+ - - ">="
166
+ - !ruby/object:Gem::Version
167
+ version: '0'
168
+ - - "<"
169
+ - !ruby/object:Gem::Version
170
+ version: '2'
117
171
  - !ruby/object:Gem::Dependency
118
172
  name: psych
119
173
  requirement: !ruby/object:Gem::Requirement
@@ -220,6 +274,13 @@ files:
220
274
  - lib/bashly/script/dependency.rb
221
275
  - lib/bashly/script/environment_variable.rb
222
276
  - lib/bashly/script/flag.rb
277
+ - lib/bashly/script/introspection/arguments.rb
278
+ - lib/bashly/script/introspection/commands.rb
279
+ - lib/bashly/script/introspection/dependencies.rb
280
+ - lib/bashly/script/introspection/environment_variables.rb
281
+ - lib/bashly/script/introspection/examples.rb
282
+ - lib/bashly/script/introspection/flags.rb
283
+ - lib/bashly/script/introspection/visibility.rb
223
284
  - lib/bashly/script/wrapper.rb
224
285
  - lib/bashly/settings.rb
225
286
  - lib/bashly/templates/bashly.yml
@@ -248,6 +309,7 @@ files:
248
309
  - lib/bashly/views/command/inspect_args.gtx
249
310
  - lib/bashly/views/command/long_usage.gtx
250
311
  - lib/bashly/views/command/master_script.gtx
312
+ - lib/bashly/views/command/needy_flags_filter.gtx
251
313
  - lib/bashly/views/command/normalize_input.gtx
252
314
  - lib/bashly/views/command/normalize_input_function.gtx
253
315
  - lib/bashly/views/command/normalize_input_simple.gtx
@@ -275,10 +337,12 @@ files:
275
337
  - lib/bashly/views/command/version_command.gtx
276
338
  - lib/bashly/views/command/whitelist_filter.gtx
277
339
  - lib/bashly/views/environment_variable/usage.gtx
340
+ - lib/bashly/views/environment_variable/validations.gtx
278
341
  - lib/bashly/views/flag/case.gtx
279
342
  - lib/bashly/views/flag/case_arg.gtx
280
343
  - lib/bashly/views/flag/case_no_arg.gtx
281
344
  - lib/bashly/views/flag/conflicts.gtx
345
+ - lib/bashly/views/flag/needs.gtx
282
346
  - lib/bashly/views/flag/usage.gtx
283
347
  - lib/bashly/views/flag/validations.gtx
284
348
  - lib/bashly/views/wrapper/bash3_bouncer.gtx
@@ -308,7 +372,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
308
372
  - !ruby/object:Gem::Version
309
373
  version: '0'
310
374
  requirements: []
311
- rubygems_version: 3.5.14
375
+ rubygems_version: 3.5.16
312
376
  signing_key:
313
377
  specification_version: 4
314
378
  summary: Bash Command Line Tool Generator