From: James French Date: Mon, 2 Aug 2010 07:03:48 +0000 (+0800) Subject: Write output, ready for primetime X-Git-Tag: 0.7 X-Git-Url: https://git.ucc.asn.au/?a=commitdiff_plain;h=e21f977abbd6f72899bafaf97670f443ea2e1217;p=frenchie%2Ficalparse.git Write output, ready for primetime --- 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)