diff options
Diffstat (limited to '.old/sync')
-rwxr-xr-x | .old/sync/griff | 64 | ||||
-rwxr-xr-x | .old/sync/pull | 57 | ||||
-rwxr-xr-x | .old/sync/pushsite | 8 | ||||
-rwxr-xr-x | .old/sync/sink | 47 |
4 files changed, 176 insertions, 0 deletions
diff --git a/.old/sync/griff b/.old/sync/griff new file mode 100755 index 0000000..549b108 --- /dev/null +++ b/.old/sync/griff @@ -0,0 +1,64 @@ +#!/bin/sh +home=$(echo $HOME | sed 's/\//\\\//g') +repos="$(grep -v '#' | sed "s/\~/$home/")" << REPOS +#~/.local/src/programs/blr +~/.local/src/programs/dmenu +~/.config +~/.local/bin +~/.local/src/programs/st +~/.local/src/programs/timmywm +REPOS +#echo "$repos" | cut -f1 + +# Colors +BOLD="\033[1m" +NORM="\033[0m" +CYN="\033[0;36m" +RED="\033[0;31m" +GRN="\033[0;32m" +MAG="\033[0;35m" + +me() { echo $0 | sed 's/.*\///'; } +repocheck() { [ -z "$repos" ] && echo "No repos have been added!\nUse \"$(me) add\" or edit the script file to add a new repo!" && exit; } + +reponame() { sed -n 's/^\s*url.*\/\(.*\)\.git/\1/p' $1/.git/config; } + +rddiff() { + repocheck + for repo in $repos; do + name="$(reponame $repo)" + if cd $repo 2>/dev/null; then + if git diff --quiet HEAD $REF -- $DIR; then + echo "$GRN[Repo $name is unchanged!]$NORM" + else + echo "$CYN[Repo $name has changed:]$NORM" + git status | grep -v '(use' + read -p "Would you like to view the changes? [y/n]: " viewchange + case $viewchange in + y|yes|Y|Yes) git diff HEAD $REF -- $DIR ;; + esac + read -p "Would you like to push these changes? [y/n]: " pushchange + case $pushchange in + y|yes|Y|Yes) + while [ -z "$commitmsg" ]; do + read -p "Enter a commit message: " commitmsg + done + git add . && git commit -m "$commitmsg" && git push \ + && echo "$GRN[Changes to repo $name successfully pushed!]$NORM" \ + || echo "$RED[An error occured while pushing changes to repo $name!]$NORM" + commitmsg="" + ;; + esac + fi + else + echo "$BOLD$RED[Repo $name does not exist at $dir!]$NORM" + fi + done +} + +drdiff() { echo impl; } + +case $1 in + add) echo "add this in" ;; + *) rddiff ;; +esac diff --git a/.old/sync/pull b/.old/sync/pull new file mode 100755 index 0000000..f52ec5e --- /dev/null +++ b/.old/sync/pull @@ -0,0 +1,57 @@ +#!/bin/sh + +printusage() { echo "Usage: $0 [-b,--build] [<repo> ...] (repos: all,`echo $repos | tr ' ' ','`)" && exit; } + +repos=$repos"blr dmenu dotconfig scripts st timmywm" #repos=$repos"dotconfig|dwmpatches|scripts|st|timmywm" + +[ -z $1 ] || [ `echo "$@" | tr ' ' '\n' | grep -v -c '\-'` = 0 ] && printusage + +# Colors +BOLD="\033[1m" +NORM="\033[0m" +CYN="\033[0;36m" +RED="\033[0;31m" +GRN="\033[0;32m" +MAG="\033[0;35m" + +printsyncmsg() { echo "$CYN[Pulling repo '$arg'...]$NORM"; } +printsuccess() { echo "$BOLD$GRN[Successfully pulled repo '$arg']$NORM"; } +printerror() { echo "$BOLD$RED[Failed to pull repo '$arg']$NORM"; } + +#change colors +printmakemsg() { echo "$MAG[Building repo '$arg'...]$NORM"; } +printmakesuccess() { echo "$BOLD$GRN[Successfully built repo '$arg']$NORM"; } +printmakeerror() { echo "$BOLD$RED[Failed to build repo '$arg']$NORM"; } + +pullrepo() { + printsyncmsg + cd $1 && git pull --verbose \ + && printsuccess || printerror +} +makerepo() { + if echo "$opts" | grep '\-b'; then + printmakemsg + ${SUDO:-sudo} make clean install \ + && printmakesuccess || printmakeerror + fi +} +makeautoconf() { make autoconfig && echo "$BOLD$GRN[Automatically configured '$repo']$NORM"; } + +pullblr() { pullrepo ~/.local/src/programs/blr; } +pulldmenu() { pullrepo ~/.local/src/programs/dmenu && makeautoconf && makerepo; } +pulldotconfig() { pullrepo ~/.config; } +pullscripts() { pullrepo ~/.local/bin; } +pullst() { pullrepo ~/.local/src/programs/st && makeautoconf && makerepo; } +pulltimmywm() { pullrepo ~/.local/src/programs/timmywm && makeautoconf && makerepo; } + +for arg in "$@"; do + case $arg in + -b|--build) opts="$opts-b" ;; + all) $0 $opts $repos ;; + *) # Would like to use something like $repos) here but cant + for repo in $repos; do + [ "$arg" = "$repo" ] && pull$arg && break + done || printusage + ;; + esac +done diff --git a/.old/sync/pushsite b/.old/sync/pushsite new file mode 100755 index 0000000..1a1cbc3 --- /dev/null +++ b/.old/sync/pushsite @@ -0,0 +1,8 @@ +#!/bin/sh +ssh root@tjkeller.xyz << EOF +cd /var/www/tjkeller/ +git pull +cd articles +git pull +./tssg -r tssgmd . template.html +EOF diff --git a/.old/sync/sink b/.old/sync/sink new file mode 100755 index 0000000..b11b492 --- /dev/null +++ b/.old/sync/sink @@ -0,0 +1,47 @@ +#!/bin/sh +printusage() { echo "Usage: $0 [<repos> ...] (repos: all,`echo $repos | tr ' ' ','`) [up|down]" && exit; } + +repos="docs patches" + +oper=`echo $@ | sed 's/.* //'` # Get last argument +([ -z $2 ] || ([ "$oper" != "up" ] && [ "$oper" != "down" ])) && printusage + +# rync options +#fix this too +ropts="--archive --partial --progress --recursive --update --verbose" # Equivalent to: -aPrvu --delete +rdest="rsync@tjkeller.xyz:" + +# Colors +BOLD="\033[1m" +NORM="\033[0m" +CYN="\033[0;36m" +RED="\033[0;31m" +GRN="\033[0;32m" + +printsyncmsg() { echo -n "$CYN[Syncing $SYNCNAME...]$NORM\n"; } +printsuccess() { echo -n "$BOLD$GRN[Successfully synced $SYNCNAME]\n"; } +printerror() { echo -n "$BOLD$RED[An error occured while syncing $SYNCNAME]\n"; } + +sync() { + [ $oper = "up" ] && SYNCNAME="$1$2 to $rdest$2" || SYNCNAME="$rdest$2 to $1$2" + printsyncmsg + (if [ $oper = "up" ]; then rsync $ropts $1$2 $rdest; else rsync $ropts --delete $rdest$2 $1; fi) \ + && printsuccess || printerror +} + +# arg1 = options + containing directory path, arg2 = file/directory name +syncdocs() { destdir="" && sync "/home/timmy/docs/" "school"; } +#syncsites() { destdir="" && sync "--exclude=pass /home/timmy/.local/src/" "sites"; } # Excludes password file +syncpatches() { destdir="" && sync "--exclude=.git /home/timmy/.local/src/programs/" "patches"; } # Excludes git files + +for arg in "$@"; do + case $arg in + all) $0 $repos $oper ;; + up|down) oper=$arg ;; + *) # Would like to use something like $repos) here but cant + for repo in $repos; do + [ "$arg" = "$repo" ] && sync$arg && break + done || printusage + ;; + esac +done |