#!/opt/osstech/bin/python2
# -*- coding: utf-8 -*-

# Copyright (c) 2014 Open Source Solution Technology Co. Ltd.
# Author: KAMEI Yutaka <kamei@osstech.co.jp>

import sys
import getpass
from  os.path import basename, islink
import argparse
import googleapps_cmd.user as U
import googleapps_cmd.group as G
import googleapps_cmd.organization as O

parser = argparse.ArgumentParser()
sub_parser = parser.add_subparsers()

U.init(sub_parser.add_parser("user"))
G.init(sub_parser.add_parser("group"))
O.init(sub_parser.add_parser("organization"))

if not islink(sys.argv[0]):
    ns = parser.parse_args()
    ns.run(ns)
    sys.exit(0)

# Old interfaces
prog = basename(sys.argv[0])
if prog == "googleapps-account-csvuseradd":
    args = ["user", "csvadd"] + sys.argv[1:]
elif prog == "googleapps-account-csvuserdel":
    args = ["user", "csvdelete"] + sys.argv[1:]
elif prog == "googleapps-account-csvuserdisable":
    args = ["user", "csvdisable"] + sys.argv[1:]
elif prog == "googleapps-account-csvuserenable":
    args = ["user", "csvenable"] + sys.argv[1:]
elif prog == "googleapps-account-csvusermod":
    args = ["user", "csvmodify"] + sys.argv[1:]
elif prog == "googleapps-account-passwd":
    p = argparse.ArgumentParser()
    p.add_argument("-s", "--stdin", action="store_true")
    p.add_argument("mail")
    ns = p.parse_args()
    if ns.stdin:
        password = sys.stdin.read()
    else:
        pw1 = 1
        pw2 = 2
        while pw1 != pw2:
            pw1 = getpass.getpass("New Password: ")
            pw2 = getpass.getpass("New Password (Retype): ")
        password = pw1
    args = ["user", "modify", "-p", password, ns.mail]
elif prog == "googleapps-account-useradd":
    args = ["user", "add"] + sys.argv[1:]
elif prog == "googleapps-account-userdel":
    args = ["user", "delete"] + sys.argv[1:]
elif prog == "googleapps-account-userdisable":
    args = ["user", "disable"] + sys.argv[1:]
elif prog == "googleapps-account-userenable":
    args = ["user", "enable"] + sys.argv[1:]
elif prog == "googleapps-account-userlist":
    args = ["user", "list"] + sys.argv[1:]
elif prog == "googleapps-account-usermod":
    args = ["user", "modify"] + sys.argv[1:]
elif prog == "googleapps-emaillist-csvadd":
    sys.stderr.write("Note: Mailing list is `group' for Google.")
    args = ["group", "csvadd"] + sys.argv[1:]
elif prog == "googleapps-group-csvadd":
    args = ["group", "csvadd"] + sys.argv[1:]
elif prog == "googleapps-nickname-csvadd":
    args = ["user", "csvaddnickname"+ sys.argv[1:]]
elif prog == "googleapps-nickname-csvdel":
    args = ["user", "csvdeletenickname"] + sys.argv[1:]
elif prog == "googleapps-nickname-list":
    args = ["user", "list", "--addedHeaders", "aliases"] + sys.argv[1:]
else:
    args = sys.argv[1:]
ns = parser.parse_args(args)
ns.run(ns)
