bashly 0.8.8 → 0.8.10

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 4d91ebd35f74173621d545d29ff7ea404341638c7b06aa0610cb1ab10dfba93a
4
- data.tar.gz: 81b1516fd118e2f985d5fd6b88cfa07db8f3b01eb91895d069587de26586bb1d
3
+ metadata.gz: 93a8d1b32e641bee6713b57ed0cd3e970c8806273f02f900909553dd391d5b43
4
+ data.tar.gz: 4024323aa10f725b947d9b59c4019724bd26a58945ff1436102d57130a677442
5
5
  SHA512:
6
- metadata.gz: f366a6add6ae9c750f07c219393f613dc381e7ade0f18e94fef716364fbcecdbcac7cb8f5cdaf2101ea2c2f0040dab72303e740d87508750f627b71e4dbca39f
7
- data.tar.gz: 3327229305d123a6ea878846035fb4fbb0e33a6d7f6fd81ee3e203b1c89cd29d36cc36822908c31faa5fa97edba98a69db941fece386849aeafbdfef4cdea978
6
+ metadata.gz: 81a26b1e7eb07c45f596db2b3f787af3580cfdc9be9490b7b361670decdf582b3eeb996a889f8409631ea4f9470cb81812d73655727189844b833849e543bbb5
7
+ data.tar.gz: 3d52eb5364d947bfe5e8a9e3efa626d10da75ddd68f1dff3c279aca4f830f4ef52e17b6b65a95f2b4dfcba1927fecbcc5c9445d6f0e02dc472834f48bcb9284e
@@ -3,12 +3,18 @@ module Bashly
3
3
  class Validate < Base
4
4
  help "Scan the configuration file for errors"
5
5
 
6
- usage "bashly validate"
6
+ usage "bashly validate [--verbose]"
7
7
  usage "bashly validate (-h|--help)"
8
8
 
9
+ option "-v --verbose", "Show the bashly configuration file prior to validating. This is useful when using split config (import) since it will show the final compiled configuration."
10
+
9
11
  environment "BASHLY_SOURCE_DIR", "The path containing the bashly configuration and source files [default: src]"
10
12
 
11
13
  def run
14
+ if args['--verbose']
15
+ lp config
16
+ puts "---"
17
+ end
12
18
  validate_config
13
19
  show_deprecations
14
20
  deprecations = config_validator.deprecations
@@ -119,6 +119,7 @@ module Bashly
119
119
  assert_optional_string "#{key}.footer", value['footer']
120
120
  assert_optional_string "#{key}.group", value['group']
121
121
  assert_optional_string "#{key}.filename", value['filename']
122
+ assert_optional_string "#{key}.function", value['function']
122
123
 
123
124
  assert_boolean "#{key}.private", value['private']
124
125
  assert_boolean "#{key}.default", value['default']
@@ -126,6 +127,7 @@ module Bashly
126
127
  assert_version "#{key}.version", value['version']
127
128
  assert_catch_all "#{key}.catch_all", value['catch_all']
128
129
  assert_string_or_array "#{key}.alias", value['alias']
130
+ assert_string_or_array "#{key}.examples", value['examples']
129
131
  assert_extensible "#{key}.extensible", value['extensible']
130
132
 
131
133
  assert_array "#{key}.args", value['args'], of: :arg
@@ -135,13 +137,16 @@ module Bashly
135
137
  assert_array "#{key}.dependencies", value['dependencies'], of: :string
136
138
  assert_array "#{key}.filters", value['filters'], of: :string
137
139
  assert_array "#{key}.environment_variables", value['environment_variables'], of: :env_var
138
- assert_array "#{key}.examples", value['examples'], of: :string
139
140
 
140
141
  assert_uniq "#{key}.commands", value['commands'], ['name', 'alias']
141
142
  assert_uniq "#{key}.flags", value['flags'], 'long'
142
143
  assert_uniq "#{key}.flags", value['flags'], 'short'
143
144
  assert_uniq "#{key}.args", value['args'], 'name'
144
145
 
146
+ if value['function']
147
+ assert value['function'].match(/^[a-z0-9_]+$/), "#{key}.function must contain lowercase alphanumeric characters and underscores only"
148
+ end
149
+
145
150
  if value['default']
146
151
  assert value['args'], "#{key}.default makes no sense without args"
147
152
  end
@@ -9,7 +9,7 @@ module Bashly
9
9
  alias args catch_all commands completions
10
10
  default dependencies environment_variables examples
11
11
  extensible expose filename filters flags
12
- footer group help name
12
+ footer function group help name
13
13
  private version
14
14
  short
15
15
  ]
@@ -152,6 +152,12 @@ module Bashly
152
152
  end
153
153
  end
154
154
 
155
+ # Returns an array of examples
156
+ def examples
157
+ return nil unless options["examples"]
158
+ options["examples"].is_a?(Array) ? options['examples'] : [options['examples']]
159
+ end
160
+
155
161
  # Returns the bash filename that is expected to hold the user code
156
162
  # for this command
157
163
  def filename
@@ -168,7 +174,7 @@ module Bashly
168
174
 
169
175
  # Returns a unique name, suitable to be used in a bash function
170
176
  def function_name
171
- full_name.to_underscore
177
+ options['function'] || full_name.to_underscore
172
178
  end
173
179
 
174
180
  # Returns the name of the command, including its parent name (in case
@@ -1,3 +1,3 @@
1
1
  module Bashly
2
- VERSION = "0.8.8"
2
+ VERSION = "0.8.10"
3
3
  end
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: 0.8.8
4
+ version: 0.8.10
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: 2022-10-08 00:00:00.000000000 Z
11
+ date: 2022-11-01 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: completely
@@ -53,21 +53,21 @@ dependencies:
53
53
  - !ruby/object:Gem::Version
54
54
  version: '0.7'
55
55
  - !ruby/object:Gem::Dependency
56
- name: mister_bin
56
+ name: filewatcher
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
59
  - - "~>"
60
60
  - !ruby/object:Gem::Version
61
- version: '0.7'
61
+ version: '2.0'
62
62
  type: :runtime
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
66
  - - "~>"
67
67
  - !ruby/object:Gem::Version
68
- version: '0.7'
68
+ version: '2.0'
69
69
  - !ruby/object:Gem::Dependency
70
- name: requires
70
+ name: lp
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
73
  - - "~>"
@@ -81,19 +81,33 @@ dependencies:
81
81
  - !ruby/object:Gem::Version
82
82
  version: '0.2'
83
83
  - !ruby/object:Gem::Dependency
84
- name: filewatcher
84
+ name: mister_bin
85
85
  requirement: !ruby/object:Gem::Requirement
86
86
  requirements:
87
87
  - - "~>"
88
88
  - !ruby/object:Gem::Version
89
- version: '2.0'
89
+ version: '0.7'
90
90
  type: :runtime
91
91
  prerelease: false
92
92
  version_requirements: !ruby/object:Gem::Requirement
93
93
  requirements:
94
94
  - - "~>"
95
95
  - !ruby/object:Gem::Version
96
- version: '2.0'
96
+ version: '0.7'
97
+ - !ruby/object:Gem::Dependency
98
+ name: requires
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - "~>"
102
+ - !ruby/object:Gem::Version
103
+ version: '0.2'
104
+ type: :runtime
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - "~>"
109
+ - !ruby/object:Gem::Version
110
+ version: '0.2'
97
111
  description: Generate bash command line tools using YAML configuration
98
112
  email: db@dannyben.com
99
113
  executables: