Bläddra i källkod

Add util script to master

laptop
= 4 år sedan
förälder
incheckning
91929bedd3
1 ändrade filer med 92 tillägg och 0 borttagningar
  1. +92
    -0
      util

+ 92
- 0
util Visa fil

@@ -0,0 +1,92 @@
#!/bin/sh
BACKUPS_PATH=$HOME/Backups
gitcmd() {
#First arg should be the name of the subdirectory, second arg should be command
check_args $# 2
if [ ! -d "$BACKUPS_PATH/$1" ]; then
invalid_path_msg "$1"
return 1;
fi

git -C $BACKUPS_PATH/$1 $2
printf "The command succeded\n"
}

git_clone_backup() {
check_args $# 2
git -C $BACKUPS_PATH clone $1:Backups/$2
}

git_clone_proj() {
check_args $# 2
git -C $HOME/Projects clone ssh://$1/~/Projects/$2
}

bdiff() {
check_args $# 2
if [ ! -d "$BACKUPS_PATH/$1" ]; then
invalid_path_msg "$1"
return 1;
fi
case "$1" in
configs) vimdiff "$BACKUPS_PATH/$1/$2" "$XDG_CONFIG_HOME/$2";;
macros) vimdiff "$BACKUPS_PATH/$1/$2" "$HOME/Macros/$2";;
global_vim) vimdiff "$BACKUPS_PATH/$1/$2" "/usr/share/vim/$2";;
*) invalid_path_msg "$1"; return 1;;
esac
}

overwrite_local() {
if [ ! -e $BACKUPS_PATH/$1/$2 ]; then
printf "The backup path $BACKUPS_PATH/$1/$2 does not exist\n"
return 1;
fi
case "$1" in
configs) cp -r "$BACKUPS_PATH/$1/$2" "$XDG_CONFIG_HOME/";;
macros) cp -r "$BACKUPS_PATH/$1/$2" "$HOME/Macros/";;
*) invalid_path_msg "$1"; return 1;;
esac
printf "local overwrite successful\n"
}

overwrite_backup() {
if [ git diff --stat $BACKUPS_PATH/$1 ]; then
printf "There are uncommited changes in $1\n"
return 1
fi
case "$1" in
config) cp -r "$XDG_CONFIG_HOME/$2" "$BACKUPS_PATH/$1/$2";;
macros) cp -r "$HOME/Macros/$2" "$BACKUPS_PATH/$1/$2";;
*) invalid_path_msg "$1"; return 1;;
esac
printf "backup overwrite successful\n"
}

invalid_path_msg() {
printf "That path is invalid. $@\n"
}

check_args() {
if [ $1 -ne $2 ]; then
printf "Invalid number of arguments. Expected $2\n"
exit;
fi
return 0;
}

case "$1" in
pull-backup)
case "$2" in
configs) pull_backup configs;;
macros) pull_backup macros;;
esac
;;
overwrite-local) overwrite_local $2 $3;;
overwrite-backup) overwrite_backup $2 $3;;
gitcmd) gitcmd "$2" "$3";;
push-backup) overwrite_backup $2 $3;;
bclone) git_clone_backup "$2" "$3";;
pclone) git_clone_proj "$2" "$3";;
bdiff) bdiff $2 "$3";;
*) printf "No such option\n";;
esac

Laddar…
Avbryt
Spara