#!/usr/bin/python2.7

import sys
from optparse           import OptionParser
from StringIO           import StringIO
from ooopy.OOoPy        import OOoPy
from ooopy.Transformer  import Transformer
import ooopy.Transforms as     Transforms

if __name__ == '__main__' :
    usage  = '%prog [-o|--output-file <filename>] [file, ...]'
    parser = OptionParser (usage = usage)
    parser.add_option \
        ( "-o", "--output-file"
        , dest    = "output_file"
        , help    = "Output file (defaults to stdout)"
        , default = None
        )
    (options, args) = parser.parse_args ()
    if len (args) < 1 :
        infiles = [StringIO (sys.stdin.read ())]
    else :
        infiles = args
    outfile = options.output_file
    if outfile is None :
        outfile = StringIO ()
    o = OOoPy (infile = infiles [0], outfile = outfile)
    if len (infiles) > 1 :
        t = Transformer \
            ( o.mimetype
            , Transforms.get_meta     (o.mimetype)
            , Transforms.Concatenate  (* (infiles [1:]))
            , Transforms.renumber_all (o.mimetype)
            , Transforms.set_meta     (o.mimetype)
            , Transforms.Fix_OOo_Tag  ()
            )
        t.transform (o)
    o.close ()
    if options.output_file is None :
        sys.stdout.write (outfile.getvalue ())
