]> git.itanic.dy.fi Git - emerge-timer/commitdiff
Change how current emerge time is calculated a bit
authorEsko Kokkonen <esko.kokkonen@gmail.com>
Tue, 29 Nov 2011 15:56:28 +0000 (17:56 +0200)
committerEsko Kokkonen <esko.kokkonen@gmail.com>
Tue, 29 Nov 2011 16:08:30 +0000 (18:08 +0200)
Instead of having some ceiling value for the emerge time (like it was
previously 12*3600 seconds) calculate current emerge time from each of
the entries in the log and choose the smallet value. This should
always be the last entry on the log and therefore the one that was
started closest to the current time.

In other words; the current emerge mode now works for all those
countless packages that take days compile.

emerge-timer.py

index c85bc1a0e9e9ff463e66d897f3fcf262b97b7853..d7f5655b9ebc3fc3190c5d188348567c42331dd6 100755 (executable)
@@ -22,7 +22,7 @@ class package:
         self.name = name
         self.version = version
         self.versions = []
-        self.emerge_time = 12*3600
+        self.emerge_time = 0
 
 
     def add_version(self, version, emerge_time, emerge_date):
@@ -373,15 +373,21 @@ def list_emerge_processes():
     for line in f:
         if ((">>>" in line) and ("emerge" in line)):
             for p in PACKAGES:
+                difference = "infinity"
+                new_difference = 0
+
                 if (p.name + '-' + p.version in line):
 
                     time = float(line.partition(' ')[0].strip(":"))
 
                     timestamp = datetime.datetime.fromtimestamp(time)
-                    difference = (now - timestamp).total_seconds()
+                    new_difference = (now - timestamp).total_seconds()
+
+                    if ((new_difference < difference) or
+                        (difference == "infinity")):
+                        difference = new_difference
 
-                    if difference < p.emerge_time:
-                        p.emerge_time = difference
+            p.emerge_time = difference
 
     return 0