Advertisement
Guest User

Untitled

a guest
Dec 2nd, 2015
78
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.10 KB | None | 0 0
  1. #!/usr/bin/env ruby
  2.  
  3. # Assume pass is managed by pass (great utility)
  4.  
  5. $user = ARGV[0]
  6. $server = ARGV[1]
  7.  
  8. if $user.nil? or $server.nil?
  9. puts <<EOF
  10. I need a username and a server. Like this:
  11.  
  12. $ #{ __FILE__ } #{ ENV['USER'] } example.org
  13. EOF
  14.  
  15. exit 1
  16. end
  17.  
  18. $icon = "/usr/share/icons/HighContrast/scalable/emblems/emblem-mail.svg"
  19.  
  20. def check_inbox
  21. password = %x[ pass #{ $server }/#{ $user } ].gsub("\n", '')
  22.  
  23. puts "Checking inbox #{ $user }@#{ $server }..."
  24.  
  25. results = %x[ curl -s -k -u "#{ $user }:#{ password }" --url "imaps://imap.#{ $server }:993/INBOX/" -X "SEARCH (UNSEEN)" ]
  26.  
  27. mailcount = %x[ echo "#{ results }" | sed 's/^* SEARCH//g' | wc -w ].to_i
  28.  
  29. if mailcount > 0
  30. header = "#{ $user }@#{ $server }"
  31. text = "Unread messages: #{ mailcount }"
  32.  
  33. if ENV['DISPLAY']
  34. system "notify-send -t 60000 '#{ header }' '#{ text }' --icon=#{ $icon }"
  35. else
  36. system "wall #{ header } #{ text }"
  37. end
  38. end
  39.  
  40. puts " #{ mailcount } unread messages"
  41. end
  42.  
  43. ping = %x[ ping -c 1 #{ $server } 2> /dev/null ]
  44.  
  45. ping.empty? ? (puts "I can't find server #{ $server }" and exit 1) : check_inbox
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement