diff --git a/lib/capistrano/send/libnotify.rb b/lib/capistrano/send/libnotify.rb index ad2629f..b4ebc1e 100644 --- a/lib/capistrano/send/libnotify.rb +++ b/lib/capistrano/send/libnotify.rb @@ -1 +1,16 @@ +begin + require 'libnotify' +rescue LoadError +end + +module Capistrano + module Send + module Libnotify + def self.supported? + defined?(Libnotify) && Libnotify::API.instance_methods.include?(:notify_init) + end + end + end +end + load File.expand_path('../../tasks/libnotify.cap', __FILE__) diff --git a/lib/capistrano/send/notify-send.rb b/lib/capistrano/send/notify-send.rb index 1d258b6..96f5192 100644 --- a/lib/capistrano/send/notify-send.rb +++ b/lib/capistrano/send/notify-send.rb @@ -1 +1,11 @@ +module Capistrano + module Send + module NotifySend + def self.supported? + system('notify-send --version >/dev/null 2>&1') != nil + end + end + end +end + load File.expand_path('../../tasks/notify-send.cap', __FILE__) diff --git a/lib/capistrano/tasks/libnotify.cap b/lib/capistrano/tasks/libnotify.cap index 6f8aebf..d55e531 100644 --- a/lib/capistrano/tasks/libnotify.cap +++ b/lib/capistrano/tasks/libnotify.cap @@ -1,13 +1,8 @@ -begin - require 'libnotify' -rescue LoadError -end - namespace :send do namespace :libnotify do desc "Display a notification using libnotify" task :notify do - if defined?(Libnotify) + if Capistrano::Send::Libnotify.supported? Libnotify.show( summary: "Deploy successful on #{fetch(:stage)}!", body: revision_log_message, diff --git a/lib/capistrano/tasks/notify-send.cap b/lib/capistrano/tasks/notify-send.cap index 91d4cf1..244cbea 100644 --- a/lib/capistrano/tasks/notify-send.cap +++ b/lib/capistrano/tasks/notify-send.cap @@ -2,11 +2,13 @@ namespace :send do namespace :'notify-send' do desc "Display a notification using notify-send" task :notify do - expire_time = 10000 - summary = "Deploy successful on #{fetch(:stage)}!" - body = revision_log_message + if Capistrano::Send::NotifySend.supported? + expire_time = 10000 + summary = "Deploy successful on #{fetch(:stage)}!" + body = revision_log_message - `notify-send --expire-time=#{expire_time} '#{summary}' '#{body}'` + `notify-send --expire-time=#{expire_time} '#{summary}' '#{body}'` + end end end end