Procházet zdrojové kódy

Create utility functions for managing backups

laptop
= před 4 roky
rodič
revize
1690d1ef93
2 změnil soubory, kde provedl 73 přidání a 0 odebrání
  1. +1
    -0
      .gitignore
  2. +72
    -0
      util

+ 1
- 0
.gitignore Zobrazit soubor

@@ -0,0 +1 @@
*.swp

+ 72
- 0
util Zobrazit soubor

@@ -0,0 +1,72 @@
#!/bin/sh

pull_backup() {
check_args $# 2
if [ ! -d "$BACKUPS_PATH/$2" ]; then
invalid_path_msg "$1:$2"
return 1;
fi

git -C $BACKUPS_PATH/$2 pull $1
}

push_backup() {
check_args $# 2
if [ ! -d "$BACKUPS_PATH/$2" ]; then
invalid_path_msg "$1:$2"
return 1;
fi

git -C $BACKUPS_PATH/$2 push $1
}

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

overwrite_backup() {
if [ git diff --stat $BACKUPS_PATH/$1 ]; then
printf "There are uncommited changes in $1\n"
return 1
fi
case "$1" in
configs) 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
}

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;;
pull-backup) pull_backup $2 $3;;
push-backup) push_backup $2 $3;;
push-backup) overwrite_backup $2 $3;;
*) printf "No such option\n";;
esac

Načítá se…
Zrušit
Uložit