My scripts for startup, dmenu, and the command line
Nevar pievienot vairāk kā 25 tēmas Tēmai ir jāsākas ar burtu vai ciparu, tā var saturēt domu zīmes ('-') un var būt līdz 35 simboliem gara.

79 rindas
1.7 KiB

  1. #!/bin/sh
  2. gitcmd() {
  3. #First arg should be the name of the subdirectory, second arg should be command
  4. check_args $# 2
  5. if [ ! -d "$BACKUPS_PATH/$1" ]; then
  6. invalid_path_msg "$1"
  7. return 1;
  8. fi
  9. git -C $BACKUPS_PATH/$1 $2
  10. printf "The command succeded\n"
  11. }
  12. bdiff() {
  13. check_args $# 2
  14. if [ ! -d "$BACKUPS_PATH/$1" ]; then
  15. invalid_path_msg "$1"
  16. return 1;
  17. fi
  18. case "$1" in
  19. configs) vimdiff "$BACKUPS_PATH/$1/$2" "$XDG_CONFIG_HOME/$2";;
  20. macros) vimdiff "$BACKUPS_PATH/$1/$2" "$HOME/Macros/$2";;
  21. *) invalid_path_msg "$1"; return 1;;
  22. esac
  23. }
  24. overwrite_local() {
  25. if [ ! -e $BACKUPS_PATH/$1/$2 ]; then
  26. printf "The backup path $BACKUPS_PATH/$1/$2 does not exist\n"
  27. return 1;
  28. fi
  29. case "$1" in
  30. configs) cp -r "$BACKUPS_PATH/$1/$2" "$XDG_CONFIG_HOME/";;
  31. macros) cp -r "$BACKUPS_PATH/$1/$2" "$HOME/Macros/";;
  32. *) invalid_path_msg "$1"; return 1;;
  33. esac
  34. printf "local overwrite successful\n"
  35. }
  36. overwrite_backup() {
  37. if [ git diff --stat $BACKUPS_PATH/$1 ]; then
  38. printf "There are uncommited changes in $1\n"
  39. return 1
  40. fi
  41. case "$1" in
  42. configs) cp -r "$XDG_CONFIG_HOME/$2" "$BACKUPS_PATH/$1/$2";;
  43. macros) cp -r "$HOME/Macros/$2" "$BACKUPS_PATH/$1/$2";;
  44. *) invalid_path_msg "$1"; return 1;;
  45. esac
  46. printf "backup overwrite successful\n"
  47. }
  48. invalid_path_msg() {
  49. printf "That path is invalid. $@\n"
  50. }
  51. check_args() {
  52. if [ $1 -ne $2 ]; then
  53. printf "Invalid number of arguments. Expected $2\n"
  54. exit;
  55. fi
  56. return 0;
  57. }
  58. case "$1" in
  59. pull-backup)
  60. case "$2" in
  61. configs) pull_backup configs;;
  62. macros) pull_backup macros;;
  63. esac
  64. ;;
  65. overwrite-local) overwrite_local $2 $3;;
  66. overwrite-backup) overwrite_backup $2 $3;;
  67. gitcmd) gitcmd "$2" "$3";;
  68. push-backup) overwrite_backup $2 $3;;
  69. bdiff) bdiff $2 "$3";;
  70. *) printf "No such option\n";;
  71. esac