You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
42 lines
1.2 KiB
42 lines
1.2 KiB
#!/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
|