#!/usr/bin/env python

import os
import sys

def main():
    """Run this"""
    args = sys.argv[1:]
    loc = os.path.dirname(__file__)

    if '-h' in args:
        print('|'.join(sorted(args)))
        return
    elif '-e' in args:
        sys.stderr.write('|'.join(sorted(args)) + "\n")
        return
    elif '-ev' in args:
        print(os.environ.get('CR_VAR', 'FAILED') + '\n')
        return

    user = 'user'
    if '-u' in args:
        user = args[args.index('-u')+1]
    if user == 'john':
        sys.stderr.write("Program Error")
        sys.exit(2)

    if '-l' in args:
        if user == 'error':
            raise ValueError("Delibrate IO Error")
        if not os.path.exists(os.path.join(loc, 'spool', user)):
            sys.stderr.write("no crontab for %s\n" % user)
            sys.exit(1)
        fhl = open(os.path.join(loc, 'spool', user), 'r')
        print(fhl.read())
        return

    for filename in args:
        if filename[0] == '-' or filename == user:
            continue
        new_name = os.path.join(loc, 'spool', user)
        if not os.path.exists(filename):
            raise KeyError("Can't find file: {}".format(filename))
        with open(filename, 'r') as source:
            with open(new_name, 'w') as output:
                output.write(source.read())

if __name__ == '__main__':
    main()
    sys.exit(0)

