[DRE-commits] [librarian-puppet] 46/97: Issue #134 Check for puppet executable instead of gem

Stig Sandbeck Mathisen ssm at debian.org
Tue Mar 11 12:12:49 UTC 2014


This is an automated email from the git hooks/post-receive script.

ssm pushed a commit to branch master
in repository librarian-puppet.

commit e75d5408f0d25b0441aa327d993e102b614864c7
Author: Carlos Sanchez <csanchez at maestrodev.com>
Date:   Thu Jan 2 21:22:37 2014 +0100

    Issue #134 Check for puppet executable instead of gem
---
 lib/librarian/puppet.rb              | 20 ++++++++++++++++----
 lib/librarian/puppet/source/forge.rb |  2 +-
 lib/librarian/puppet/source/git.rb   |  1 +
 3 files changed, 18 insertions(+), 5 deletions(-)

diff --git a/lib/librarian/puppet.rb b/lib/librarian/puppet.rb
index 9c51444..3ddec44 100644
--- a/lib/librarian/puppet.rb
+++ b/lib/librarian/puppet.rb
@@ -1,16 +1,28 @@
 require 'librarian'
 require 'fileutils'
+require 'open3'
+
+status = nil
+puppet_version = nil
 
 begin
-  require 'puppet'
-rescue LoadError
+  Open3.popen3('puppet --version') {|stdin, stdout, stderr, wait_thr|
+    pid = wait_thr.pid # pid of the started process.
+    puppet_version = stdout.read
+    status = wait_thr.value # Process::Status object returned.
+  }
+rescue
+end
+
+if status.nil? or status.exitstatus != 0
   $stderr.puts <<-EOF
-Unable to load puppet. Either install it using native packages for your
-platform (eg .deb, .rpm, .dmg, etc) or as a gem (gem install puppet).
+Unable to load puppet. Please install it using native packages for your platform (eg .deb, .rpm, .dmg, etc).
 EOF
   exit 1
 end
 
+PUPPET_VERSION=puppet_version.split(' ').first.strip
+
 require 'librarian/puppet/extension'
 require 'librarian/puppet/version'
 
diff --git a/lib/librarian/puppet/source/forge.rb b/lib/librarian/puppet/source/forge.rb
index 0e40436..99bd59a 100644
--- a/lib/librarian/puppet/source/forge.rb
+++ b/lib/librarian/puppet/source/forge.rb
@@ -107,7 +107,7 @@ module Librarian
 
           def check_puppet_module_options
             min_version    = Gem::Version.create('2.7.13')
-            puppet_version = Gem::Version.create(`puppet --version`.split(' ').first.strip.gsub('-', '.'))
+            puppet_version = Gem::Version.create(PUPPET_VERSION.gsub('-', '.'))
 
             if puppet_version < min_version
               raise Error, "To get modules from the forge, we use the puppet faces module command. For this you need at least puppet version 2.7.13 and you have #{puppet_version}"
diff --git a/lib/librarian/puppet/source/git.rb b/lib/librarian/puppet/source/git.rb
index 07b0b20..c2624fa 100644
--- a/lib/librarian/puppet/source/git.rb
+++ b/lib/librarian/puppet/source/git.rb
@@ -1,5 +1,6 @@
 require 'librarian/source/git'
 require 'librarian/puppet/source/local'
+require 'puppet'
 
 module Librarian
   module Source

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-ruby-extras/librarian-puppet.git



More information about the Pkg-ruby-extras-commits mailing list