From e21f977abbd6f72899bafaf97670f443ea2e1217 Mon Sep 17 00:00:00 2001 From: James French Date: Mon, 2 Aug 2010 15:03:48 +0800 Subject: [PATCH] Write output, ready for primetime --- icalparse.py | 25 ++++++++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) diff --git a/icalparse.py b/icalparse.py index cc548a3..3057560 100755 --- a/icalparse.py +++ b/icalparse.py @@ -202,6 +202,29 @@ def applyRules(ical, rules=[], verbose=False): return ical +def writeOutput(cal, outfile=''): + '''Takes a list of lines and outputs to the specified file''' + + if not cal: + sys.stderr.write('Refusing to write out an empty file') + sys.exit(0) + + if not outfile: + out = sys.stdout + else: + try: + out = open(outfile, 'w') + except (IOError, OSError), e: + sys.stderr.write('%s\n'%e) + sys.exit(1) + + if cal[-1]: cal.append('') + + out.write('\r\n'.join(cal)) + + if not out == sys.stdout: + out.close() + if __name__ == '__main__': from optparse import OptionParser @@ -228,4 +251,4 @@ if __name__ == '__main__': cal = lineJoiner(content) ical = applyRules(splitFields(cal), generateRules()) output = lineFolder(joinFields(ical)) - print output + writeOutput(output, options.outfile) -- 2.20.1