bashly 0.6.4 → 0.6.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 +4 -4
- data/lib/bashly/commands/generate.rb +11 -6
- data/lib/bashly/extensions/string.rb +1 -1
- data/lib/bashly/models/command.rb +2 -2
- data/lib/bashly/models/script.rb +19 -1
- data/lib/bashly/templates/lib/config.sh +17 -14
- data/lib/bashly/version.rb +1 -1
- data/lib/bashly/views/argument/usage.erb +4 -4
- data/lib/bashly/views/command/catch_all_filter.erb +2 -2
- data/lib/bashly/views/command/command_fallback.erb +5 -5
- data/lib/bashly/views/command/command_filter.erb +5 -5
- data/lib/bashly/views/command/command_functions.erb +2 -2
- data/lib/bashly/views/command/default_assignments.erb +4 -4
- data/lib/bashly/views/command/dependencies_filter.erb +4 -4
- data/lib/bashly/views/command/environment_variables_filter.erb +9 -9
- data/lib/bashly/views/command/fixed_flags_filter.erb +6 -6
- data/lib/bashly/views/command/initialize.erb +0 -5
- data/lib/bashly/views/command/master_script.erb +1 -0
- data/lib/bashly/views/command/normalize_input.erb +24 -0
- data/lib/bashly/views/command/parse_requirements.erb +5 -5
- data/lib/bashly/views/command/parse_requirements_case.erb +11 -11
- data/lib/bashly/views/command/parse_requirements_while.erb +5 -5
- data/lib/bashly/views/command/required_args_filter.erb +2 -2
- data/lib/bashly/views/command/required_flags_filter.erb +4 -4
- data/lib/bashly/views/command/run.erb +3 -1
- data/lib/bashly/views/command/usage_args.erb +6 -6
- data/lib/bashly/views/command/usage_commands.erb +12 -12
- data/lib/bashly/views/command/usage_environment_variables.erb +2 -2
- data/lib/bashly/views/command/usage_examples.erb +2 -2
- data/lib/bashly/views/command/usage_fixed_flags.erb +8 -8
- data/lib/bashly/views/command/usage_flags.erb +2 -2
- data/lib/bashly/views/command/user_lib.erb +2 -2
- data/lib/bashly/views/command/whitelist_filter.erb +4 -4
- data/lib/bashly/views/environment_variable/usage.erb +2 -2
- data/lib/bashly/views/flag/case.erb +3 -3
- data/lib/bashly/views/flag/usage.erb +4 -4
- data/lib/bashly/views/script/bash3_bouncer.erb +5 -0
- data/lib/bashly/views/script/header.erb +1 -0
- metadata +11 -11
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 6f0b22d0ac9bf41f91fed37e60996fa5175346a9e2e5e56158b760ededfef2a0
|
4
|
+
data.tar.gz: 39ffcd5e199b6b79fd04a4bd38e93d4703ad7aebce0ec4970b8250280112c5db
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: fd57501ae8a6fc8b3072320dc7358b2097ef9b280b5e8b80efa52155c91a9fe56abbb73821ffc2b8a8a8e55caf7a61dd46ef29d8c88f49b2232cddfccff77a32
|
7
|
+
data.tar.gz: 83f7293f9b543d6330daedf6421678b3c321166751708dba0985d7aa18a9191510a3832bd2ac8d2a3510b09f9eb2064403798b38894c7227a63f8c86f52f04dc
|
@@ -3,11 +3,12 @@ module Bashly
|
|
3
3
|
class Generate < Base
|
4
4
|
help "Generate the bash script and required files"
|
5
5
|
|
6
|
-
usage "bashly generate [--force --wrap FUNCTION]"
|
6
|
+
usage "bashly generate [--force --quiet --wrap FUNCTION]"
|
7
7
|
usage "bashly generate (-h|--help)"
|
8
8
|
|
9
9
|
option "-f --force", "Overwrite existing files"
|
10
10
|
option "-w --wrap FUNCTION", "Wrap the entire script in a function so it can also be sourced"
|
11
|
+
option "-q --quiet", "Disable on-screen progress report"
|
11
12
|
|
12
13
|
environment "BASHLY_SOURCE_DIR", "The path containing the bashly configuration and source files [default: src]"
|
13
14
|
environment "BASHLY_TARGET_DIR", "The path to use for creating the bash script [default: .]"
|
@@ -18,13 +19,17 @@ module Bashly
|
|
18
19
|
def run
|
19
20
|
create_user_files
|
20
21
|
create_master_script
|
21
|
-
|
22
|
+
quiet_say "run !txtpur!#{master_script_path} --help!txtrst! to test your bash script"
|
22
23
|
end
|
23
24
|
|
24
25
|
private
|
25
26
|
|
27
|
+
def quiet_say(message)
|
28
|
+
say message unless args['--quiet']
|
29
|
+
end
|
30
|
+
|
26
31
|
def create_user_files
|
27
|
-
|
32
|
+
quiet_say "creating user files in !txtgrn!#{Settings.source_dir}"
|
28
33
|
|
29
34
|
create_file "#{Settings.source_dir}/initialize.sh", command.render(:default_initialize_script)
|
30
35
|
|
@@ -50,17 +55,17 @@ module Bashly
|
|
50
55
|
|
51
56
|
def create_file(file, content)
|
52
57
|
if File.exist? file and !args['--force']
|
53
|
-
|
58
|
+
quiet_say "skipped !txtgrn!#{file}!txtrst! (exists)"
|
54
59
|
else
|
55
60
|
File.write file, content
|
56
|
-
|
61
|
+
quiet_say "created !txtgrn!#{file}"
|
57
62
|
end
|
58
63
|
end
|
59
64
|
|
60
65
|
def create_master_script
|
61
66
|
File.write master_script_path, script.code
|
62
67
|
FileUtils.chmod "+x", master_script_path
|
63
|
-
|
68
|
+
quiet_say "created !txtgrn!#{master_script_path}"
|
64
69
|
end
|
65
70
|
|
66
71
|
def script
|
@@ -209,7 +209,7 @@ module Bashly
|
|
209
209
|
# This is meant to provide the user with the ability to add custom
|
210
210
|
# functions
|
211
211
|
def user_lib
|
212
|
-
@user_lib ||= Dir["#{Settings.source_dir}/lib/**/*.sh"]
|
212
|
+
@user_lib ||= Dir["#{Settings.source_dir}/lib/**/*.sh"].sort
|
213
213
|
end
|
214
214
|
|
215
215
|
# Raise an exception if there are some serious issues with the command
|
@@ -238,4 +238,4 @@ module Bashly
|
|
238
238
|
|
239
239
|
end
|
240
240
|
end
|
241
|
-
end
|
241
|
+
end
|
data/lib/bashly/models/script.rb
CHANGED
@@ -22,12 +22,30 @@ module Bashly
|
|
22
22
|
private
|
23
23
|
|
24
24
|
def header
|
25
|
-
@header ||=
|
25
|
+
@header ||= header!
|
26
|
+
end
|
27
|
+
|
28
|
+
def header!
|
29
|
+
if File.exist? custom_header_path
|
30
|
+
File.read custom_header_path
|
31
|
+
else
|
32
|
+
default_header
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
36
|
+
def default_header
|
37
|
+
result = render('header')
|
38
|
+
result += render('bash3_bouncer') unless function_name
|
39
|
+
result
|
26
40
|
end
|
27
41
|
|
28
42
|
def body
|
29
43
|
@body ||= command.render('master_script')
|
30
44
|
end
|
45
|
+
|
46
|
+
def custom_header_path
|
47
|
+
@custom_header_path ||= "#{Settings.source_dir}/header.sh"
|
48
|
+
end
|
31
49
|
end
|
32
50
|
end
|
33
51
|
end
|
@@ -10,7 +10,7 @@
|
|
10
10
|
# ---
|
11
11
|
|
12
12
|
# Create a new config file.
|
13
|
-
# There is normally no need to use this
|
13
|
+
# There is normally no need to use this function, it is used by other
|
14
14
|
# functions as needed.
|
15
15
|
config_init() {
|
16
16
|
CONFIG_FILE=${CONFIG_FILE:=config.ini}
|
@@ -20,8 +20,9 @@ config_init() {
|
|
20
20
|
# Get a value from the config.
|
21
21
|
# Usage: result=$(config_get hello)
|
22
22
|
config_get() {
|
23
|
-
key=$1
|
24
|
-
regex="^$key *= *(.+)$"
|
23
|
+
local key=$1
|
24
|
+
local regex="^$key *= *(.+)$"
|
25
|
+
local value=""
|
25
26
|
|
26
27
|
config_init
|
27
28
|
|
@@ -38,15 +39,16 @@ config_get() {
|
|
38
39
|
# Add or update a key=value pair in the config.
|
39
40
|
# Usage: config_set key value
|
40
41
|
config_set() {
|
41
|
-
key=$1
|
42
|
+
local key=$1
|
42
43
|
shift
|
43
|
-
value="$*"
|
44
|
+
local value="$*"
|
44
45
|
|
45
46
|
config_init
|
46
47
|
|
47
|
-
regex="^($key) *= *.+$"
|
48
|
-
output=""
|
49
|
-
found_key=""
|
48
|
+
local regex="^($key) *= *.+$"
|
49
|
+
local output=""
|
50
|
+
local found_key=""
|
51
|
+
local newline
|
50
52
|
|
51
53
|
while IFS= read -r line || [ -n "$line" ]; do
|
52
54
|
newline=$line
|
@@ -69,15 +71,14 @@ config_set() {
|
|
69
71
|
# Delete a key from the config.
|
70
72
|
# Usage: config_del key
|
71
73
|
config_del() {
|
72
|
-
key=$1
|
74
|
+
local key=$1
|
73
75
|
|
74
|
-
regex="^($key) *="
|
75
|
-
output=""
|
76
|
+
local regex="^($key) *="
|
77
|
+
local output=""
|
76
78
|
|
77
79
|
config_init
|
78
80
|
|
79
81
|
while IFS= read -r line || [ -n "$line" ]; do
|
80
|
-
newline=$line
|
81
82
|
if [[ $line ]] && [[ ! $line =~ $regex ]]; then
|
82
83
|
output="$output$line\n"
|
83
84
|
fi
|
@@ -100,11 +101,13 @@ config_show() {
|
|
100
101
|
# done
|
101
102
|
#
|
102
103
|
config_keys() {
|
103
|
-
regex="^([a-zA-Z0-9_\-\/\.]+) *="
|
104
|
+
local regex="^([a-zA-Z0-9_\-\/\.]+) *="
|
104
105
|
|
105
106
|
config_init
|
106
107
|
|
107
|
-
keys=()
|
108
|
+
local keys=()
|
109
|
+
local key
|
110
|
+
|
108
111
|
while IFS= read -r line || [ -n "$line" ]; do
|
109
112
|
if [[ $line =~ $regex ]]; then
|
110
113
|
key="${BASH_REMATCH[1]}"
|
data/lib/bashly/version.rb
CHANGED
@@ -1,10 +1,10 @@
|
|
1
1
|
# :argument.usage
|
2
2
|
echo " <%= name.upcase %>"
|
3
3
|
printf "<%= help.wrap(76).indent(4).sanitize_for_print %>\n"
|
4
|
-
|
4
|
+
% if allowed
|
5
5
|
printf " <%= strings[:allowed] % { values: allowed.join(', ') } -%>\n"
|
6
|
-
|
7
|
-
|
6
|
+
% end
|
7
|
+
% if default
|
8
8
|
printf " <%= strings[:default] % { value: default } -%>\n"
|
9
|
-
|
9
|
+
% end
|
10
10
|
echo
|
@@ -1,7 +1,7 @@
|
|
1
1
|
# :command.catch_all_filter
|
2
|
-
|
2
|
+
% if catch_all_required?
|
3
3
|
if [[ ${#other_args[@]} -eq 0 ]]; then
|
4
4
|
printf "<%= strings[:missing_required_argument] % { arg: catch_all_label, usage: usage_string } %>\n"
|
5
5
|
exit 1
|
6
6
|
fi
|
7
|
-
|
7
|
+
% end
|
@@ -1,5 +1,5 @@
|
|
1
1
|
# :command.command_fallback
|
2
|
-
|
2
|
+
% if default_command
|
3
3
|
"" )
|
4
4
|
<%= function_name %>_usage
|
5
5
|
exit 1
|
@@ -10,7 +10,7 @@
|
|
10
10
|
<%= default_command.function_name %>_parse_requirements "$@"
|
11
11
|
shift $#
|
12
12
|
;;
|
13
|
-
|
13
|
+
% elsif extensible.is_a? String
|
14
14
|
"" )
|
15
15
|
<%= function_name %>_usage
|
16
16
|
exit 1
|
@@ -23,7 +23,7 @@
|
|
23
23
|
<%= function_name %>_usage
|
24
24
|
exit 1
|
25
25
|
fi
|
26
|
-
|
26
|
+
% elsif extensible
|
27
27
|
"" )
|
28
28
|
<%= function_name %>_usage
|
29
29
|
exit 1
|
@@ -37,9 +37,9 @@
|
|
37
37
|
<%= function_name %>_usage
|
38
38
|
exit 1
|
39
39
|
fi
|
40
|
-
|
40
|
+
% else
|
41
41
|
* )
|
42
42
|
<%= function_name %>_usage
|
43
43
|
exit 1
|
44
44
|
;;
|
45
|
-
|
45
|
+
% end
|
@@ -1,12 +1,12 @@
|
|
1
1
|
# :command.command_filter
|
2
|
-
|
2
|
+
% if commands.any?
|
3
3
|
action=$1
|
4
4
|
|
5
5
|
case $action in
|
6
6
|
-* )
|
7
7
|
;;
|
8
8
|
|
9
|
-
|
9
|
+
% commands.each do |command|
|
10
10
|
<%= command.aliases.join " | " %> )
|
11
11
|
action="<%= command.name %>"
|
12
12
|
shift
|
@@ -14,9 +14,9 @@ case $action in
|
|
14
14
|
shift $#
|
15
15
|
;;
|
16
16
|
|
17
|
-
|
17
|
+
% end
|
18
18
|
<%= render :command_fallback %>
|
19
19
|
esac
|
20
|
-
|
20
|
+
% else
|
21
21
|
action="<%= action_name %>"
|
22
|
-
|
22
|
+
% end
|
@@ -1,7 +1,7 @@
|
|
1
1
|
# :command.default_assignments
|
2
|
-
|
2
|
+
% default_args.each do |arg|
|
3
3
|
[[ -n ${args[<%= arg.name %>]} ]] || args[<%= arg.name %>]="<%= arg.default %>"
|
4
|
-
|
5
|
-
|
4
|
+
% end
|
5
|
+
% default_flags.each do |flag|
|
6
6
|
[[ -n ${args[<%= flag.long %>]} ]] || args[<%= flag.long %>]="<%= flag.default %>"
|
7
|
-
|
7
|
+
% end
|
@@ -1,9 +1,9 @@
|
|
1
1
|
# :command.dependencies_filter
|
2
|
-
|
3
|
-
|
2
|
+
% if dependencies
|
3
|
+
% dependencies.each do |dependency|
|
4
4
|
if ! [[ -x "$(command -v <%= dependency %>)" ]]; then
|
5
5
|
printf "<%= strings[:missing_dependency] % { dependency: dependency } -%>\n"
|
6
6
|
exit 1
|
7
7
|
fi
|
8
|
-
|
9
|
-
|
8
|
+
% end
|
9
|
+
% end
|
@@ -1,14 +1,14 @@
|
|
1
1
|
# :command.environment_variables_filter
|
2
|
-
|
3
|
-
|
2
|
+
% if default_environment_variables.any?
|
3
|
+
% default_environment_variables.each do |env_var|
|
4
4
|
export <%= env_var.name.upcase %>="${<%= env_var.name.upcase %>:-<%= env_var.default %>}"
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
5
|
+
% end
|
6
|
+
% end
|
7
|
+
% if required_environment_variables.any?
|
8
|
+
% required_environment_variables.each do |env_var|
|
9
9
|
if [[ -z "$<%= env_var.name.upcase %>" ]]; then
|
10
|
-
printf "<%= strings[:missing_required_environment_variable] % { var: env_var.name.upcase }
|
10
|
+
printf "<%= strings[:missing_required_environment_variable] % { var: env_var.name.upcase } %>\n"
|
11
11
|
exit 1
|
12
12
|
fi
|
13
|
-
|
14
|
-
|
13
|
+
% end
|
14
|
+
% end
|
@@ -1,19 +1,19 @@
|
|
1
1
|
# :command.fixed_flag_filter
|
2
2
|
case "$1" in
|
3
|
-
|
3
|
+
% if short_flag_exist? "-v"
|
4
4
|
--version )
|
5
|
-
|
5
|
+
% else
|
6
6
|
--version | -v )
|
7
|
-
|
7
|
+
% end
|
8
8
|
version_command
|
9
9
|
exit
|
10
10
|
;;
|
11
11
|
|
12
|
-
|
12
|
+
% if short_flag_exist? "-h"
|
13
13
|
--help )
|
14
|
-
|
14
|
+
% else
|
15
15
|
--help | -h )
|
16
|
-
|
16
|
+
% end
|
17
17
|
long_usage=yes
|
18
18
|
<%= function_name %>_usage
|
19
19
|
exit
|
@@ -0,0 +1,24 @@
|
|
1
|
+
# :command.normalize_input
|
2
|
+
normalize_input() {
|
3
|
+
local arg flags
|
4
|
+
|
5
|
+
while [[ $# -gt 0 ]]; do
|
6
|
+
arg="$1"
|
7
|
+
if [[ $arg =~ ^(--[a-zA-Z0-9_\-]+)=(.+)$ ]]; then
|
8
|
+
input+=("${BASH_REMATCH[1]}")
|
9
|
+
input+=("${BASH_REMATCH[2]}")
|
10
|
+
elif [[ $arg =~ ^(-[a-zA-Z0-9])=(.+)$ ]]; then
|
11
|
+
input+=("${BASH_REMATCH[1]}")
|
12
|
+
input+=("${BASH_REMATCH[2]}")
|
13
|
+
elif [[ $arg =~ ^-([a-zA-Z0-9][a-zA-Z0-9]+)$ ]]; then
|
14
|
+
flags="${BASH_REMATCH[1]}"
|
15
|
+
for (( i=0 ; i < ${#flags} ; i++ )); do
|
16
|
+
input+=("-${flags:i:1}")
|
17
|
+
done
|
18
|
+
else
|
19
|
+
input+=("$arg")
|
20
|
+
fi
|
21
|
+
|
22
|
+
shift
|
23
|
+
done
|
24
|
+
}
|
@@ -1,9 +1,9 @@
|
|
1
1
|
# :command.parse_requirements
|
2
|
-
|
2
|
+
% if root_command?
|
3
3
|
parse_requirements() {
|
4
|
-
|
4
|
+
% else
|
5
5
|
<%= function_name %>_parse_requirements() {
|
6
|
-
|
6
|
+
% end
|
7
7
|
<%= render(:fixed_flags_filter).indent 2 %>
|
8
8
|
<%= render(:environment_variables_filter).indent 2 %>
|
9
9
|
<%= render(:dependencies_filter).indent 2 %>
|
@@ -16,6 +16,6 @@ parse_requirements() {
|
|
16
16
|
<%= render(:whitelist_filter).indent 2 %>
|
17
17
|
}
|
18
18
|
|
19
|
-
|
19
|
+
% commands.each do |command|
|
20
20
|
<%= command.render :parse_requirements %>
|
21
|
-
|
21
|
+
% end
|
@@ -1,25 +1,25 @@
|
|
1
1
|
# :command.parse_requirements_case
|
2
|
-
|
3
|
-
|
4
|
-
|
2
|
+
% if args.any?
|
3
|
+
% condition = "if"
|
4
|
+
% args.each do |arg|
|
5
5
|
<%= condition %> [[ ! ${args[<%= arg.name %>]} ]]; then
|
6
6
|
args[<%= arg.name %>]=$1
|
7
7
|
shift
|
8
|
-
|
9
|
-
|
8
|
+
% condition = "elif"
|
9
|
+
% end
|
10
10
|
else
|
11
|
-
|
11
|
+
% if catch_all
|
12
12
|
other_args+=("$1")
|
13
13
|
shift
|
14
|
-
|
14
|
+
% else
|
15
15
|
printf "<%= strings[:invalid_argument] %>\n" "$key"
|
16
16
|
exit 1
|
17
|
-
|
17
|
+
% end
|
18
18
|
fi
|
19
|
-
|
19
|
+
% elsif catch_all
|
20
20
|
other_args+=("$1")
|
21
21
|
shift
|
22
|
-
|
22
|
+
% else
|
23
23
|
printf "<%= strings[:invalid_argument] %>\n" "$key"
|
24
24
|
exit 1
|
25
|
-
|
25
|
+
% end
|
@@ -2,21 +2,21 @@
|
|
2
2
|
while [[ $# -gt 0 ]]; do
|
3
3
|
key="$1"
|
4
4
|
case "$key" in
|
5
|
-
|
5
|
+
% flags.each do |flag|
|
6
6
|
<%= flag.render(:case).indent 2 %>
|
7
7
|
|
8
|
-
|
8
|
+
% end
|
9
9
|
|
10
10
|
-* )
|
11
|
-
|
11
|
+
% if catch_all
|
12
12
|
other_args+=("$1")
|
13
13
|
shift
|
14
14
|
;;
|
15
|
-
|
15
|
+
% else
|
16
16
|
printf "<%= strings[:invalid_flag] %>\n" "$key"
|
17
17
|
exit 1
|
18
18
|
;;
|
19
|
-
|
19
|
+
% end
|
20
20
|
|
21
21
|
* )
|
22
22
|
<%= render(:parse_requirements_case).indent 4 %>
|
@@ -1,10 +1,10 @@
|
|
1
1
|
# :command.required_flags_filter
|
2
|
-
|
2
|
+
% if required_flags.any?
|
3
3
|
argstring="$*"
|
4
|
-
|
5
|
-
|
4
|
+
% end
|
5
|
+
% required_flags.each do |flag|
|
6
6
|
if [[ <%= flag.aliases.map { |a| %Q["$argstring" != *#{a}*] }.join " && " %> ]]; then
|
7
7
|
printf "<%= strings[:missing_required_flag] % { usage: flag.usage_string } %>\n"
|
8
8
|
exit 1
|
9
9
|
fi
|
10
|
-
|
10
|
+
% end
|
@@ -1,14 +1,14 @@
|
|
1
1
|
# :command.usage_args
|
2
2
|
printf "<%= strings[:arguments] %>\n"
|
3
|
-
|
3
|
+
% if args.any?
|
4
4
|
|
5
|
-
|
5
|
+
% args.each do |arg|
|
6
6
|
<%= arg.render(:usage) %>
|
7
|
-
|
8
|
-
|
9
|
-
|
7
|
+
% end
|
8
|
+
% end
|
9
|
+
% if catch_all_help
|
10
10
|
|
11
11
|
echo " <%= catch_all_label %>"
|
12
12
|
printf "<%= catch_all_help.wrap(76).indent(4).sanitize_for_print %>\n"
|
13
13
|
echo
|
14
|
-
|
14
|
+
% end
|
@@ -1,18 +1,18 @@
|
|
1
1
|
# :command.usage_commands
|
2
|
-
|
2
|
+
% unless commands.first.group
|
3
3
|
printf "<%= strings[:commands] %>\n"
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
4
|
+
% end
|
5
|
+
% maxlen = command_names.map(&:size).max
|
6
|
+
% commands.each do |command|
|
7
|
+
% summary = command.summary
|
8
|
+
% summary = strings[:default_command_summary] % { summary: summary } if command.default
|
9
|
+
% if command.group
|
10
|
+
% if command.name == commands.first.name
|
11
11
|
printf "<%= strings[:group] % { group: command.group } %>\n"
|
12
|
-
|
12
|
+
% else
|
13
13
|
printf "\n<%= strings[:group] % { group: command.group } %>\n"
|
14
|
-
|
15
|
-
|
14
|
+
% end
|
15
|
+
% end
|
16
16
|
echo " <%= command.name.ljust maxlen %> <%= summary %>"
|
17
|
-
|
17
|
+
% end
|
18
18
|
echo
|
@@ -1,17 +1,17 @@
|
|
1
1
|
# :command.usage_fixed_flags
|
2
|
-
|
2
|
+
% if short_flag_exist? "-h"
|
3
3
|
echo " --help"
|
4
|
-
|
4
|
+
% else
|
5
5
|
echo " --help, -h"
|
6
|
-
|
6
|
+
% end
|
7
7
|
printf " <%= strings[:help_flag_text] %>\n"
|
8
8
|
echo
|
9
|
-
|
10
|
-
|
9
|
+
% if root_command?
|
10
|
+
% if short_flag_exist? "-v"
|
11
11
|
echo " --version"
|
12
|
-
|
12
|
+
% else
|
13
13
|
echo " --version, -v"
|
14
|
-
|
14
|
+
% end
|
15
15
|
printf " <%= strings[:version_flag_text] %>\n"
|
16
16
|
echo
|
17
|
-
|
17
|
+
% end
|
@@ -1,13 +1,13 @@
|
|
1
1
|
# :command.whitelist_filter
|
2
|
-
|
2
|
+
% whitelisted_args.each do |arg|
|
3
3
|
if [[ ! ${args[<%= arg.name %>]} =~ ^(<%= arg.allowed.join '|' %>)$ ]]; then
|
4
4
|
printf "%s\n" "<%= strings[:disallowed_argument] % { name: arg.name, allowed: arg.allowed.join(', ') } %>"
|
5
5
|
exit 1
|
6
6
|
fi
|
7
|
-
|
8
|
-
|
7
|
+
% end
|
8
|
+
% whitelisted_flags.each do |flag|
|
9
9
|
if [[ ! ${args[<%= flag.name %>]} =~ ^(<%= flag.allowed.join '|' %>)$ ]]; then
|
10
10
|
printf "%s\n" "<%= strings[:disallowed_flag] % { name: flag.name, allowed: flag.allowed.join(', ') } %>"
|
11
11
|
exit 1
|
12
12
|
fi
|
13
|
-
|
13
|
+
% end
|
@@ -1,6 +1,6 @@
|
|
1
1
|
# :flag.case
|
2
2
|
<%= aliases.join " | " %> )
|
3
|
-
|
3
|
+
% if arg
|
4
4
|
if [[ $2 ]]; then
|
5
5
|
args[<%= name %>]="$2"
|
6
6
|
shift
|
@@ -9,8 +9,8 @@
|
|
9
9
|
printf "%s\n" "<%= strings[:flag_requires_an_argument] % { name: name, usage: usage_string } %>"
|
10
10
|
exit 1
|
11
11
|
fi
|
12
|
-
|
12
|
+
% else
|
13
13
|
args[<%= name %>]=1
|
14
14
|
shift
|
15
|
-
|
15
|
+
% end
|
16
16
|
;;
|
@@ -1,10 +1,10 @@
|
|
1
1
|
# :flag.usage
|
2
2
|
echo " <%= usage_string extended: true %>"
|
3
3
|
printf "<%= help.wrap(76).indent(4).sanitize_for_print %>\n"
|
4
|
-
|
4
|
+
% if allowed
|
5
5
|
printf " <%= strings[:allowed] % { values: allowed.join(', ') } -%>\n"
|
6
|
-
|
7
|
-
|
6
|
+
% end
|
7
|
+
% if default
|
8
8
|
printf " <%= strings[:default] % { value: default } -%>\n"
|
9
|
-
|
9
|
+
% end
|
10
10
|
echo
|
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.6.
|
4
|
+
version: 0.6.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: 2021-
|
11
|
+
date: 2021-10-12 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: colsole
|
@@ -30,20 +30,14 @@ dependencies:
|
|
30
30
|
requirements:
|
31
31
|
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: '0.
|
34
|
-
- - ">="
|
35
|
-
- !ruby/object:Gem::Version
|
36
|
-
version: 0.1.2
|
33
|
+
version: '0.2'
|
37
34
|
type: :runtime
|
38
35
|
prerelease: false
|
39
36
|
version_requirements: !ruby/object:Gem::Requirement
|
40
37
|
requirements:
|
41
38
|
- - "~>"
|
42
39
|
- !ruby/object:Gem::Version
|
43
|
-
version: '0.
|
44
|
-
- - ">="
|
45
|
-
- !ruby/object:Gem::Version
|
46
|
-
version: 0.1.2
|
40
|
+
version: '0.2'
|
47
41
|
- !ruby/object:Gem::Dependency
|
48
42
|
name: mister_bin
|
49
43
|
requirement: !ruby/object:Gem::Requirement
|
@@ -128,6 +122,7 @@ files:
|
|
128
122
|
- lib/bashly/views/command/initialize.erb
|
129
123
|
- lib/bashly/views/command/inspect_args.erb
|
130
124
|
- lib/bashly/views/command/master_script.erb
|
125
|
+
- lib/bashly/views/command/normalize_input.erb
|
131
126
|
- lib/bashly/views/command/parse_requirements.erb
|
132
127
|
- lib/bashly/views/command/parse_requirements_case.erb
|
133
128
|
- lib/bashly/views/command/parse_requirements_while.erb
|
@@ -148,12 +143,17 @@ files:
|
|
148
143
|
- lib/bashly/views/environment_variable/usage.erb
|
149
144
|
- lib/bashly/views/flag/case.erb
|
150
145
|
- lib/bashly/views/flag/usage.erb
|
146
|
+
- lib/bashly/views/script/bash3_bouncer.erb
|
151
147
|
- lib/bashly/views/script/header.erb
|
152
148
|
- lib/bashly/views/script/wrapper.erb
|
153
149
|
homepage: https://github.com/dannyben/bashly
|
154
150
|
licenses:
|
155
151
|
- MIT
|
156
|
-
metadata:
|
152
|
+
metadata:
|
153
|
+
bug_tracker_uri: https://github.com/DannyBen/bashly/issues
|
154
|
+
changelog_uri: https://github.com/DannyBen/bashly/blob/master/CHANGELOG.md
|
155
|
+
homepage_uri: https://bashly.dannyb.co/
|
156
|
+
source_code_uri: https://github.com/DannyBen/bashly
|
157
157
|
post_install_message:
|
158
158
|
rdoc_options: []
|
159
159
|
require_paths:
|