My scripts for startup, dmenu, and the command line
Vous ne pouvez pas sélectionner plus de 25 sujets Les noms de sujets doivent commencer par une lettre ou un nombre, peuvent contenir des tirets ('-') et peuvent comporter jusqu'à 35 caractères.

79 lignes
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