summaryrefslogtreecommitdiffstats
path: root/.bin/synchronize-pub-dots
diff options
context:
space:
mode:
Diffstat (limited to '.bin/synchronize-pub-dots')
-rwxr-xr-x.bin/synchronize-pub-dots53
1 files changed, 53 insertions, 0 deletions
diff --git a/.bin/synchronize-pub-dots b/.bin/synchronize-pub-dots
new file mode 100755
index 0000000..5a6e795
--- /dev/null
+++ b/.bin/synchronize-pub-dots
@@ -0,0 +1,53 @@
+#!/bin/sh
+
+set -e
+
+command -v yadm git
+
+allowed_patterns="-e ^.bin
+ -e ^.config/alacritty/
+ -e ^.config/calcurse/
+ -e ^.config/cmus/classic.theme
+ -e ^.config/cmus/rc
+ -e ^.config/dot/term-color-*
+ -e ^.config/gopass/config.yml
+ -e ^.config/i3*/config
+ -e ^.config/tmux/
+ -e ^.config/mimeapps.list
+ -e ^.config/neomutt/neomuttrc
+ -e ^.config/newsboat/config
+ -e ^.config/nvim/
+ -e ^.config/qutebrowser/config.py
+ -e ^.config/qutebrowser/greasemonkey/
+ -e ^.config/pipewire/
+ -e ^.config/sway/config
+ -e ^.config/systemd/*.service
+ -e ^.config/user-dirs.dir
+ -e ^.config/user-dirs.locale
+ -e ^.gnupg/gpg-agent.conf
+ -e ^.public-keys/
+ -e ^.kshrc
+ -e ^.weechat/buflist.conf
+ -e ^.weechat/fset.conf
+ -e ^.weechat/logger.conf
+ -e ^.weechat/weechat.conf
+ -e ^.xinitrc
+ -e ^.zshrc
+ "
+
+[ "$(yadm rev-parse --show-toplevel)" != "$(git rev-parse --show-toplevel)" ]
+
+# retrieve existing files
+upstream_files=$(cd "${HOME}" && yadm ls-files)
+local_files=$(find . -not -path "./.git*" -not -path ".")
+
+echo "${local_files}" | xargs rm -rf
+
+allowed_files=$(echo "${upstream_files}" | grep ${allowed_patterns})
+for allowed_file in ${allowed_files}; do
+ echo "${allowed_file}"
+ install -D "${HOME}/${allowed_file}" "${allowed_file}"
+done
+
+git add .
+git commit -m "$(date)"
remember that computers suck.