#! /usr/bin/env python
# -*- python -*-

####################################################################################################
#
# PyDvi - A Python Library to Process DVI Stream.
# Copyright (C) 2009 Salvaire Fabrice
#
####################################################################################################

####################################################################################################
#
# Audit
#
#  - 16/01/2010 fabrice
#
####################################################################################################

####################################################################################################

import os
import re
import sys

from optparse import OptionParser

####################################################################################################

from Logging import *
from CopyrightConfig import *

####################################################################################################

def log_and_exit(message, exit_value):

    print message
    sys.exit(exit_value)

####################################################################################################
#
# Options
#

usage = 'usage: %prog [options]'

parser = OptionParser(usage)

parser.add_option('--mime-type',
                   dest = 'mime_type',
                   type = 'string', default = None,
                   help = 'mime type')

opt, args = parser.parse_args()

if len(args) != 1:
    log_and_exit(message='Specify a file',
                 exit_value=1)

filename = args[0]

####################################################################################################

if not os.path.exists(filename):
    log_and_exit(message="File don't exists",
                 exit_value=1)

copyrighted = False
with open(filename, 'r') as f:
    for line in f:
        if re.search('Copyright', line):
            copyrighted = True

if copyrighted:
    log_and_exit(message='File is copyrighted',
                 exit_value=0)

print 'Add copyright to file'

if opt.mime_type is not None:
    mime_type = opt.mime_type
else:
    mime_type = None
    # skip base and remove the '.'
    extension = os.path.splitext(filename)[1][1:]
    for the_mime_type, extensions in mime_extensions:
        if extension in extensions:
            mime_type = the_mime_type
            break

if mime_type is None:
    log_and_exit(message="Can't determine MIME type for file",
                 exit_value=1)

print 'MIME type is', mime_type

old_filename = filename + '~'
os.rename(filename, old_filename)

with open(filename, 'w') as new_file:
    new_file.write(mime_copyright[mime_type] + '\n')
    with open(old_filename, 'r') as old_file:
        for line in old_file.readlines():
            new_file.write(line)

sys.exit(0)

####################################################################################################
#
# End
#
####################################################################################################
