bashly 0.8.7 → 0.8.8

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: '09fd56d9f65d2a7859382562739364338cbe7ccf52d2c82ac446f3e9b6a5d118'
4
- data.tar.gz: 10a648ebf0552b376cca8aa1ff89592670721c089acea84c10ff3aeaacd218e3
3
+ metadata.gz: 4d91ebd35f74173621d545d29ff7ea404341638c7b06aa0610cb1ab10dfba93a
4
+ data.tar.gz: 81b1516fd118e2f985d5fd6b88cfa07db8f3b01eb91895d069587de26586bb1d
5
5
  SHA512:
6
- metadata.gz: 65c59416204a5c3a7da38efad9373ac555e2368fbdd27b47e4e7d3b143abe73f4c22309b0d6f8909b00f70807b9502095ec10728a8f903738e24f300d75e52f7
7
- data.tar.gz: fe3a5db484a8cf4af117fc43114095acbbfb96c25ed1f63570029981ca175d6d6bd7e89a42cef8bbc2eedeff6aa5df394db6afccfba763d010aa96b75fede166
6
+ metadata.gz: f366a6add6ae9c750f07c219393f613dc381e7ade0f18e94fef716364fbcecdbcac7cb8f5cdaf2101ea2c2f0040dab72303e740d87508750f627b71e4dbca39f
7
+ data.tar.gz: 3327229305d123a6ea878846035fb4fbb0e33a6d7f6fd81ee3e203b1c89cd29d36cc36822908c31faa5fa97edba98a69db941fece386849aeafbdfef4cdea978
@@ -1,18 +1,21 @@
1
1
  module Bashly
2
2
  class Settings
3
3
  class << self
4
- attr_writer :source_dir, :target_dir, :lib_dir, :strict, :tab_indent
4
+ include AssetHelper
5
+
6
+ attr_writer :compact_short_flags, :source_dir, :target_dir,
7
+ :lib_dir, :strict, :tab_indent
5
8
 
6
9
  def source_dir
7
- @source_dir ||= get :source_dir, 'src'
10
+ @source_dir ||= get :source_dir
8
11
  end
9
12
 
10
13
  def target_dir
11
- @target_dir ||= get :target_dir, '.'
14
+ @target_dir ||= get :target_dir
12
15
  end
13
16
 
14
17
  def lib_dir
15
- @lib_dir ||= get :lib_dir, 'lib'
18
+ @lib_dir ||= get :lib_dir
16
19
  end
17
20
 
18
21
  def strict
@@ -23,8 +26,12 @@ module Bashly
23
26
  @tab_indent ||= get :tab_indent
24
27
  end
25
28
 
29
+ def compact_short_flags
30
+ @compact_short_flags ||= get :compact_short_flags
31
+ end
32
+
26
33
  def env
27
- @env ||= get(:env, :development)&.to_sym
34
+ @env ||= get(:env)&.to_sym
28
35
  end
29
36
 
30
37
  def env=(value)
@@ -41,14 +48,33 @@ module Bashly
41
48
 
42
49
  private
43
50
 
44
- def get(key, default = nil)
45
- ENV["BASHLY_#{key.upcase}"] || user_settings[key.to_s] || default
51
+ def get(key)
52
+ case env_value key
53
+ when nil then config[key.to_s]
54
+ when "0", "false", "no" then false
55
+ when "1", "true", "yes" then true
56
+ else env_value key
57
+ end
58
+ end
59
+
60
+ def env_value(key)
61
+ ENV["BASHLY_#{key.upcase}"]
62
+ end
63
+
64
+ def config
65
+ @config ||= defsult_settings.merge user_settings
46
66
  end
47
67
 
48
68
  def user_settings
49
- @user_settings ||= begin
50
- File.exist?('settings.yml') ? Config.new('settings.yml') : {}
51
- end
69
+ @user_settings ||= File.exist?('settings.yml') ? Config.new('settings.yml') : {}
70
+ end
71
+
72
+ def defsult_settings
73
+ @defsult_settings ||= Config.new(default_settings_path)
74
+ end
75
+
76
+ def default_settings_path
77
+ asset "templates/settings.yml"
52
78
  end
53
79
 
54
80
  end
@@ -1,6 +1,10 @@
1
1
  # All settings are optional (with their default values provided below), and
2
2
  # can also be set with an environment variable with the same name, capitalized
3
3
  # and prefixed by `BASHLY_` - for example: BASHLY_SOURCE_DIR
4
+ #
5
+ # When setting environment variables, you can use:
6
+ # - "0", "false" or "no" to represent false
7
+ # - "1", "true" or "yes" to represent true
4
8
 
5
9
  # The path containing the bashly configuration and source files
6
10
  source_dir: src
@@ -18,6 +22,10 @@ strict: false
18
22
  # (every 2 leading spaces will be converted to a tab character)
19
23
  tab_indent: false
20
24
 
25
+ # When true, the generated script will consider any argument in the form of
26
+ # `-abc` as if it is `-a -b -c`.
27
+ compact_short_flags: true
28
+
21
29
  # Set to 'production' or 'development':
22
30
  # - production generate a smaller script, without file markers
23
31
  # - development generate with file markers
@@ -1,3 +1,3 @@
1
1
  module Bashly
2
- VERSION = "0.8.7"
2
+ VERSION = "0.8.8"
3
3
  end
@@ -11,11 +11,15 @@
11
11
  > elif [[ $arg =~ ^(-[a-zA-Z0-9])=(.+)$ ]]; then
12
12
  > input+=("${BASH_REMATCH[1]}")
13
13
  > input+=("${BASH_REMATCH[2]}")
14
+
15
+ if Settings.compact_short_flags
14
16
  > elif [[ $arg =~ ^-([a-zA-Z0-9][a-zA-Z0-9]+)$ ]]; then
15
17
  > flags="${BASH_REMATCH[1]}"
16
18
  > for (( i=0 ; i < ${#flags} ; i++ )); do
17
19
  > input+=("-${flags:i:1}")
18
20
  > done
21
+ end
22
+
19
23
  > else
20
24
  > input+=("$arg")
21
25
  > fi
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.7
4
+ version: 0.8.8
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-09-30 00:00:00.000000000 Z
11
+ date: 2022-10-08 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: completely