rbcli 0.2.7 → 0.2.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/CHANGELOG.md +21 -1
- data/Gemfile.lock +3 -3
- data/README.md +1 -1
- data/exe/rbcli +2 -2
- data/lib/rbcli-tool/project.rb +2 -2
- data/lib/rbcli-tool/util.rb +2 -0
- data/lib/rbcli.rb +1 -0
- data/lib/rbcli/features/userconfig.rb +2 -2
- data/lib/rbcli/util/msg.rb +55 -0
- data/lib/rbcli/version.rb +1 -1
- data/skeletons/micro/executable +2 -2
- data/skeletons/mini/executable +5 -4
- data/skeletons/project/config/storage.rb +3 -3
- data/skeletons/project/exe/executable +1 -1
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a6b4a98c7a6e1974987798099020dbb037a5966f1b463832a23caed9dcf3e3f6
|
4
|
+
data.tar.gz: c4dba14eeb1fc10a17022b0082b3f6a8d3679de8a4f9d292d34c4d35547ac7d9
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 62db4643f55cd2c8044441ca209c1ee9d1e8b6377b0c7d09e5bf6015328b0b6291fb8b57f974c2c584faa838b7325f508ddf81394f90cc0d5cc49d8a32183c32
|
7
|
+
data.tar.gz: d2bd43820d8f6ab88424f96f0fb5767312d9267cd06782ff060400c41759e801f7d36828919e084b16650b65749519ac581145850ee7381f007e2e2e3103d084
|
data/CHANGELOG.md
CHANGED
@@ -1,10 +1,30 @@
|
|
1
1
|
# Changelog
|
2
2
|
|
3
|
+
## 0.2.8 (Nov 7, 2018)
|
4
|
+
|
5
|
+
### Features
|
6
|
+
|
7
|
+
* Added a standardized message I/O system
|
8
|
+
|
9
|
+
### Improvements
|
10
|
+
|
11
|
+
* Enabled the safe usage of anchors in YAML config files
|
12
|
+
* Improved the method of determining the script name to be more portable across OS'es
|
13
|
+
|
14
|
+
### Bugfixes
|
15
|
+
|
16
|
+
* Fixed an error which caused RBCli to crash when using `local_state`
|
17
|
+
* Fixed a bug which caused the `rbcli init` command to occassionally fail for mini and micro projects
|
18
|
+
|
19
|
+
### Changes
|
20
|
+
|
21
|
+
* Changed the `rbcli init` helptext to match the order of complexity of projects (standard -> mini -> micro)
|
22
|
+
|
3
23
|
## 0.2.7 (Oct 17, 2018)
|
4
24
|
|
5
25
|
### Improvements
|
26
|
+
|
6
27
|
* Added a dev mode for scripts that allows using a local RBCli copy instead of requiring the gem to be installed
|
7
|
-
* Added a
|
8
28
|
|
9
29
|
### Bugfixes
|
10
30
|
|
data/Gemfile.lock
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
rbcli (0.2.
|
4
|
+
rbcli (0.2.8)
|
5
5
|
aws-sdk-dynamodb (~> 1.6)
|
6
6
|
colorize (~> 0.8)
|
7
7
|
deep_merge (~> 1.2)
|
@@ -18,8 +18,8 @@ GEM
|
|
18
18
|
addressable (2.5.2)
|
19
19
|
public_suffix (>= 2.0.2, < 4.0)
|
20
20
|
aws-eventstream (1.0.1)
|
21
|
-
aws-partitions (1.
|
22
|
-
aws-sdk-core (3.
|
21
|
+
aws-partitions (1.106.0)
|
22
|
+
aws-sdk-core (3.32.0)
|
23
23
|
aws-eventstream (~> 1.0)
|
24
24
|
aws-partitions (~> 1.0)
|
25
25
|
aws-sigv4 (~> 1.0)
|
data/README.md
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
RBCli is currently in Alpha stages of development. All releases can be considered stable, though breaking changes may be made between versions.
|
4
4
|
|
5
|
-
Latest Release: v0.2.
|
5
|
+
Latest Release: v0.2.8 (Nov 7, 2018) -- See the [changelog][changelog] for complete details.
|
6
6
|
|
7
7
|
[You can find the Official Documentation for RBCli Here.][documentation_home]
|
8
8
|
|
data/exe/rbcli
CHANGED
@@ -80,7 +80,7 @@ Micro: A single-file, minimal RBCli project. Similar to a mini project, but o
|
|
80
80
|
EOF
|
81
81
|
|
82
82
|
parameter :name, 'Name of project to generate', type: :string, default: File.basename(Dir.pwd), required: true, prompt: 'Enter a name'
|
83
|
-
parameter :type, 'Specify project type', type: :string, permitted: %w(standard micro
|
83
|
+
parameter :type, 'Specify project type', type: :string, permitted: %w(standard mini micro), default: 'standard'
|
84
84
|
parameter :description, 'A description of the project', type: :string, default: 'TODO: Description goes here'
|
85
85
|
|
86
86
|
action do |params, args, global_opts, config|
|
@@ -112,7 +112,7 @@ EOF
|
|
112
112
|
if success
|
113
113
|
puts "\nInitialization Complete!\n"
|
114
114
|
else
|
115
|
-
puts "\nAn RBCli Project already exists in the current directory tree
|
115
|
+
puts "\nAn RBCli Project already exists in the current or specified directory tree. Please delete the project or run this command from a different directory.\n"
|
116
116
|
end
|
117
117
|
end
|
118
118
|
end
|
data/lib/rbcli-tool/project.rb
CHANGED
@@ -79,12 +79,12 @@ module RBCliTool
|
|
79
79
|
|
80
80
|
def create_mini force = false
|
81
81
|
return false if project_exists? and not force
|
82
|
-
RBCliTool.cp_file @minipath, @dest, @template_vars
|
82
|
+
RBCliTool.cp_file @minipath, "#{@dest}/#{@template_vars[:cmdname]}", @template_vars
|
83
83
|
end
|
84
84
|
|
85
85
|
def create_micro force = false
|
86
86
|
return false if project_exists? and not force
|
87
|
-
RBCliTool.cp_file @micropath, @dest, @template_vars
|
87
|
+
RBCliTool.cp_file @micropath, "#{@dest}/#{@template_vars[:cmdname]}", @template_vars
|
88
88
|
end
|
89
89
|
|
90
90
|
def exists?
|
data/lib/rbcli-tool/util.rb
CHANGED
@@ -36,6 +36,7 @@ module RBCliTool
|
|
36
36
|
dest = "#{dest}#{src.split('/')[-1]}" if dest.end_with? '/'
|
37
37
|
if File.exists? dest
|
38
38
|
puts "File #{dest} already exists. Please delete it and try again."
|
39
|
+
false
|
39
40
|
else
|
40
41
|
print "Generating file " + dest + " ... "
|
41
42
|
|
@@ -48,6 +49,7 @@ module RBCliTool
|
|
48
49
|
|
49
50
|
FileUtils.rm_f "#{File.dirname(dest)}/.keep" if File.exists? "#{File.dirname(dest)}/.keep"
|
50
51
|
puts "Done!"
|
52
|
+
true
|
51
53
|
end
|
52
54
|
end
|
53
55
|
|
data/lib/rbcli.rb
CHANGED
@@ -37,6 +37,7 @@ require 'rbcli/version'
|
|
37
37
|
# UTILS
|
38
38
|
require 'rbcli/util/hash_deep_symbolize'
|
39
39
|
require 'rbcli/util/deprecation_warning'
|
40
|
+
require 'rbcli/util/msg'
|
40
41
|
#require 'rbcli/util/string_colorize' # We are using the colorize gem instead. The code is kept here for reference.
|
41
42
|
# END UTILS
|
42
43
|
|
@@ -111,13 +111,13 @@ module Rbcli::Config
|
|
111
111
|
@config_text << "\n\n" << text if text
|
112
112
|
|
113
113
|
@config_defaults ||= {}
|
114
|
-
@config_defaults.deep_merge! YAML
|
114
|
+
@config_defaults.deep_merge! YAML.safe_load(@config_text, [], [], true).deep_symbolize!
|
115
115
|
@loaded = false
|
116
116
|
end
|
117
117
|
|
118
118
|
def self.load
|
119
119
|
if (! @config_file.nil?) and File.exists? @config_file
|
120
|
-
@config = YAML
|
120
|
+
@config = YAML.safe_load(File.read(@config_file), [], [], true).deep_symbolize!
|
121
121
|
@config.deep_merge! @config_defaults if @merge_defaults
|
122
122
|
elsif @userfile_required
|
123
123
|
puts "User's config file not found at #{@config_file}. Please run this tool with the `--generate-config` option to generate it."
|
@@ -0,0 +1,55 @@
|
|
1
|
+
module Rbcli::Msg
|
2
|
+
def self.print message, log: false, color: nil
|
3
|
+
Rbcli::log.info {message} if log
|
4
|
+
STDOUT.print message
|
5
|
+
end
|
6
|
+
|
7
|
+
def self.puts message, log: false, color: nil
|
8
|
+
Rbcli::log.info {message} if log
|
9
|
+
message = message.colorize(color) if Rbcli::config[:colorize_output]
|
10
|
+
STDOUT.puts message
|
11
|
+
end
|
12
|
+
|
13
|
+
def self.err message, log: false, color: :yellow
|
14
|
+
Rbcli::log.warn {message} if log
|
15
|
+
message = message.colorize(color) if Rbcli::config[:colorize_output]
|
16
|
+
STDERR.puts message
|
17
|
+
end
|
18
|
+
|
19
|
+
def self.fatal message, log: true, color: :red, exitcode: 1
|
20
|
+
Rbcli::log.fatal {"Exited with the message: " + message} if log
|
21
|
+
message = "Error: #{message}"
|
22
|
+
message = message.colorize(color) if Rbcli::config[:colorize_output]
|
23
|
+
STDERR.puts message
|
24
|
+
exit exitcode
|
25
|
+
end
|
26
|
+
|
27
|
+
@triggernests = 0
|
28
|
+
|
29
|
+
def self.triggered msg, msg_success, msg_fail = nil, fatality_msg = nil, log: false, success_color: :green, fail_color: :red, newline: false, &block
|
30
|
+
@triggernests.times {msg = ' ' + msg}
|
31
|
+
@triggernests += 1
|
32
|
+
|
33
|
+
Rbcli::Msg.send ((newline) ? :puts : :print), msg
|
34
|
+
result = yield
|
35
|
+
tmsg = (result or msg_fail.nil?) ? msg_success : msg_fail
|
36
|
+
tcol = (result or msg_fail.nil?) ? success_color : fail_color
|
37
|
+
Rbcli::Msg.puts tmsg, log: log, color: tcol
|
38
|
+
Rbcli::Msg.fatal fatality_msg, log: log if fatality_msg
|
39
|
+
|
40
|
+
@triggernests -= 1
|
41
|
+
end
|
42
|
+
|
43
|
+
def self.yesno question, default_to_yes: false
|
44
|
+
yes_display = (default_to_yes) ? 'Y' : 'y'
|
45
|
+
no_display = (default_to_yes) ? 'n' : 'N'
|
46
|
+
Rbcli::Msg.print "#{question} (#{yes_display}/#{no_display}): ", log: false
|
47
|
+
if default_to_yes
|
48
|
+
answer = !gets.chomp.casecmp('n').zero?
|
49
|
+
else
|
50
|
+
answer = gets.chomp.casecmp('y').zero?
|
51
|
+
end
|
52
|
+
Rbcli::log.info {"Question: #{question}. Answer: #{answer}"}
|
53
|
+
answer
|
54
|
+
end
|
55
|
+
end
|
data/lib/rbcli/version.rb
CHANGED
data/skeletons/micro/executable
CHANGED
@@ -14,7 +14,7 @@ require (ENV['RBCLI_ENV'] == 'development') ? ENV['RBCLI_DEVPATH'] || 'rbcli' :
|
|
14
14
|
#########################
|
15
15
|
Rbcli::Configurate.me do
|
16
16
|
## Script Name -- (Required) -- This line identifies the tool's executable on the command line.
|
17
|
-
scriptname
|
17
|
+
scriptname File.basename(__FILE__)
|
18
18
|
|
19
19
|
## Version Number -- (Required)
|
20
20
|
version '0.1.0'
|
@@ -85,7 +85,7 @@ Rbcli::Configurate.storage do
|
|
85
85
|
# Local State Storage
|
86
86
|
###
|
87
87
|
|
88
|
-
## Local State -- (Optional) -- Creates a hash that is automatically saved to a file locally for state persistance. It is accessible to all commands at Rbcli.
|
88
|
+
## Local State -- (Optional) -- Creates a hash that is automatically saved to a file locally for state persistance. It is accessible to all commands at Rbcli.local_state[:yourkeyhere]
|
89
89
|
#local_state '/var/mytool/localstate', force_creation: true, halt_on_error: true
|
90
90
|
|
91
91
|
|
data/skeletons/mini/executable
CHANGED
@@ -28,7 +28,7 @@ Rbcli::Configurate.me do
|
|
28
28
|
## Script Name -- (Required) -- This line identifies the tool's executable on the command line.
|
29
29
|
# To change it, rename this file to the command you want and this will pick up that name automatically.
|
30
30
|
# You can change it manually if needed, but this should work for most cases.
|
31
|
-
scriptname
|
31
|
+
scriptname File.basename(__FILE__)
|
32
32
|
|
33
33
|
## Version Number -- (Required)
|
34
34
|
version '0.1.0'
|
@@ -173,13 +173,14 @@ end
|
|
173
173
|
###############################
|
174
174
|
Rbcli::Configurate.storage do
|
175
175
|
###
|
176
|
-
# Local State Storage
|
176
|
+
# Local State Storage -- (Optional)
|
177
177
|
###
|
178
178
|
# Local state storage creates a hash that is automatically saved to a file locally for state persistance.
|
179
|
-
# It is accessible to all commands at: Rbcli.
|
179
|
+
# It is accessible to all commands at: Rbcli.local_state[:yourkeyhere]
|
180
180
|
#
|
181
181
|
# Note that every update to the top level of this hash will trigger a save, and updating nested hashes will not.
|
182
|
-
# If you need to update nested hashes, you can trigger a save manually by calling `Rbcli.
|
182
|
+
# If you need to update nested hashes, you can trigger a save manually by calling `Rbcli.local_state.commit`.
|
183
|
+
# It is accessible to all commands at: Rbcli.local_state[:yourkeyhere]
|
183
184
|
# Please see the documentation for full usage details.
|
184
185
|
###
|
185
186
|
|
@@ -9,11 +9,11 @@ Rbcli::Configurate.storage do
|
|
9
9
|
# Local State Storage -- (Optional)
|
10
10
|
###
|
11
11
|
# Local state storage creates a hash that is automatically saved to a file locally for state persistance.
|
12
|
-
# It is accessible to all commands at: Rbcli.
|
12
|
+
# It is accessible to all commands at: Rbcli.local_state[:yourkeyhere]
|
13
13
|
#
|
14
14
|
# Note that every update to the top level of this hash will trigger a save, and updating nested hashes will not.
|
15
|
-
# If you need to update nested hashes, you can trigger a save manually by calling `Rbcli.
|
16
|
-
# It is accessible to all commands at: Rbcli.
|
15
|
+
# If you need to update nested hashes, you can trigger a save manually by calling `Rbcli.local_state.commit`.
|
16
|
+
# It is accessible to all commands at: Rbcli.local_state[:yourkeyhere]
|
17
17
|
# Please see the documentation for full usage details.
|
18
18
|
###
|
19
19
|
|
@@ -31,7 +31,7 @@ Rbcli::Configurate.me do
|
|
31
31
|
## Script Name -- (Required) -- This line identifies the tool's executable on the command line.
|
32
32
|
# To change it, rename this file to the command you want and this will pick up that name automatically.
|
33
33
|
# You can change it manually if needed, but this should work for most cases.
|
34
|
-
scriptname
|
34
|
+
scriptname File.basename(__FILE__)
|
35
35
|
|
36
36
|
## Version Number -- (Required)
|
37
37
|
# Here we reference the same constant that we set for our Gem. If not using Rubygems you can change this to
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rbcli
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.8
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Andrew Khoury
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-
|
11
|
+
date: 2018-11-07 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -309,6 +309,7 @@ files:
|
|
309
309
|
- lib/rbcli/state_storage/remotestate_dynamodb.rb
|
310
310
|
- lib/rbcli/util/deprecation_warning.rb
|
311
311
|
- lib/rbcli/util/hash_deep_symbolize.rb
|
312
|
+
- lib/rbcli/util/msg.rb
|
312
313
|
- lib/rbcli/util/string_colorize.rb
|
313
314
|
- lib/rbcli/util/trollop.rb
|
314
315
|
- lib/rbcli/version.rb
|