From fa30c58013689488b25f6918882ad63a93becaa9 Mon Sep 17 00:00:00 2001 From: 0scar Date: Wed, 17 Aug 2022 15:51:39 +0200 Subject: Add script to easily merge local and repo files --- merge_conf | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100755 merge_conf (limited to 'merge_conf') diff --git a/merge_conf b/merge_conf new file mode 100755 index 0000000..9b87179 --- /dev/null +++ b/merge_conf @@ -0,0 +1,26 @@ +#!/usr/bin/env sh + +SUBMODULES=$(git submodule status | sed -E 's/ [a-z0-9]+ ([^ ]+) .*/\1/') +FILES=$(tree -aqifF --noreport --prune .local .config | sed -E '/\/$/d;s/\*$//') + +for submodule in ${SUBMODULES}; do + SS=$(printf '%s' "${submodule}" | sed 's/\//\\\//g;s/\./\\./g') + FILES=$(printf '%s' "${FILES}" | sed -E "/${SS}/d") +done + +function copy() { + local FILE="${1}" + echo -ne "missing $FILE\n" + read -p "copy to local config? [y/n]:" yn + case $yn in + [Yy]*) cp $f ~/$f;; + [Nn]*) return;; + esac +} + +for f in ${FILES}; do + [ -e "${HOME}/${f}" ] || copy $f + + diff -q "${HOME}/${f}" "${f}" >/dev/null + [ $? -ne 0 ] && vimdiff "${HOME}/${f}" "${f}" +done -- cgit v1.3