Un jour, une gem

17/03/2012

Samedi c'est Cocaine

gem install cocaine

On se fait une ligne (de commande)

Voici une gem pour faire des lignes de commande dans vos projets / scripts, avec le code suivant :

line = Cocaine::CommandLine.new("command", "some 'crazy' options")
line.command      # => "command some 'crazy' options"
output = line.run # => Get you some output!

Pour éviter que le script plante si la commande échoue, on peut aussi utiliser le bloc begin-end :

line = Cocaine::CommandLine.new("git", "commit")
begin
  line.run
rescue Cocaine::ExitStatusError => e
  e.message # => "Command 'git commit' retourne 1. On attend 0"
end

Et en bonus la possibilité de logger tout ce qui passe par cette gem :

Cocaine::CommandLine.logger = Logger.new(STDOUT)
Cocaine::CommandLine.new("date").run # => Logs this -> Command :: date

Le lien utile