#!/usr/bin/python
# PYTHON_ARGCOMPLETE_OK

import osex

import sys
import argparse
import argcomplete

def _init_argparser():

    argparser = argparse.ArgumentParser(description = None)
    argparser.add_argument("source")
    argparser.add_argument("link_name")
    argparser.add_argument("--relative", action = "store_true")
    argparser.add_argument("--override", action = "store_true")
    argparser.add_argument("--no-backup", action = "store_true")
    argparser.add_argument("--backup-suffix", default = "~")
    return argparser

def main(argv):

    argparser = _init_argparser()
    argcomplete.autocomplete(argparser)
    args = argparser.parse_args(argv)

    params = vars(args)
    params["backup"] = not params["no_backup"]
    del params["no_backup"]

    try:
        osex.symlink(**params)
    except Exception, ex:
        print(ex)
        return 1

    return 0

if __name__ == "__main__":
    sys.exit(main(sys.argv[1:]))