#!/usr/bin/env python
# license: Creative Commons Zero

from optparse import OptionParser
import tempfile

import vobject

parser = OptionParser(description="""
Converts a vcf file containing multiple vcards to multiple individual
vcard files. Defaults are in parentheses.
""")
parser.add_option('-i', '--in',
                  dest='vcf', default='-',
                  help='Set input vcf file (stdin).')

(options, args) = parser.parse_args()

def get_input():
    """Return input from stdin or chosen VCF file."""
    if options.vcf == '-':
        import sys
        return sys.stdin
    else:
        inputfile = open(options.vcf, 'r')
        return inputfile
        inputfile.close()

tdir = tempfile.mkdtemp(suffix='_vcard-separate.py')

count = 0
for vcard in vobject.readComponents(get_input()):
    count = count + 1
    with open(tdir + '/' + str(count).zfill(10) + '.vcf', 'w') as t:
        t.write(vcard.serialize())

print str(count) + ' vcard entries written to dir: ' + tdir + '/'
