My scripts for startup, dmenu, and the command line
Nelze vybrat více než 25 témat
Téma musí začínat písmenem nebo číslem, může obsahovat pomlčky („-“) a může být dlouhé až 35 znaků.
|
- #!/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
|