#!/bin/bash

ACCESSDIR=/var/calculate/access/
SKELDIR=/usr/share/calculate/access
USERNAME=access

die() {
	echo $* 1>&2
	exit 1
}

create_user() {
	useradd -d $ACCESSDIR -m $USERNAME -k $SKELDIR
	chmod 700 $ACCESSDIR/bin/access-shell
}

is_user_exists() {
	id $USERNAME &>/dev/null || return 1
}

is_homedir_exists() {
	[[ -d $ACCESSDIR ]] || return 1
}

prepare_homedir() {
	mkdir -p $ACCESSDIR
	rsync -a $SKELDIR/ $ACCESSDIR/
	chmod 700 $ACCESSDIR
	chown access. -R $ACCESSDIR
	chmod 700 $ACCESSDIR/bin/access-shell
}

if is_user_exists
then
	if is_homedir_exists
	then
		echo "Access configured already"
		exit 0
	else
		if prepare_homedir
		then
			echo "Access configured successful in $ACCESSDIR!"
			exit 0
		else
			die "Failed to prepare $ACCESSDIR"
		fi
	fi
else
	if is_homedir_exists
	then
		echo "Failed to configure access. Directory $ACCESSDIR is not empty"
		exit 1
	else
		if create_user
		then
			echo "Access configured successful in $ACCESSDIR!"
			exit 0
		else
			die "Failed to prepare $ACCESSDIR"
		fi
	fi
fi

