#!/bin/bash

# Copyright (C) 2015-2016 NIWA Hideyuki


# check root
if [ ${EUID:-${UID}} != 0 ]; then
    echo "error: Because you are not root, you cannot execute this command. "
    exit 1
fi

usage()
{
	echo "usage: lib-add-user [ -s ] NAME USER [ PASSWORD ]" 
}

# check options
FLG_S=0

while getopts s OPT
do
  case $OPT in
    "s" ) FLG_S=1 ;;
    \?  ) usage; exit -1;;
  esac
done

shift `expr $OPTIND - 1`

if [ $# -ne 2 -a $# -ne 3 ]; then
	usage
	exit -1
fi

ARGS=$#

LXCNAME=$1
USERNAME=$2

PASSWORD=""
if [ $ARGS -eq 3 ]; then
	PASSWORD=$3
fi

fulcon-exec $LXCNAME useradd -m $USERNAME
if [ $? -ne 0 ]; then
	echo "error: add-user is failed"
	exit -1
fi

if [ $FLG_S -eq 1 ]; then
	fulcon-exec $LXCNAME mkdir -p /etc/sudoers.d
	SUDOERS_LINE="echo $USERNAME ALL\=\(ALL\) ALL  > /etc/sudoers.d/$USERNAME"
	fulcon-exec $LXCNAME /bin/sh -c "$SUDOERS_LINE"
	fulcon-exec $LXCNAME chmod 440 /etc/sudoers.d/$USERNAME
	echo "This user has the administrator rights."
fi

if [ $ARGS -eq 3 ]; then
	fulcon-exec $LXCNAME /bin/sh -c "printf \"%s\n%s\n\" $PASSWORD $PASSWORD | passwd $USERNAME"
else
	fulcon-exec $LXCNAME passwd $USERNAME
	if [ $? -ne 0 ]; then
		fulcon-exec $LXCNAME userdel -r $USERNAME
	fi
fi

exit 0
