Jakub Filak 181e4a
From 301fe7c65ba4431833ad8a9df7a4366eda889682 Mon Sep 17 00:00:00 2001
Jakub Filak 181e4a
From: Jakub Filak <jfilak@redhat.com>
Jakub Filak 181e4a
Date: Fri, 31 Oct 2014 23:00:10 +0100
Jakub Filak 181e4a
Subject: [PATCH] a-a-g-machine-id: omit trailing new-line for one-liners only
Jakub Filak 181e4a
Jakub Filak 181e4a
Signed-off-by: Jakub Filak <jfilak@redhat.com>
Jakub Filak 181e4a
---
Jakub Filak 181e4a
 src/plugins/abrt-action-generate-machine-id | 21 +++++++++------------
Jakub Filak 181e4a
 1 file changed, 9 insertions(+), 12 deletions(-)
Jakub Filak 181e4a
Jakub Filak 181e4a
diff --git a/src/plugins/abrt-action-generate-machine-id b/src/plugins/abrt-action-generate-machine-id
Jakub Filak 181e4a
index b2de822..6f43258 100644
Jakub Filak 181e4a
--- a/src/plugins/abrt-action-generate-machine-id
Jakub Filak 181e4a
+++ b/src/plugins/abrt-action-generate-machine-id
Jakub Filak 181e4a
@@ -118,9 +118,9 @@ def generate_machine_id(generators):
Jakub Filak 181e4a
 def print_result(ids, outfile, prefixed):
Jakub Filak 181e4a
     """Writes a dictionary of machine ids to a file
Jakub Filak 181e4a
 
Jakub Filak 181e4a
-    Each dictionary entry is written on a single line and the last line does
Jakub Filak 181e4a
-    not have new line character. The new line character is omitted as it is a
Jakub Filak 181e4a
-    common approach in ABRT.
Jakub Filak 181e4a
+    Each dictionary entry is written on a single line. The function does not
Jakub Filak 181e4a
+    print trailing new-line if the dictionary contains only one item as it is
Jakub Filak 181e4a
+    common format of one-liners placed in a dump directory.
Jakub Filak 181e4a
 
Jakub Filak 181e4a
     Keyword arguments:
Jakub Filak 181e4a
     ids -- a dictionary [generator name: machine ids]
Jakub Filak 181e4a
@@ -130,15 +130,10 @@ def print_result(ids, outfile, prefixed):
Jakub Filak 181e4a
 
Jakub Filak 181e4a
     fmt = '{0}={1}' if prefixed else '{1}'
Jakub Filak 181e4a
 
Jakub Filak 181e4a
-    items_iter = ids.iteritems()
Jakub Filak 181e4a
-    try:
Jakub Filak 181e4a
-        sd, mid = items_iter.next()
Jakub Filak 181e4a
-        outfile.write(fmt.format(sd, mid))
Jakub Filak 181e4a
-    except StopIteration:
Jakub Filak 181e4a
-        return
Jakub Filak 181e4a
+    if len(ids) > 1:
Jakub Filak 181e4a
+        fmt += '\n'
Jakub Filak 181e4a
 
Jakub Filak 181e4a
-    fmt = '\n' + fmt
Jakub Filak 181e4a
-    for sd, mid in items_iter:
Jakub Filak 181e4a
+    for sd, mid in ids.iteritems():
Jakub Filak 181e4a
         outfile.write(fmt.format(sd,mid))
Jakub Filak 181e4a
 
Jakub Filak 181e4a
 
Jakub Filak 181e4a
@@ -193,6 +188,8 @@ if __name__ == '__main__':
Jakub Filak 181e4a
             sys.exit(1)
Jakub Filak 181e4a
     else:
Jakub Filak 181e4a
         print_result(machineids, sys.stdout, not ARGS['noprefix'])
Jakub Filak 181e4a
-        sys.stdout.write('\n')
Jakub Filak 181e4a
+        # print_results() omits new-line for one-liners
Jakub Filak 181e4a
+        if len(machineids) == 1:
Jakub Filak 181e4a
+            sys.stdout.write('\n')
Jakub Filak 181e4a
 
Jakub Filak 181e4a
     sys.exit(len(requested_generators) - len(machineids.keys()))
Jakub Filak 181e4a
-- 
Jakub Filak 181e4a
2.1.0
Jakub Filak 181e4a