buglix.org

Portage update checker

February 27th, 2006

Here is a little script I once wrote to check if new updates exists in the Portage Tree (Gentoo). If so, it sends an e-mail to the owner of the script. Run it as a cron job and don't forget to change user_address and smtpserver.

PYTHON:
  1. #!/usr/bin/python
  2. # Copyright Emil Erlandsson 2005
  3. import os,smtplib
  4.  
  5. user_address = "receivers address"
  6. smtpserver = "some_smtp_server"
  7.  
  8. if os.spawnvp(os.P_WAIT, "emerge", ["emerge", "sync"]) == 0:
  9.     pipe = os.popen("emerge -vupD world", "r")
  10.     lines = []
  11.     for line in pipe.readlines():
  12.         if "ebuild" in line:
  13.             lines.append(line)
  14.  
  15.     if len(lines)> 0:
  16.         hostname = os.popen("hostname", "r").read().strip()
  17.         uptime = os.popen("uptime", "r").read().strip()
  18.         server = smtplib.SMTP(smtpserver)
  19.         msg = "Subject: New updates in your Gentoo distribution @%s\n\nThere are %d new updates.\n\nHere is a list of them:" % (hostname, len(lines))
  20.         for line in lines:
  21.             msg += line
  22.         msg += "\n\n\n/Your local Gentoo Gnome\n\nSysinfo: %s" % uptime
  23.         server.sendmail(user_address,user_address,msg)
  24.         server.close()
  25. else:
  26.     print "emerge sync failed..."

Leave a Reply

Proudly powered by WordPress. Theme developed with WordPress Theme Generator.
Copyright © buglix.org. All rights reserved.