4 import sys, subprocess, datetime, os, re
7 PORTDIR = "/usr/portage/"
8 LOGFILE = "/var/log/emerge.log"
10 green_start = "\033[32m"
24 def printable_time(self):
25 time = self.emerge_time
28 hours = (days - int(days))*24
29 minutes = (hours - int(hours))*60
30 seconds = (minutes - int(minutes))*60
34 minutes = int(minutes)
35 seconds = int(round(seconds))
37 pdays, phours, pminutes, pseconds = str()
40 pdays = (green_start + str(days) + color_stop + " day")
45 phours = (green_start + str(hours) + color_stop + " hour")
50 pminutes = (green_start + str(minutes) + color_stop + " minute")
54 pseconds = green_start + str(seconds) + color_stop + " second")
58 return (pdays + phours + pminutes + pdays)
62 """Attempt to open the LOGFILE."""
65 f = open(LOGFILE, 'r')
66 except IOError as detail:
74 def search_log_for_package(package):
79 if ((">>>" in line) and ("emerge" in line)):
81 time_string = line.partition(">>>")
82 start_time = float(time_string[0].strip().strip(':'))
84 elif ((":::" in line) and ("completed emerge" in line)):
86 time_string = line.partition(":::")
87 stop_time = float(time_string[0].strip().strip(':'))
89 emerge_time = stop_time - start_time
94 packages.append((package, emerge_time))
96 def main(status, package=None):
98 if status == "package":
99 search_log_for_package(package)
103 elif status == "current":
106 elif status == "pretended":
112 if __name__ == "__main__":
114 if len(sys.argv) == 1:
118 elif sys.argv[1] == "-p":
122 elif len(sys.argv) > 1:
123 main("package", sys.argv[1])