From 3fa99afa577701a2337b9e9cdfb30d381e01c221 Mon Sep 17 00:00:00 2001 From: Pierre Neidhardt Date: Sat, 5 Jun 2021 15:14:10 +0200 Subject: [PATCH] .local/bin/homesync: Delete since it's superseded by ambrevar/storage. --- .local/bin/homesync | 154 -------------------------------------------- 1 file changed, 154 deletions(-) delete mode 100755 .local/bin/homesync diff --git a/.local/bin/homesync b/.local/bin/homesync deleted file mode 100755 index c93979fc..00000000 --- a/.local/bin/homesync +++ /dev/null @@ -1,154 +0,0 @@ -#!/bin/sh - -usage() { - cat <&2 -Usage: ${0##*/} - -Sync home folder. -Data is indexed to \$PERSONAL/index. - -The '~/.gnupg' folder can be backup up to a LUKS encrypted device. - -Options: - - -d PATH: where the data is looked up for indexing. - -g DEVICE: Device where to sync ~/.gnupg. - -p: Push upstream. - -EOF - exit -} - -OPT_UPDATE=false -OPT_DEVICE="" -OPT_DATAROOT=$(findmnt -n --fstab --output TARGET | grep ^/media/) -[ -z "$OPT_DATAROOT" ] && OPT_DATAROOT=$(findmnt -n --list --output TARGET | grep ^/media/) -while getopts ":hd:g:p" opt; do - case $opt in - h) - usage - exit ;; - d) - OPT_DATAROOT="$OPTARG" ;; - p) - OPT_UPDATE=true ;; - g) - OPT_DEVICE="$OPTARG" ;; - \?) - usage - exit 1 ;; - esac -done - -shift $(($OPTIND - 1)) - -[ -z "$PERSONAL" ] && echo >&2 'Set $PERSONAL to project directory.' && exit 1 -[ -z "$XDG_CONFIG_HOME" ] && XDG_CONFIG_HOME="$HOME/.config" -[ -z "$XDG_DATA_HOME" ] && XDG_DATA_HOME="$HOME/.local/share" - -RED='\033[0;31m\033[1m' -GREEN='\033[0;32m\033[1m' -YELLOW='\033[0;33m\033[1m' -BOLD='\033[0m\033[1m' -NORMAL='\033[0m' - -section() { - echo -e "$GREEN==> $@$NORMAL" -} -message() { - echo -e "$YELLOW:: $@$NORMAL" -} - -if [ -n "$OPT_DATAROOT" ]; then - section Data index - for i in "$OPT_DATAROOT"/*; do - mkdir -p "$PERSONAL"/index/ - case "$i" in - */locate.db|*/lost+found|*/Sync*) - continue ;; - */public) - for j in "$i"/*; do - case "$j" in - */games|*/videos) - for k in "$j"/*; do - folder=$(basename $(dirname "$k")) - mkdir -p "$PERSONAL"/index/"$folder" - dataindex "$k" > "$PERSONAL"/index/"$folder"/"$(basename "$k")".index - unset folder - done ;; - *) - dataindex "$j" > "$PERSONAL"/index/"$(basename "$j")".index ;; - esac - done - continue ;; - */private) - for j in "$i"/*; do - mkdir -p "$PERSONAL"/index/private - [ -e "$j"/.encfs*.xml ] && continue - dataindex "$j" | gpg --encrypt --recipient mail@ambrevar.xyz \ - --output - > "$PERSONAL"/index/private/"$(basename "$j")".index.gpg - done - continue ;; - esac - done -fi - -if [ -n "$OPT_DEVICE" ]; then - section "GnuPG" - sudo cryptsetup open "$OPT_DEVICE" gpg_backup - MOUNT_POINT=/mnt - # MOUNT_POINT=/media/ambrevar/gpg_backup - sudo mount -o compress=zstd /dev/mapper/gpg_backup "$MOUNT_POINT" - gpg --import "$MOUNT_POINT"/public/.gnupg/pubring.gpg - sudo btrfs subvolume snapshot -r "$MOUNT_POINT"/public "$MOUNT_POINT"/.snapshots/public.$(date +%F_%R:%S) && \ - rm -rfv "$MOUNT_POINT"/public/.gnupg && \ - cp -av ~/.gnupg "$MOUNT_POINT"/public/ - sudo umount "$MOUNT_POINT" - sudo cryptsetup close gpg_backup - unset MOUNT_POINT -fi - -if [ -e ~/.cache/mail/.notmuch ]; then - section "Notmuch tags" - notmuch restore --accumulate --input="$PERSONAL"/mail/notmuch.dump - emacs --quick --batch --load=$HOME/.emacs.d/lisp/init-notmuch-sync.el \ - -f notmuch-dump-important-tags -fi - -for i in "$PERSONAL"/games/stowed-saves/*; do - section "Stowing '$i'" - stow -t ~ -d "$(dirname "$i")" "$(basename "$i")" -done - -project_status() { - local path=$1 - local title=$2 - local body=$3 - - [ -z "$body" ] && return - - if $CHANGED; then - section "$path" - CHANGED=false - fi - message "$title" - echo "$body" -} - -for i in ~/.password-store ~/common-lisp/* ~/projects/* ~/.local/share/emacs/site-lisp/* "$@"; do - [ ! -d "$i/.git" ] && continue - CHANGED=true - push=$(git -C "$i" rev-parse --abbrev-ref --symbolic-full-name @{push} 2>&1) - if [ $? -eq 0 ]; then - unmerged=$(git -C "$i" log --oneline "$push"..) - project_status "$i" "Unpushed commits" "$unmerged" - else - project_status "$i" "Unpushed commits" "No 'push' remote" - fi - project_status "$i" "Unstaged files" "$(git -C "$i" diff --name-only)" - project_status "$i" "Staged files" "$(git -C "$i" diff --name-only --cached)" - if $OPT_UPDATE && [ -n "$unmerged" ]; then - message "Pushing" - git -C "$i" push - fi -done