diff options
Diffstat (limited to 'home-manager/resources/activation-scripts')
-rw-r--r-- | home-manager/resources/activation-scripts/clone-repos.sh | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/home-manager/resources/activation-scripts/clone-repos.sh b/home-manager/resources/activation-scripts/clone-repos.sh new file mode 100644 index 0000000..eaee4dc --- /dev/null +++ b/home-manager/resources/activation-scripts/clone-repos.sh @@ -0,0 +1,30 @@ +#!/bin/sh + +server="https://git.tjkeller.xyz/" + +clonemissing() { + # pull and return if already existing + if [ -d "$2"/.git ]; then + run cd $VERBOSE_ARG "$2" + run git pull $VERBOSE_ARG || echo "$2: failed to pull from remote" + return + fi + + # clone to $2 + run mkdir -p $VERBOSE_ARG "$2" + run git clone $VERBOSE_ARG "$server$1" "$2" + + # link to $3 + [ -z "$3" ] && return + run mkdir -p $VERBOSE_ARG "$3" + run ln -sf $VERBOSE_ARG "$2"/* "$3" +} + +# # repo # clone to # link to +clonemissing scripts $HOME/docs/src/scripts $HOME/.local/bin +clonemissing dotconfig $HOME/docs/src/config $HOME/.config +clonemissing userscripts $HOME/docs/src/userscripts '' +clonemissing nixos $HOME/docs/src/nixos '' +clonemissing awesome $HOME/.config/awesome '' +clonemissing nvim $HOME/.config/nvim '' +clonemissing zsh $HOME/.config/zsh '' |