]> git.netwichtig.de Git - user/henk/code/ruby/rbot.git/blobdiff - lib/rbot/core/utils/utils.rb
safe_exec fixes
[user/henk/code/ruby/rbot.git] / lib / rbot / core / utils / utils.rb
index fb9b1f651094f42fff7f42654348e80705b197ca..4105fa12db611c0988d5f91d0757c458d44e2168 100644 (file)
@@ -275,10 +275,12 @@ module ::Irc
     # Execute an external program, returning a String obtained by redirecting
     # the program's standards errors and output
     #
+    # TODO: find a way to expose some common errors (e.g. Errno::NOENT)
+    # to the caller
     def Utils.safe_exec(command, *args)
-      IO.popen("-") { |p|
+      output = IO.popen("-") { |p|
         if p
-          return p.readlines.join("\n")
+          break p.readlines.join("\n")
         else
           begin
             $stderr.reopen($stdout)
@@ -291,6 +293,8 @@ module ::Irc
           Kernel::exit! 1
         end
       }
+      raise "safe execution of #{command} returned #{$?}" unless $?.success?
+      return output
     end
 
     # Try executing an external program, returning true if the run was successful