gem-nice-install 0.1.0 → 0.2.0
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/README.md
CHANGED
@@ -8,6 +8,14 @@ You don't need to do nothing special, just use 'gem install' as you always do. g
|
|
8
8
|
|
9
9
|
Please note, that the currently, only Fedora is supported. However, it should be pretty forward to add support for your favorite system in similar manner.
|
10
10
|
|
11
|
+
## bundler
|
12
|
+
|
13
|
+
To make bundler to use this gem as well, you need to load the rubygems_plugin before. The easiest way is to make an alias in your `~/.bashrc` or so:
|
14
|
+
|
15
|
+
```
|
16
|
+
alias bundle='RUBYOPT="-rrubygems/nice_install" bundle'
|
17
|
+
```
|
18
|
+
|
11
19
|
## license
|
12
20
|
|
13
21
|
This software is licensed under terms of MIT license.
|
@@ -11,6 +11,8 @@ module Gem
|
|
11
11
|
module Nice
|
12
12
|
require 'rubygems/nice_install/distro_guesser'
|
13
13
|
|
14
|
+
include Gem::UserInteraction
|
15
|
+
|
14
16
|
def build_extensions
|
15
17
|
super
|
16
18
|
rescue ExtensionBuildError => e
|
@@ -29,6 +31,7 @@ module Gem
|
|
29
31
|
end
|
30
32
|
|
31
33
|
unless missing_deps.empty?
|
34
|
+
say "Installing native dependencies for Gem '#{spec.name}': #{missing_deps.join ' '}"
|
32
35
|
unless ext_installer.install_ext_dependencies_for(spec.name, missing_deps)
|
33
36
|
raise Gem::InstallError, "Failed to install native dependencies for '#{spec.name}'."
|
34
37
|
end
|
@@ -1,6 +1,8 @@
|
|
1
1
|
require 'yaml'
|
2
2
|
module Gem::Installer::Nice
|
3
3
|
class BaseExtInstaller
|
4
|
+
include Gem::UserInteraction
|
5
|
+
|
4
6
|
def default_ext_dependencies
|
5
7
|
raise NotImplementedError
|
6
8
|
end
|
@@ -28,7 +30,7 @@ module Gem::Installer::Nice
|
|
28
30
|
|
29
31
|
def get_deps(gem)
|
30
32
|
load_dep_files
|
31
|
-
@deps["gems"][gem]
|
33
|
+
@deps["gems"][gem] || []
|
32
34
|
end
|
33
35
|
|
34
36
|
private
|
@@ -18,9 +18,29 @@ module Gem::Installer::Nice
|
|
18
18
|
end
|
19
19
|
|
20
20
|
def install_ext_dependencies_for gem_name, deps
|
21
|
-
|
22
|
-
puts deps.join ' '
|
23
|
-
system("sudo yum install #{deps.join ' '}")
|
21
|
+
install_using_packagekit deps
|
24
22
|
end
|
23
|
+
|
24
|
+
private
|
25
|
+
|
26
|
+
def install_using_yum(names=[])
|
27
|
+
system "su -c 'yum install #{names.join(' ')}'"
|
28
|
+
end
|
29
|
+
|
30
|
+
def install_using_packagekit(names=[])
|
31
|
+
begin
|
32
|
+
require 'dbus'
|
33
|
+
session_bus = DBus::SessionBus.instance
|
34
|
+
pkg_kit = session_bus.introspect("org.freedesktop.PackageKit", "/org/freedesktop/PackageKit")
|
35
|
+
pkg_kit['org.freedesktop.PackageKit.Modify'].InstallPackageNames(0, names, 'show-confirm-install')
|
36
|
+
# DBus is not availabe in non-X environment.
|
37
|
+
rescue Errno::ENOENT
|
38
|
+
install_using_yum names
|
39
|
+
rescue LoadError
|
40
|
+
say "To use PackageKit installation, 'ruby-dbus' package needs to be installed. (yum install rubygem-ruby-dbus)"
|
41
|
+
install_using_yum names
|
42
|
+
end
|
43
|
+
end
|
44
|
+
|
25
45
|
end
|
26
46
|
end
|
metadata
CHANGED
@@ -1,17 +1,18 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: gem-nice-install
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
8
8
|
- Vít Ondruch
|
9
9
|
- Bohuslav Kabrda
|
10
10
|
- Ivan Nečas
|
11
|
+
- Michal Fojtik
|
11
12
|
autorequire:
|
12
13
|
bindir: bin
|
13
14
|
cert_chain: []
|
14
|
-
date: 2012-10-
|
15
|
+
date: 2012-10-26 00:00:00.000000000 Z
|
15
16
|
dependencies: []
|
16
17
|
description: ! 'A RubyGems plugin that improves gem installation user experience.
|
17
18
|
If binary extension build fails,
|
@@ -27,9 +28,9 @@ files:
|
|
27
28
|
- README.md
|
28
29
|
- MIT
|
29
30
|
- data/fedora.yml
|
30
|
-
- lib/rubygems/nice_install/fedora_ext_installer.rb
|
31
|
-
- lib/rubygems/nice_install/base_ext_installer.rb
|
32
31
|
- lib/rubygems/nice_install/distro_guesser.rb
|
32
|
+
- lib/rubygems/nice_install/base_ext_installer.rb
|
33
|
+
- lib/rubygems/nice_install/fedora_ext_installer.rb
|
33
34
|
- lib/rubygems/nice_install.rb
|
34
35
|
- lib/rubygems_plugin.rb
|
35
36
|
homepage: https://github.com/voxik/gem-nice-install
|