#!/bin/bash
#Common functions used for several makeuser scripts

error_exit() {
  echo -e "${PROGNAME}: ${1:-"Unknown Error"}" >&2
  exit 1
}

usage() {
  echo -e "usage: $PROGNAME [-h|--help] <username> <email> \"<pubkey>\""
}

sub_to_list() {
  echo "From: $1 Subject: subscribe" | sudo -u $1 mail $LIST_NAME 
}

makeuser_no_ansible()
{
	echo "adding new user $1"
	newpw=`pwgen -1B 10`
	pwcrypt=$(perl -e "print crypt('${newpw}', 'sa');")
	sudo useradd -m -g 1000 -p $pwcrypt -s /bin/bash $1 || exit 1
	#This is the welcome for team.
	#sed -e "s/newusername/$1/g" -e "s/newpassword/$newpw/" $EMAIL_TEMPLATE | sudo mail $1 $2 $ADMIN_EMAIL 

	#This is the welcome email for thunix
	sed -e "s/newusername/$1/g" -e "s/newpassword/$newpw/g" include/email.tmpl | sudo mail -s "Welcome to Thunix!" $2,$ADMIN_EMAIL 
	sub_to_list $1

	#We don't need this for thunix, since ansible will do it
	#echo "$3" | tee /home/$1/.ssh/authorized_keys

	#If root doesn't have a fediverse account, comment this out
	#sudo toot "welcome new user ~$1!"
}

makeuser_ansible()
{
	currdir=`pwd`
	cd $REPO_LOCATION; git pull
	echo "---
- name: Setting up $1
  user:
    name: $1
    groups: tilde
    state: present
    skeleton: /etc/skel
    shell: /bin/bash
    system: no
    createhome: yes
    home: /home/$1
- authorized_key:
    user: $1
    state: present
    key: \"$3\"" > $REPO_LOCATION/roles/shell/tasks/users/$YAML_FILE

	echo "- include: users/$YAML_FILE" >> $REPO_LOCATION/roles/shell/tasks/users.yml
	git add $REPO_LOCATION/roles/shell/tasks/users/$YAML_FILE
	git commit -am "Adding user $1"
	git push
	cd $currdir
	$GEN_TDP | sudo tee $TILDE_JSON 
}

add_account_recovery()
{	
	sudo mkdir -p --mode=700 /home/$1/.thunix
	echo $2 | sudo tee /home/$1/.thunix/recovery
	sudo chmod 600 /home/$1/.thunix/recovery
	sudo chown -R $1 /home/$1/.thunix
}
