Pistos-emerge-gem 0.3.3 → 0.3.4
Sign up to get free protection for your applications and to get access to all the features.
- data/lib/emerge-gem.rb +22 -7
- metadata +1 -1
data/lib/emerge-gem.rb
CHANGED
@@ -9,6 +9,7 @@ class EmergeGem
|
|
9
9
|
puts " -h --help show usage"
|
10
10
|
puts " --portage-base-dir (default /usr/local/portage)"
|
11
11
|
puts " --portage-path relative to portage base dir (default dev-ruby)"
|
12
|
+
puts " --verbose print more details about work being done"
|
12
13
|
exit 1
|
13
14
|
end
|
14
15
|
|
@@ -30,6 +31,8 @@ class EmergeGem
|
|
30
31
|
portage_base_dir = arg
|
31
32
|
when '--portage-path'
|
32
33
|
portage_path = arg
|
34
|
+
when '-v', '--verbose'
|
35
|
+
@verbose = true
|
33
36
|
else
|
34
37
|
if collecting_emerge_options
|
35
38
|
@emerge_options << arg
|
@@ -44,11 +47,16 @@ class EmergeGem
|
|
44
47
|
end
|
45
48
|
|
46
49
|
@ebuild_dest ||= "#{portage_base_dir}/#{portage_path}"
|
50
|
+
|
51
|
+
@eix_installed = system( 'which eix > /dev/null' )
|
52
|
+
if @verbose && @eix_installed
|
53
|
+
puts "eix detected"
|
54
|
+
end
|
47
55
|
end
|
48
56
|
|
49
57
|
def run
|
50
|
-
check_local_gems
|
51
58
|
gather_ebuilds
|
59
|
+
check_local_gems
|
52
60
|
write_ebuilds
|
53
61
|
digest_ebuilds
|
54
62
|
emerge
|
@@ -56,13 +64,12 @@ class EmergeGem
|
|
56
64
|
|
57
65
|
def check_local_gems
|
58
66
|
@gems.each do |gem|
|
59
|
-
|
60
|
-
|
61
|
-
next if ! gem_installed || ! eix_installed
|
67
|
+
next if ! EmergeGem.gem_installed?( gem ) || ! eix_installed
|
68
|
+
if @verbose; puts "#{gem} gem installed"; end
|
62
69
|
|
63
70
|
puts "(checking if #{gem} has been installed with Portage)"
|
64
|
-
package_installed
|
65
|
-
|
71
|
+
next if EmergeGem.package_installed? gem
|
72
|
+
if @verbose; puts "#{gem} package not installed with Portage"; end
|
66
73
|
|
67
74
|
puts "#{gem} seems to be installed via gem and not Portage."
|
68
75
|
puts "Uninstall the #{gem} gem before emerging? [y/n]"
|
@@ -73,6 +80,14 @@ class EmergeGem
|
|
73
80
|
end
|
74
81
|
end
|
75
82
|
|
83
|
+
def self.gem_installed?( gem_name )
|
84
|
+
system "gem list -l #{gem_name} | egrep '^#{gem_name} ' > /dev/null"
|
85
|
+
end
|
86
|
+
|
87
|
+
def self.package_installed?( package_name )
|
88
|
+
system "eix -Ie --only-names #{package_name} | egrep '#{package_name}$' > /dev/null"
|
89
|
+
end
|
90
|
+
|
76
91
|
def gather_ebuilds
|
77
92
|
@ebuilds = {}
|
78
93
|
while @gems.any?
|
@@ -108,7 +123,7 @@ class EmergeGem
|
|
108
123
|
|
109
124
|
def emerge
|
110
125
|
ebuild_names = @ebuilds.values.map { |e| e.name }.join( ' ' )
|
111
|
-
shell "emerge #{@emerge_options} #{ebuild_names}"
|
126
|
+
shell "emerge #{@emerge_options.join( ' ' )} #{ebuild_names}"
|
112
127
|
end
|
113
128
|
|
114
129
|
def shell( command )
|