2016-06-07 16 views
0

Ich habe einen Befehl, der auf Unix/win Env ist (mit Messer) ausgeführt werden muß erhalten:Unable Befehlsausgabe von Koch Rezept

execute "smart_table" do 
    command "su - #{username} -c ' myutils -PATH #{file_name} -OVERWRITE '" 
    action :run 
end 

dieser Befehl hat einen Ausgang, der innerhalb einiger Keyword analysiert werden soll .

Ich habe über Open3 usw. gelesen, aber nicht implementieren können.

Ich werde ein Beispiel zu schätzen wissen.

Vielen Dank im Voraus.

Antwort

0

Ich habe den Weg mit Mixin::shellout gefunden:

ruby_block "smart_table" do 
    block do 
    Chef::Resource::RubyBlock.send(:include, Chef::Mixin::ShellOut)  
    command = "su - #{username} -c ' myutils -PATH #{file_name} -OVERWRITE '" 
    command_out = shell_out(command) 
    p command_out.stdout 
    end 
    action :create 
end 
+0

Für andere, die diese finden, die mixin in Ressourcen in der letzten Versionen von Chef bereits verfügbar sind, und Sie sollten in einer Ressource globale DSL Änderungen _never_ machen wie Dies. – coderanger