#!/bin/bash

# Delete TeX build files when exiting from Vim or call on directory/directly to
# remove from there.

ext_list="/home/kevin/linux-config/txt/tex-build-files.txt"
raw_build_exts="$(tr '\n' '|' < $ext_list)"
build_exts="(${raw_build_exts::-1})"
# echo "$build_exts"
find_flags=(-maxdepth 1 -type f -regextype gnu-awk -regex)
# match all files with build extensions
regex=(\"^.*\\."$build_exts"$\")

remove_build_files () {
	regex=("$2")
	# eval find "$1" "${find_flags[@]}" "${regex[0]}" -delete -print
	eval find "$1" "${find_flags[@]}" "${regex[0]}" -delete
}

# when less than one argument, remove build files in current dir
if [[ "$#" -lt 1 ]]; then
	regex=(\"^.*\\."$build_exts"$\")
	remove_build_files . "${regex[0]}"
else
	case "$1" in
		# if tex file, remove only build files for that file
		*.tex)
			file=$(readlink -f "$1")
			dir=$(dirname "$file")
			base="${file%.*}"
			# remove build files matching file name
			regex=(\"^"$base"\\."$build_exts"$\")
			remove_build_files "$dir" "${regex[0]}" ;;
		# remove all build files in directory if given valid one
		*)
			if [[ -d "$1" ]]; then
				remove_build_files "$1" "${regex[0]}"
			else
				printf "Give .tex file or directory as argument.\\n"
			fi ;;
	esac
fi