Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/env ruby
- # Assume pass is managed by pass (great utility)
- $user = ARGV[0]
- $server = ARGV[1]
- if $user.nil? or $server.nil?
- puts <<EOF
- I need a username and a server. Like this:
- $ #{ __FILE__ } #{ ENV['USER'] } example.org
- EOF
- exit 1
- end
- $icon = "/usr/share/icons/HighContrast/scalable/emblems/emblem-mail.svg"
- def check_inbox
- password = %x[ pass #{ $server }/#{ $user } ].gsub("\n", '')
- puts "Checking inbox #{ $user }@#{ $server }..."
- results = %x[ curl -s -k -u "#{ $user }:#{ password }" --url "imaps://imap.#{ $server }:993/INBOX/" -X "SEARCH (UNSEEN)" ]
- mailcount = %x[ echo "#{ results }" | sed 's/^* SEARCH//g' | wc -w ].to_i
- if mailcount > 0
- header = "#{ $user }@#{ $server }"
- text = "Unread messages: #{ mailcount }"
- if ENV['DISPLAY']
- system "notify-send -t 60000 '#{ header }' '#{ text }' --icon=#{ $icon }"
- else
- system "wall #{ header } #{ text }"
- end
- end
- puts " #{ mailcount } unread messages"
- end
- ping = %x[ ping -c 1 #{ $server } 2> /dev/null ]
- ping.empty? ? (puts "I can't find server #{ $server }" and exit 1) : check_inbox
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement