hobo-inviqa 0.0.7.pre.rc3 → 0.0.7
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.
- data/Gemfile.lock +4 -19
- data/Guardfile +2 -2
- data/Hobofile +1 -5
- data/bin/hobo +18 -12
- data/hobo.gemspec +0 -3
- data/lib/hobo.rb +1 -8
- data/lib/hobo/cli.rb +3 -14
- data/lib/hobo/error_handlers/debug.rb +2 -5
- data/lib/hobo/error_handlers/friendly.rb +8 -8
- data/lib/hobo/errors.rb +1 -11
- data/lib/hobo/helper/shell.rb +2 -3
- data/lib/hobo/helper/vm_command.rb +14 -164
- data/lib/hobo/lib/host_check.rb +6 -20
- data/lib/hobo/lib/host_check/deps.rb +4 -22
- data/lib/hobo/lib/host_check/git.rb +17 -41
- data/lib/hobo/lib/host_check/ruby.rb +20 -30
- data/lib/hobo/lib/host_check/vagrant.rb +6 -37
- data/lib/hobo/lib/s3sync.rb +44 -22
- data/lib/hobo/lib/seed/project.rb +4 -8
- data/lib/hobo/patches/slop.rb +2 -21
- data/lib/hobo/tasks/assets.rb +15 -12
- data/lib/hobo/tasks/deps.rb +6 -40
- data/lib/hobo/tasks/host.rb +19 -0
- data/lib/hobo/tasks/tools.rb +6 -10
- data/lib/hobo/tasks/vm.rb +11 -64
- data/lib/hobo/ui.rb +10 -27
- data/lib/hobo/util.rb +2 -36
- data/lib/hobo/version.rb +2 -2
- data/spec/hobo/asset_applicator_spec.rb +2 -2
- data/spec/hobo/cli_spec.rb +24 -35
- data/spec/hobo/config/file_spec.rb +3 -1
- data/spec/hobo/error_handlers/debug_spec.rb +5 -39
- data/spec/hobo/error_handlers/friendly_spec.rb +21 -38
- data/spec/hobo/help_formatter_spec.rb +3 -3
- data/spec/hobo/helpers/file_locator_spec.rb +2 -2
- data/spec/hobo/helpers/shell_spec.rb +2 -2
- data/spec/hobo/helpers/vm_command_spec.rb +24 -36
- data/spec/hobo/lib/s3sync_spec.rb +3 -6
- data/spec/hobo/lib/seed/project_spec.rb +3 -2
- data/spec/hobo/lib/seed/replacer_spec.rb +2 -1
- data/spec/hobo/lib/seed/seed_spec.rb +3 -2
- data/spec/hobo/logging_spec.rb +2 -2
- data/spec/hobo/metadata_spec.rb +2 -2
- data/spec/hobo/null_spec.rb +2 -2
- data/spec/hobo/paths_spec.rb +2 -1
- data/spec/hobo/ui_spec.rb +20 -104
- data/spec/spec_helper.rb +0 -1
- metadata +48 -57
- checksums.yaml +0 -15
- data/.editorconfig +0 -10
- data/lib/hobo/error_handlers/exit_code_map.rb +0 -16
- data/lib/hobo/helper/http_download.rb +0 -41
- data/lib/hobo/tasks/config.rb +0 -15
- data/lib/hobo/tasks/system.rb +0 -15
- data/lib/hobo/tasks/system/completions.rb +0 -76
- data/spec/hobo/util_spec.rb +0 -75
checksums.yaml
DELETED
@@ -1,15 +0,0 @@
|
|
1
|
-
---
|
2
|
-
!binary "U0hBMQ==":
|
3
|
-
metadata.gz: !binary |-
|
4
|
-
MjQzZmFjY2Y1M2FjNGMyZTgzMWE4YmExMTI1YTliY2NkYzNiMWExYw==
|
5
|
-
data.tar.gz: !binary |-
|
6
|
-
YWVkNDBkOGJkN2ViYjBmY2Y0ZTE5NjQxYWY2NWI5ZGNjMWQ2MWNmOA==
|
7
|
-
SHA512:
|
8
|
-
metadata.gz: !binary |-
|
9
|
-
NjU2ZWQ2ZWU3ODAwMWFlMmMwYmZkYjFlZjgwYzdiOGMzYmI3NzM3MWQ0Yzc4
|
10
|
-
YzNjMjk3NWYyNTQwY2JkYTZlNTI0NzNlODdhOTcwOTA2ODQ1ZDU4ZGI1YWZk
|
11
|
-
ZjZjYjgyMzBiYjE4YWM1ZWY4ZjgwNzQ3MzVjMTlmZDQxYmZmYzY=
|
12
|
-
data.tar.gz: !binary |-
|
13
|
-
MGE4MTNlMDI0NTQ1MzdlNTU3M2QxMjk1MzgzZThiNGYyMDQ4MGJlZjc3YmZl
|
14
|
-
ODJjMDhlNjUyMGNlZmY1NjE2YjgwNTM1NmY5NWJiZTY1ZWE0MWFmZjYzYWMw
|
15
|
-
MTE3MTBiNGRiMDk3MjA5ODBhMTNlOTBlNDU2YmY4YzkxOWY2ODY=
|
data/.editorconfig
DELETED
@@ -1,16 +0,0 @@
|
|
1
|
-
module Hobo
|
2
|
-
module ErrorHandlers
|
3
|
-
module ExitCodeMap
|
4
|
-
DEFAULT_EXIT_CODE = 128
|
5
|
-
EXIT_CODES = {
|
6
|
-
'Interrupt' => 1,
|
7
|
-
'Hobo::ExternalCommandError' => 3,
|
8
|
-
'Hobo::InvalidCommandOrOpt' => 4,
|
9
|
-
'Hobo::MissingArgumentsError' => 5,
|
10
|
-
'Hobo::UserError' => 6,
|
11
|
-
'Hobo::ProjectOnlyError' => 7,
|
12
|
-
'Hobo::HostCheckError' => 8
|
13
|
-
}
|
14
|
-
end
|
15
|
-
end
|
16
|
-
end
|
@@ -1,41 +0,0 @@
|
|
1
|
-
require 'net/http'
|
2
|
-
require 'uri'
|
3
|
-
|
4
|
-
module Hobo
|
5
|
-
module Helper
|
6
|
-
def http_download url, target_file, opts = {}
|
7
|
-
opts = { :progress => Hobo.method(:progress) }.merge(opts)
|
8
|
-
uri = URI.parse(url)
|
9
|
-
size = 0
|
10
|
-
http = Net::HTTP.new(uri.host, uri.port)
|
11
|
-
http.use_ssl = uri.scheme == 'https'
|
12
|
-
|
13
|
-
# TODO: May want to verify SSL validity...
|
14
|
-
# http://notetoself.vrensk.com/2008/09/verified-https-in-ruby/#comment-22252
|
15
|
-
http.verify_mode = OpenSSL::SSL::VERIFY_NONE
|
16
|
-
|
17
|
-
http.start do
|
18
|
-
begin
|
19
|
-
file = open(target_file, 'wb+')
|
20
|
-
http.request_get(uri.path) do |response|
|
21
|
-
size = response.content_length
|
22
|
-
response.read_body do |chunk|
|
23
|
-
file.write(chunk)
|
24
|
-
opts[:progress].call(
|
25
|
-
target_file,
|
26
|
-
chunk.length,
|
27
|
-
size,
|
28
|
-
:update
|
29
|
-
) if opts[:progress]
|
30
|
-
end
|
31
|
-
end
|
32
|
-
ensure
|
33
|
-
opts[:progress].call(target_file, 0, size, :finsh) if opts[:progress]
|
34
|
-
file.close
|
35
|
-
end
|
36
|
-
end
|
37
|
-
end
|
38
|
-
end
|
39
|
-
end
|
40
|
-
|
41
|
-
include Hobo::Helper
|
data/lib/hobo/tasks/config.rb
DELETED
@@ -1,15 +0,0 @@
|
|
1
|
-
desc "Configure hobo"
|
2
|
-
task :config do
|
3
|
-
config = Hobo.user_config
|
4
|
-
|
5
|
-
# Not required at present
|
6
|
-
# config.full_name = Hobo.ui.ask("Full name", :default => config.full_name).to_s
|
7
|
-
# config.email = Hobo.ui.ask("Email", :default => config.email).to_s
|
8
|
-
|
9
|
-
config[:aws] ||= {}
|
10
|
-
config.aws.access_key_id = Hobo.ui.ask("AWS access key ID", :default => config.aws.access_key_id).to_s
|
11
|
-
config.aws.secret_access_key = Hobo.ui.ask("AWS secret access key", :default => config.aws.secret_access_key).to_s
|
12
|
-
|
13
|
-
Hobo::Config::File.save(Hobo.user_config_file, config)
|
14
|
-
File.chmod(0600, Hobo.user_config_file)
|
15
|
-
end
|
data/lib/hobo/tasks/system.rb
DELETED
@@ -1,15 +0,0 @@
|
|
1
|
-
desc "System configuration related commands"
|
2
|
-
namespace :system do
|
3
|
-
|
4
|
-
desc "Check system configuration for potential problems"
|
5
|
-
task :check do
|
6
|
-
Hobo::Lib::HostCheck.check.each do |k,v|
|
7
|
-
if v == :ok
|
8
|
-
Hobo.ui.success "#{k}: OK"
|
9
|
-
else
|
10
|
-
Hobo.ui.error "#{k}: FAILED\n"
|
11
|
-
Hobo.ui.warning v.advice.gsub(/^/, ' ')
|
12
|
-
end
|
13
|
-
end
|
14
|
-
end
|
15
|
-
end
|
@@ -1,76 +0,0 @@
|
|
1
|
-
desc "System configuration related commands"
|
2
|
-
namespace :system do
|
3
|
-
|
4
|
-
desc "Shell completion related commands"
|
5
|
-
namespace :completions do
|
6
|
-
|
7
|
-
desc "Install shell completion helpers"
|
8
|
-
option '-f', '--fish', 'Install completions for FISH'
|
9
|
-
option '-b', '--bash', 'Install completions for Bash'
|
10
|
-
option '-z', '--zsh', 'Install completions for ZSH'
|
11
|
-
task "install" do |task|
|
12
|
-
if task.opts[:fish]
|
13
|
-
script = <<-EOF
|
14
|
-
function __hobo_completion -d "Create hobo completions"
|
15
|
-
set -l cache_dir "/tmp/fish_hobo_completion_cache"
|
16
|
-
mkdir -p $cache_dir
|
17
|
-
set -l hashed_pwd (ruby -r 'digest' -e 'puts Digest::MD5.hexdigest(`pwd`)')
|
18
|
-
set -l hobo_cache_file "$cache_dir/$hashed_pwd"
|
19
|
-
|
20
|
-
if not test -f "$hobo_cache_file"
|
21
|
-
hobo system completions fish > "$hobo_cache_file"
|
22
|
-
end
|
23
|
-
|
24
|
-
cat "$hobo_cache_file"
|
25
|
-
end
|
26
|
-
|
27
|
-
function __hobo_scope_test -d "Hobo scoped completion test"
|
28
|
-
set cmd (commandline -opc)
|
29
|
-
if [ "$cmd" = "$argv" ]
|
30
|
-
return 0
|
31
|
-
end
|
32
|
-
return 1
|
33
|
-
end
|
34
|
-
|
35
|
-
eval (__hobo_completion)
|
36
|
-
EOF
|
37
|
-
target = File.join(ENV['HOME'], '.config/fish/completions/hobo.fish')
|
38
|
-
FileUtils.mkdir_p(File.dirname(target))
|
39
|
-
File.write(target, script)
|
40
|
-
end
|
41
|
-
|
42
|
-
if task.opts[:bash]
|
43
|
-
raise "Bash completions not yet implemented"
|
44
|
-
end
|
45
|
-
|
46
|
-
if task.opts[:zsh]
|
47
|
-
raise "ZSH completions not yet implemented"
|
48
|
-
end
|
49
|
-
end
|
50
|
-
|
51
|
-
desc "Display FISH shell completion commands"
|
52
|
-
task :fish do
|
53
|
-
Hobo.cli.slop.options.each do |option|
|
54
|
-
short = option.short.nil? ? '' : "-s #{option.short}"
|
55
|
-
long = option.long.nil? ? '' : "-l #{option.long}"
|
56
|
-
arg = option.config[:argument] ? '' : '-x'
|
57
|
-
puts "complete #{arg} -c hobo #{short} #{long} --description '#{option.description}';"
|
58
|
-
end
|
59
|
-
|
60
|
-
map = Hobo.cli.help_formatter.command_map
|
61
|
-
map.each do |k, v|
|
62
|
-
next if v.description.nil? || v.description.empty?
|
63
|
-
k = k.split(':')
|
64
|
-
k.unshift 'hobo'
|
65
|
-
c = k.pop
|
66
|
-
puts "complete -x -c hobo -n '__hobo_scope_test #{k.join(' ')}' -a #{c} --description '#{v.description}';"
|
67
|
-
v.options.each do |option|
|
68
|
-
short = option.short.nil? ? '' : "-s #{option.short}"
|
69
|
-
long = option.long.nil? ? '' : "-l #{option.long}"
|
70
|
-
arg = option.config[:argument] ? '' : '-x'
|
71
|
-
puts "complete #{arg} -c hobo -n '__hobo_scope_test #{k.concat([c]).join(' ')}' #{short} #{long} --description '#{option.description}';"
|
72
|
-
end
|
73
|
-
end
|
74
|
-
end
|
75
|
-
end
|
76
|
-
end
|
data/spec/hobo/util_spec.rb
DELETED
@@ -1,75 +0,0 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
|
3
|
-
describe Hobo do
|
4
|
-
describe "in_project?" do
|
5
|
-
it "should return true if project path detected" do
|
6
|
-
Hobo.project_path = "test"
|
7
|
-
Hobo.in_project?.should be true
|
8
|
-
end
|
9
|
-
|
10
|
-
it "should return false if no project path detected" do
|
11
|
-
Hobo.project_path = false
|
12
|
-
Hobo.in_project?.should be false
|
13
|
-
end
|
14
|
-
end
|
15
|
-
|
16
|
-
describe "progress" do
|
17
|
-
def progress_mock file, increment, total, type
|
18
|
-
out = double(StringIO.new).as_null_object
|
19
|
-
out.stub(:tty?).and_return(true)
|
20
|
-
Hobo.progress(file, increment, total, type, :throttle_rate => nil, :output => out)
|
21
|
-
end
|
22
|
-
|
23
|
-
before do
|
24
|
-
Hobo.project_bar_cache = {}
|
25
|
-
end
|
26
|
-
|
27
|
-
it "should create new progress bar if one does not exist" do
|
28
|
-
bar = progress_mock("test", 0, 10, :update)
|
29
|
-
bar.to_s.should match /^test.*0%/
|
30
|
-
end
|
31
|
-
|
32
|
-
it "should force width to 79 if windows" do
|
33
|
-
Gem.should_receive(:win_platform?).and_return(true)
|
34
|
-
bar = progress_mock("test:79", 0, 10, :update)
|
35
|
-
bar.to_s.length.should eq 79
|
36
|
-
end
|
37
|
-
|
38
|
-
it "should update progress bar if type :update" do
|
39
|
-
bar = progress_mock("test:update", 0, 10, :update)
|
40
|
-
bar.to_s.should match /^test:update.*0%/
|
41
|
-
|
42
|
-
Hobo.progress("test:update", 1, 10, :update)
|
43
|
-
bar.to_s.should match /^test.update.*10%/
|
44
|
-
end
|
45
|
-
|
46
|
-
it "should increment progress by specified amount if type :update" do
|
47
|
-
bar = progress_mock("test:increment", 0, 10, :update)
|
48
|
-
bar.to_s.should match /^test:increment.*0%/
|
49
|
-
|
50
|
-
Hobo.progress("test:increment", 1, 10, :update)
|
51
|
-
bar.to_s.should match /^test:increment.*10%/
|
52
|
-
|
53
|
-
Hobo.progress("test:increment", 1, 10, :update)
|
54
|
-
bar.to_s.should match /^test:increment.*20%/
|
55
|
-
end
|
56
|
-
|
57
|
-
it "should finalize progress bar if type :finish" do
|
58
|
-
bar = progress_mock("test:finish", 0, 10, :update)
|
59
|
-
bar.to_s.should match /^test:finish.*0%/
|
60
|
-
Hobo.progress("test:finish", 10, 10, :update)
|
61
|
-
Hobo.progress("test:finish", 10, 10, :finish)
|
62
|
-
bar.to_s.should match /^test:finish.*100%.*Time/
|
63
|
-
end
|
64
|
-
|
65
|
-
it "should set fixed format" do
|
66
|
-
bar = progress_mock("test:format", 1, 10, :update)
|
67
|
-
bar.to_s.should match /^test:format \[=+\s+\]\s+10%\s+ETA: 00:00:00/
|
68
|
-
end
|
69
|
-
|
70
|
-
it "should use filename as title" do
|
71
|
-
bar = progress_mock("some/path/to/filename.ext", 1, 10, :update)
|
72
|
-
bar.to_s.should match /^filename\.ext/
|
73
|
-
end
|
74
|
-
end
|
75
|
-
end
|