Autotest notificaties ala Growls op EEE

Gepubliceerd op: 9.V.2008 03:55 CEST
Categorieën: debian, eeepc, testen

Er zijn eigenlijk maar weinig dingen die ik echt mis van m’n MacBook als ik lekker zit te fröbelen op m’n EEE. Wat ik wel jammer vond, was dat ik geen growl notificaties meer had uit autotest. Maar debian zou debian niet zijn als er tussen de bijna 27 duizend packages geen alternatief te vinden zou zijn; aosd-cat.

Nu nog even in ~/.autotest hangen!

Aosd-cat is een simpele commandline utility welke z’n berichten leest van stdin. Deze is met open3 gemakkelijk aan te roepen;

require 'open3'

def aosd_cat(message, color = 'green')
  Open3.popen3("aosd_cat -R #{color} -n 'DejaVuSans Bold 18'") do |stdin,_,_|
    stdin.puts message
  end
end

Nu nog een autotest hook;

Autotest.add_hook :ran_command do |at|
  if result = at.results.last
    successful = [/\b0 errors/, /\b0 failures/].all?{|re| result.match(re)}
    aosd_cat result, successful ? 'green' : 'red'
  end
end

Maar de succes mededeling hoef ik maar 1 keer te zien, geen verder nieuws is goed nieuws;

previous = nil
Autotest.add_hook :ran_command do |at|
  if result = at.results.last
    successful = [/\b0 errors/, /\b0 failures/].all?{|re| result.match(re)}
    aosd_cat result, successful ? 'green' : 'red' unless successful && previous
    previous = successful
  end
end

Et voilá, het resultaat, growl-achtige notificaties op m’n EEE!