diff --git a/lib/capistrano-send.rb b/lib/capistrano-send.rb new file mode 100644 index 0000000..e69de29 diff --git a/lib/capistrano/send.rb b/lib/capistrano/send.rb index 0ae260b..f30c859 100644 --- a/lib/capistrano/send.rb +++ b/lib/capistrano/send.rb @@ -1,7 +1,2 @@ -require "capistrano/send/version" - -module Capistrano - module Send - # Your code goes here... - end -end +require 'capistrano/send/libnotify' +require 'capistrano/send/notify-send' diff --git a/lib/capistrano/send/libnotify.rb b/lib/capistrano/send/libnotify.rb new file mode 100644 index 0000000..ad2629f --- /dev/null +++ b/lib/capistrano/send/libnotify.rb @@ -0,0 +1 @@ +load File.expand_path('../../tasks/libnotify.cap', __FILE__) diff --git a/lib/capistrano/send/notify-send.rb b/lib/capistrano/send/notify-send.rb new file mode 100644 index 0000000..1d258b6 --- /dev/null +++ b/lib/capistrano/send/notify-send.rb @@ -0,0 +1 @@ +load File.expand_path('../../tasks/notify-send.cap', __FILE__) diff --git a/lib/capistrano/tasks/libnotify.cap b/lib/capistrano/tasks/libnotify.cap new file mode 100644 index 0000000..6f8aebf --- /dev/null +++ b/lib/capistrano/tasks/libnotify.cap @@ -0,0 +1,21 @@ +begin + require 'libnotify' +rescue LoadError +end + +namespace :send do + namespace :libnotify do + desc "Display a notification using libnotify" + task :notify do + if defined?(Libnotify) + Libnotify.show( + summary: "Deploy successful on #{fetch(:stage)}!", + body: revision_log_message, + timeout: 10, + ) + end + end + end +end + +after 'deploy:finished', 'send:libnotify:notify' diff --git a/lib/capistrano/tasks/notify-send.cap b/lib/capistrano/tasks/notify-send.cap new file mode 100644 index 0000000..91d4cf1 --- /dev/null +++ b/lib/capistrano/tasks/notify-send.cap @@ -0,0 +1,14 @@ +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 + + `notify-send --expire-time=#{expire_time} '#{summary}' '#{body}'` + end + end +end + +after 'deploy:finished', 'send:notify-send:notify'