]> git.itanic.dy.fi Git - emerge-timer/commitdiff
Lots of changes
authorEsko Kokkonen <esko.kokkonen@gmail.com>
Mon, 11 Jul 2011 16:30:33 +0000 (19:30 +0300)
committerEsko Kokkonen <esko.kokkonen@gmail.com>
Mon, 11 Jul 2011 16:30:33 +0000 (19:30 +0300)
- Move the current emerge and main loop into their own respective
  functions
- Change when all the pringing is done in the main loop
- Don't make 'package' a global variable, but declare it in the main
  function and pass it down to the functions that need it

emerge-timer.py

index 7930454625a741aee815e45c22c0579ef6d503b9..077e9c0adc963980f29fab065d1587cb12f9df55 100755 (executable)
@@ -78,15 +78,10 @@ def date_printer(package, emerge_start, emerge_time):
 
     date = weekday + "{:%d.%m.%Y %H:%M:%S}".format(date)
 
-    print(green_start + package + color_stop + "  >>>  " + date + "  >>> "),
-    organize_times(emerge_time)
-    print("\n" + '-'*90)
-
     return date
 
 
 def get_package(name):
-    global package
     dirlist = os.listdir(PORTDIR)
     possible_package = []
 
@@ -115,7 +110,7 @@ def get_package(name):
 
     elif len(possible_package) == 1:
         package = possible_package[0]
-        return
+        return package
 
     else:
         print("No package '" + name + "' found")
@@ -123,7 +118,7 @@ def get_package(name):
     sys.exit(1)
 
 
-def print_times(times):
+def print_times(package, times):
     times.sort()
     times.reverse()
 
@@ -166,57 +161,46 @@ def open_log():
         return f
 
 
-def main(status):
-    global emerge_number
-
-    f = open_log()
-
-    if status == 'current':
-        packages = []
-        for line in f:
-            if ((">>>" in line) and ("emerge" in line)):
-                part = line.partition(' ')
-
-                time = float(part[0].strip(":"))
-
-                # The logfile string is in form of
-                # '1309638757:  >>> emerge (1 of 1) x11-libs/cairo-1.10.2-r1 to /'
-                # so the package is the sixth string pattern when partitioed
-                # with whitespace
-                for i in range(7):
-                    part  = part[2].partition(' ')
+def current_emerges(f):
+    packages = []
+    for line in f:
+        if ((">>>" in line) and ("emerge" in line)):
+            part = line.partition(' ')
 
-                packages.append((part[0], time))
+            time = float(part[0].strip(":"))
 
-            for p in packages:
-                if ((p[0] in line) and ('completed emerge' in line)):
-                    packages.remove(p)
+            # The logfile string is in form of
+            # '1309638757:  >>> emerge (1 of 1) x11-libs/cairo-1.10.2-r1 to /'
+            # so the package is the sixth string pattern when partitioed
+            # with whitespace
+            for i in range(7):
+                part  = part[2].partition(' ')
 
+            packages.append((part[0], time))
 
-        a = 1
         for p in packages:
-            now = datetime.datetime.today()
-            timestamp = datetime.datetime.fromtimestamp(p[1])
-            difference = now - timestamp
-
-            if difference.total_seconds() < 12*60*60:
-                if a:
-                    print("Currently emerging: ")
-                    a = 0
-                print("\t" + green_start + p[0] + color_stop),
-                print('\n\tcurrent emerge time: '),
-                organize_times(difference.total_seconds())
-                print '\n'
+            if ((p[0] in line) and ('completed emerge' in line)):
+                packages.remove(p)
 
-        return
 
-    else:
-        pass
+    a = 1
+    for p in packages:
+        now = datetime.datetime.today()
+        timestamp = datetime.datetime.fromtimestamp(p[1])
+        difference = now - timestamp
 
+        if difference.total_seconds() < 12*60*60:
+            if a:
+                print("Currently emerging: ")
+                a = 0
+            print("\t" + green_start + p[0] + color_stop),
+            print('\n\tcurrent emerge time: '),
+            organize_times(difference.total_seconds())
+            print '\n'
 
-    get_package(package_name)
 
-    print('-'*90)
+def main_loop(f, package, silent):
+    global emerge_number
 
     # MAIN LOOP
     for line in f:
@@ -239,13 +223,40 @@ def main(status):
 
                             emerge_time = time2-time
 
-                            print(str(len(times)+1) + "."),
                             date = date_printer(full_package, time, emerge_time)
 
+                            if silent == False:
+                                print(str(len(times)+1) + "."),
+                                print(green_start + package + color_stop + "  >>>  "
+                                      + date + "  >>> "),
+
+                                organize_times(emerge_time)
+
+                                print("\n" + '-'*90)
+
                             times.append((emerge_time, date))
 
                     except IndexError: pass
 
+    print_times(package, times)
+
+
+def main(status):
+    global emerge_number
+
+    f = open_log()
+
+    if status == 'current':
+        current_emerges(f)
+        return
+    else:
+        pass
+
+    package = get_package(package_name)
+
+    print('-'*90)
+
+    main_loop(f, package, False)
 
     if emerge_number == 0:
         print("Package '" + package + "' has never been emerged")
@@ -263,6 +274,4 @@ if __name__ == "__main__":
         main('current')
         sys.exit(1)
 
-    print_times(times)
-
     write_times(times)