shaddox 0.0.14 → 0.0.15
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/shaddox/shadow.rb +11 -1
- data/lib/shaddox/target.rb +2 -2
- data/lib/shaddox/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 419b93e06f0b3d5e130fd8cee8a2d4e0dc1571c0
|
4
|
+
data.tar.gz: c4b3e19104c9f25a8a6575b84ba7fedc924b405c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3ffcd10523a382ae5c6f68a714ceae7cbe0cab7ec9772f0fa76560e0ea0e3febe61b9ff6be2e36a0d94525e82144038d6780b36637a732476feb2a9d468e21f0
|
7
|
+
data.tar.gz: a92844b5bb77ed1f009a1a053eae6e8a3ebca19eacc08ed60828856fd657b3fd1ebbd8a163fd1cf1181fead39400ea4c0cd06ca5fabf6fb8f7383abe51213f23
|
data/lib/shaddox/shadow.rb
CHANGED
@@ -53,7 +53,15 @@ module Shaddox
|
|
53
53
|
FileUtils::mkdir_p(path.exp_path)
|
54
54
|
end
|
55
55
|
|
56
|
+
def ensure_git()
|
57
|
+
unless @git_installed
|
58
|
+
install 'git'
|
59
|
+
@git_installed = true
|
60
|
+
end
|
61
|
+
end
|
62
|
+
|
56
63
|
def repo_clone(repo_key, path)
|
64
|
+
ensure_git()
|
57
65
|
repo = @repos[repo_key]
|
58
66
|
cd path do
|
59
67
|
case repo.vcs
|
@@ -78,7 +86,8 @@ module Shaddox
|
|
78
86
|
end
|
79
87
|
raise "No installer specified for this target!" unless @installer
|
80
88
|
info "Ensuring #{package} is installed with #{@installer}", 1 if @verbose
|
81
|
-
|
89
|
+
package_installed = lambda { system("type #{package} >/dev/null 2>&1") }
|
90
|
+
unless package_installed.call()
|
82
91
|
case @installer
|
83
92
|
when :apt
|
84
93
|
sh "sudo apt-get install -y #{package}"
|
@@ -86,6 +95,7 @@ module Shaddox
|
|
86
95
|
sh "brew install #{package}"
|
87
96
|
end
|
88
97
|
end
|
98
|
+
raise "#{package} could not be installed." unless package_installed.call()
|
89
99
|
end
|
90
100
|
end
|
91
101
|
end
|
data/lib/shaddox/target.rb
CHANGED
@@ -121,6 +121,7 @@ module Shaddox
|
|
121
121
|
end
|
122
122
|
end
|
123
123
|
def exec(command, opts = {})
|
124
|
+
require 'highline/import'
|
124
125
|
exit_code = nil
|
125
126
|
@ssh.open_channel do |channel|
|
126
127
|
channel.request_pty do |c, success|
|
@@ -130,8 +131,7 @@ module Shaddox
|
|
130
131
|
if data =~ /\[sudo\]/ || data =~ /Password/i
|
131
132
|
warn "Target is asking for password: ", 1
|
132
133
|
$stdout.print data
|
133
|
-
|
134
|
-
pass = $stdin.gets.chomp
|
134
|
+
pass = ask("") { |q| q.echo = false }
|
135
135
|
channel.send_data "#{pass}\n"
|
136
136
|
else
|
137
137
|
$stdout.print data unless opts[:quiet]
|
data/lib/shaddox/version.rb
CHANGED