#!/usr/pkg/bin/python2.6 -O

import os, sys, time
from nimbstor.tar import command_tar_arguments
from nimbstor.tar import command_create_archive
from nimbstor.tar import command_extract_archive
from nimbstor.tar import command_list_archive
from nimbstor.tar import command_copy_archive
from nimbstor.tar import command_search_archive
from nimbstor.tar import command_list_keywords
from nimbstor.tar import command_verify_archive

if __name__ == '__main__':
    try:
        start_time = time.time()
        configfiles = []
        if 'NIMBTARCFG' in os.environ:
            configfiles.append(os.environ['NIMBTARCFG'])
        else:
            configfiles.append(os.path.join(os.environ.get('HOME', '/'), '.nimbtarrc'))
            configfiles.append(os.path.join('/etc', 'nimbtarrc'))
        opt = command_tar_arguments(sys.argv, configfiles)
        if   opt['options'].create != None: command_create_archive(opt, start_time)
        elif opt['options'].extract != None: command_extract_archive(opt, start_time)
        elif opt['options'].list != None: command_list_archive(opt, start_time)
        elif opt['options'].copy != None: command_copy_archive(opt, start_time)
        elif opt['options'].search != None: command_search_archive(opt, start_time)
        elif opt['options'].verify != None: command_verify_archive(opt, start_time)
        elif opt['options'].list_keywords != None: command_list_keywords(opt, start_time)
        else: opt['parser'].print_help()
    except SystemExit, err:
        sys.exit(err.code)
    except Exception, err:
        sys.stderr.write("ERROR: %s\n" % str(err))
        sys.exit(1)
    except KeyboardInterrupt, err:
        sys.stderr.write("\nERROR: Keyboard interrupt\n")
        sys.exit(1)
    except:
        sys.stderr.write("ERROR: Internal error - %s\n" % repr(sys.exc_value))
        sys.exit(2)
    sys.exit(0)

# vim:sts=4:sw=4:
