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

import os, sys, time, gc
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

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'].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=2:sw=2:
