diff options
Diffstat (limited to '.bin/sync-public-dotfiles')
-rwxr-xr-x | .bin/sync-public-dotfiles | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/.bin/sync-public-dotfiles b/.bin/sync-public-dotfiles new file mode 100755 index 0000000..7bff64f --- /dev/null +++ b/.bin/sync-public-dotfiles @@ -0,0 +1,52 @@ +#!/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/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)" |