summaryrefslogtreecommitdiff
path: root/home-manager/resources/activation-scripts
diff options
context:
space:
mode:
Diffstat (limited to 'home-manager/resources/activation-scripts')
-rw-r--r--home-manager/resources/activation-scripts/clone-repos.sh19
1 files changed, 19 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..adf8fd7
--- /dev/null
+++ b/home-manager/resources/activation-scripts/clone-repos.sh
@@ -0,0 +1,19 @@
+#!/bin/sh
+
+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 $1 to $2
+ run mkdir -p $VERBOSE_ARG "$2"
+ run git clone $VERBOSE_ARG "$1" "$2"
+
+ # link files to $3
+ [ -z "$3" ] && return
+ run mkdir -p $VERBOSE_ARG "$3"
+ run ln -sf $VERBOSE_ARG "$2"/* "$3"
+}