#!/usr/bin/env python

import filehasher
import sys

DEFAULT_FILENAME = ".hashes"


def show_usage(appName):
    print """
Usage:

  Default filename: {defaultfilename}

  {appname} -g {{filename}} generate hashes (remove hashfile if exists)
  {appname} -a {{filename}} append hashes to file
  {appname} -u {{filename}} update hashfile (clean old entries, and append new)
  {appname} -c [filename1] {{filename2}} compares hashes from hashfiles, use
               with only one filename to check dupes in directory

""".format(appname=appName, defaultfilename=DEFAULT_FILENAME)


if __name__ == "__main__":
    filename1 = DEFAULT_FILENAME

    if len(sys.argv) < 2:
        import os.path
        show_usage(os.path.basename(sys.argv[0]))
        sys.exit(1)

    if len(sys.argv) > 2:
        filename1 = sys.argv[2]

    if sys.argv[1].lower() == "-g":
        filehasher.generate_hashes(filename1)
    elif sys.argv[1].lower() == "-a":
        filehasher.generate_hashes(filename1, append=True)
    elif sys.argv[1].lower() == "-u":
        filehasher.generate_hashes(filename1, update=True)
    elif sys.argv[1].lower() == "-c":
        if len(sys.argv) < 3:
            print "Error. Not enough parameters."
            show_usage(sys.argv[0])
            sys.exit(1)
        filename2 = None
        if len(sys.argv) > 3:
            filename2 = sys.argv[3]
        filehasher.compare(filename1, filename2)

    sys.exit(0)
