hobo-inviqa 0.0.7.pre.rc3 → 0.0.7
Sign up to get free protection for your applications and to get access to all the features.
- 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
|