bashly 0.7.2 → 0.7.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: f0f901e6eab10987e6daf0042b18e097b172f3d54babc286b9fb2f5e83452612
4
- data.tar.gz: 4dc2043674ce9c5d1c3be9bfd8ec72f2cf0f18ac121b909e939dc9dd4ca3ea79
3
+ metadata.gz: a68036595993a9c9661c283bcb30d0b89941d15930cba9b821e2500d53087178
4
+ data.tar.gz: d8d50d5c8f91f95a46a94116d3f7ffe5a66f7c2a994e87524036f91292b707f5
5
5
  SHA512:
6
- metadata.gz: f00b5c1afcb6349e7fdcc3e60adc23d2d6aa3d22a31b6375c3a2129adcb4434b9e2885449fdd8ede13dca7d56b0c1b6387681b6428db6028da0208cea82fe0a2
7
- data.tar.gz: 5350aa76e39d2cee1d3ef2eb722e22f10e3d28772917d6b66cd5d11b0fb331a45e6fa2dd006f1096468b6189735ccffbf2650c27cb8a6a8d70b92c9c63803625
6
+ metadata.gz: d7ad12eef82213a5ed61673d205dafb5626028516efe0768986dc64cf527ae346e0fa868019cb7c23b8366a277edc7f9414149ece6f2ab8178f5f0b20beedb77
7
+ data.tar.gz: 3db2a86f70fb882bc63f615f25dc2e70aa818f1c5b9af9c13ce1d4d1d2c681dd1e7c5919c93422ccf1d0d440f018efefc3e8901e4af2b43a092fd652d503fee8
@@ -82,7 +82,7 @@ module Bashly
82
82
  end
83
83
 
84
84
  def create_root_command_file
85
- create_file "#{Settings.source_dir}/root_command.sh", command.render(:default_root_script)
85
+ create_file "#{Settings.source_dir}/#{command.filename}", command.render(:default_root_script)
86
86
  end
87
87
 
88
88
  def create_all_command_files
@@ -98,7 +98,7 @@ module Bashly
98
98
  if File.exist? file and !args['--force']
99
99
  quiet_say "!txtblu!skipped!txtrst! #{file} (exists)"
100
100
  else
101
- File.write file, content
101
+ File.deep_write file, content
102
102
  quiet_say "!txtgrn!created!txtrst! #{file}"
103
103
  end
104
104
  end
@@ -81,6 +81,8 @@ module Bashly
81
81
  assert_boolean "#{key}.required", value['required']
82
82
 
83
83
  assert_array "#{key}.allowed", value['allowed'], of: :string
84
+
85
+ refute value['name'].match(/^-/), "#{key}.name must not start with '-'"
84
86
  end
85
87
 
86
88
  def assert_flag(key, value)
@@ -96,6 +98,10 @@ module Bashly
96
98
 
97
99
  assert_boolean "#{key}.required", value['required']
98
100
  assert_array "#{key}.allowed", value['allowed'], of: :string
101
+
102
+ assert value['long'].match(/^--[a-zA-Z0-9_\-]+$/), "#{key}.long must be in the form of '--name'" if value['long']
103
+ assert value['short'].match(/^-[a-zA-Z0-9]$/), "#{key}.short must be in the form of '-n'" if value['short']
104
+ refute value['arg'].match(/^-/), "#{key}.arg must not start with '-'" if value['arg']
99
105
  end
100
106
 
101
107
  def assert_env_var(key, value)
@@ -117,6 +123,7 @@ module Bashly
117
123
  assert_optional_string "#{key}.help", value['help']
118
124
  assert_optional_string "#{key}.footer", value['footer']
119
125
  assert_optional_string "#{key}.group", value['group']
126
+ assert_optional_string "#{key}.filename", value['filename']
120
127
 
121
128
  assert_boolean "#{key}.default", value['default']
122
129
  assert_version "#{key}.version", value['version']
@@ -53,9 +53,9 @@ module Bashly
53
53
  respond_to?(method_name) ? options[key] : super
54
54
  end
55
55
 
56
- def respond_to?(method_name, include_private = false)
56
+ def respond_to_missing?(method_name, include_private = false)
57
57
  OPTION_KEYS.include?(method_name) || super
58
58
  end
59
59
  end
60
60
  end
61
- end
61
+ end
@@ -55,7 +55,7 @@ module Bashly
55
55
  # Returns the bash filename that is expected to hold the user code
56
56
  # for this command
57
57
  def filename
58
- "#{action_name.to_underscore}_command.sh"
58
+ options["filename"] || "#{action_name.to_underscore}_command.sh"
59
59
  end
60
60
 
61
61
  # Returns an array of Flags
@@ -1,3 +1,3 @@
1
1
  module Bashly
2
- VERSION = "0.7.2"
2
+ VERSION = "0.7.3"
3
3
  end
@@ -1,3 +1,3 @@
1
- echo "# this file is located in '<%= Settings.source_dir %>/root_command.sh'"
1
+ echo "# this file is located in '<%= "#{Settings.source_dir}/#{filename}" %>'"
2
2
  echo "# you can edit it freely and regenerate (it will not be overwritten)"
3
3
  inspect_args
@@ -1,4 +1,4 @@
1
1
  # :command.root_command
2
2
  root_command() {
3
- <%= load_user_file("root_command.sh").indent 2 %>
3
+ <%= load_user_file(filename).indent 2 %>
4
4
  }
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.7.2
4
+ version: 0.7.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: 2022-01-28 00:00:00.000000000 Z
11
+ date: 2022-02-03 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: colsole
@@ -188,7 +188,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
188
188
  - !ruby/object:Gem::Version
189
189
  version: '0'
190
190
  requirements: []
191
- rubygems_version: 3.2.15
191
+ rubygems_version: 3.3.6
192
192
  signing_key:
193
193
  specification_version: 4
194
194
  summary: Bash Command Line Tool Generator