# Filesystem navigation.
alias l="ls -lhF --color=always"
alias ll="ls -AlhF --color=always"
alias lz="ls -AlhFZ --color=always"

mcd() {
	mkdir -p "$1" && cd "$1"
}
cdl() {
	cd "$1" &&	ls -lhF --color=always
}
cdll() {
	cd "$1" && ls -AlhF --color=always
}


# Aliases for Python venv management.
alias activate="source .venv/bin/activate"
alias mkvenv="python3 -m venv .venv"

# Aliases for common podman/podman compose tasks.
alias pcup="podman-compose up"
alias pcupd="podman-compose up -d"
alias pcdown="podman-compose down"
alias pps="podman ps"
alias ccedit="nano container-compose.yaml"

# Enable/disable NGINX sites defined in /etc/nginx/sites-available
# by symlinking it to (or unlinking it from) /etc/nginx/sites-enabled.
nginx-enable(){
	sudo ln -s "/etc/nginx/sites-available/$1.conf" "/etc/nginx/sites-enabled/$1.conf"
}
nginx-disable(){
	sudo rm "/etc/nginx/sites-enabled/$1.conf"
}

# In a subdirectory of /srv/{USER}, run a command as USER.
alias srvdo='sudo -u $(pwd | cut -d "/" -f3) '

create-service-user(){
	# Accepts input in service_name:uid format. Assumes gid=uid.
	service=$(echo $1 | cut -d ':' -f1)
	uid=$(echo $1 | cut -d ':' -f2)
	echo "Creating service user $service ($uid)"

	# Create group if not exists.
	echo Running groupadd...
	getent group $service || sudo groupadd --system --gid "$uid" "$service"

	# Create user if not exists.
	echo Running useradd...
	getent passwd $service || sudo useradd --system --uid "$uid" --gid "$uid" \
		--home-dir /var/lib/$service \
		--create-home \
		--shell /sbin/nologin \
		"$service"

	# Create a directory in /srv for the service.
	echo Creating directory in /srv ...
	sudo mkdir -p /srv/$service
	sudo chown -R $service:$service /srv/$service
	sudo chmod -R 770 /srv/$service

	# loginctl enable-linger "$service"

	# Add entries in /etc/sub*id; assumes these files are sorted.
	echo Setting up subids...
	last_subid_start=$(tail -1 /etc/subuid | cut -d ':' -f2)
	last_subid_range=$(tail -1 /etc/subuid | cut -d ':' -f3)
	let "next_subid = $last_subid_start + $last_subid_range"
	cat /etc/subuid | grep $service || echo "$service:$next_subid:65536" | sudo tee -a /etc/subuid
	cat /etc/subgid | grep $service || echo "$service:$next_subid:65536" | sudo tee -a /etc/subgid

	echo Done!
}
