]> git.itanic.dy.fi Git - emerge-timer/blobdiff - emerge-timer.py
Improve class functionality
[emerge-timer] / emerge-timer.py
index a9d8233cf6e2631319e49ad5d07e97f2e8f728b9..998de5f65b35fe30e8704a4dedc97e93babf4386 100755 (executable)
@@ -1,7 +1,7 @@
 #!/usr/bin/python
 
 
-import sys, subprocess, datetime, os
+import sys, subprocess, datetime, os, re
 
 
 PORTDIR = "/usr/portage/"
@@ -13,6 +13,78 @@ color_stop = "\033[m"
 packages = []
 
 
+class package:
+    def __init__(self, name):
+        self.name = name
+
+        self.versions = []
+
+    def add_version(self, version, emerge_time, emerge_date):
+
+        self.versions.append((version, emerge_time, emerge_date))
+
+
+    def print_versions(self):
+        for p in self.versions:
+            print("\t" + self.name + p[0] + "  >>>  " +
+                  self.time(p[1]) + "  >>>  " +
+                  green_start + self.date(p[2]) + color_stop)
+
+
+    def time(self, time):
+
+        days = time/(3600*24)
+        hours = (days - int(days))*24
+        minutes = (hours - int(hours))*60
+        seconds = (minutes - int(minutes))*60
+
+        days = int(days)
+        hours = int(hours)
+        minutes = int(minutes)
+        seconds = int(round(seconds))
+
+        pdays = str()
+        phours = str()
+        pminutes = str()
+        pseconds = str()
+
+        if days > 0:
+            pdays = (green_start + str(days) + color_stop + " day")
+            if days != 1:
+                pdays += "s"
+
+        if hours > 0:
+            phours = (green_start + str(hours) + color_stop + " hour")
+            if hours != 1:
+                phours += "s"
+
+        if minutes > 0:
+            pminutes = (green_start + str(minutes) + color_stop + " minute")
+            if minutes != 1:
+                pminutes += "s"
+
+        pseconds = (green_start + str(seconds) + color_stop + " second")
+        if seconds != 1:
+            pseconds += "s"
+
+        return (pdays + phours + pminutes + pdays)
+
+
+    def date(self, emerge_date):
+        date = datetime.datetime.fromtimestamp(emerge_date)
+
+        year = str(date.year)
+        month = str(date.month)
+        day = str(date.day)
+        hour = str(date.hour)
+        minute = str(date.minute)
+        second = str(date.second)
+
+        date = "{:%d.%m.%Y %H:%M:%S}".format(date)
+
+        return date
+
+
 
 def open_log():
     """Attempt to open the LOGFILE."""
@@ -27,34 +99,43 @@ def open_log():
 
 
 
-def search_log_for_package(package):
+def search_log_for_package(user_package):
 
     log = open_log()
 
+    packages.insert(0, package(user_package))
+
     for line in log:
         if ((">>>" in line) and ("emerge" in line)):
-            if package in line:
+            if user_package in line:
+                version = line.partition(user_package)[2].partition(' ')[0]
+
                 time_string = line.partition(">>>")
                 start_time = float(time_string[0].strip().strip(':'))
 
         elif ((":::" in line) and ("completed emerge" in line)):
-            if package in line:
+            if user_package in line:
                 time_string = line.partition(":::")
                 stop_time = float(time_string[0].strip().strip(':'))
 
                 emerge_time = stop_time - start_time
 
-#                date = 0 # get date
+                packages[0].add_version(version, emerge_time, start_time)
+
+
+
+def print_stuff():
+    for p in packages:
+        p.print_versions()
 
-                print line
-                packages.append((package, emerge_time))
 
-def main(status, package=None):
+
+def main(status, user_package=None):
 
     if status == "package":
-        search_log_for_package(package)
-        print packages
-        pass
+        search_log_for_package(user_package)
+        print_stuff()
+
 
     elif status == "current":
         pass