Dotfiles for my tiling window manager + terminal workflow.
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

  1. #!/bin/bash
  2. # Delete TeX build files when exiting from Vim or call on directory/directly to
  3. # remove from there.
  4. ext_list="/home/kevin/linux-config/txt/tex-build-files.txt"
  5. raw_build_exts="$(tr '\n' '|' < $ext_list)"
  6. build_exts="(${raw_build_exts::-1})"
  7. # echo "$build_exts"
  8. find_flags=(-maxdepth 1 -type f -regextype gnu-awk -regex)
  9. # match all files with build extensions
  10. regex=(\"^.*\\."$build_exts"$\")
  11. remove_build_files () {
  12. regex=("$2")
  13. # eval find "$1" "${find_flags[@]}" "${regex[0]}" -delete -print
  14. eval find "$1" "${find_flags[@]}" "${regex[0]}" -delete
  15. }
  16. # when less than one argument, remove build files in current dir
  17. if [[ "$#" -lt 1 ]]; then
  18. regex=(\"^.*\\."$build_exts"$\")
  19. remove_build_files . "${regex[0]}"
  20. else
  21. case "$1" in
  22. # if tex file, remove only build files for that file
  23. *.tex)
  24. file=$(readlink -f "$1")
  25. dir=$(dirname "$file")
  26. base="${file%.*}"
  27. # remove build files matching file name
  28. regex=(\"^"$base"\\."$build_exts"$\")
  29. remove_build_files "$dir" "${regex[0]}" ;;
  30. # remove all build files in directory if given valid one
  31. *)
  32. if [[ -d "$1" ]]; then
  33. remove_build_files "$1" "${regex[0]}"
  34. else
  35. printf "Give .tex file or directory as argument.\\n"
  36. fi ;;
  37. esac
  38. fi