diff --git a/dup b/dup index 36e40f8..5ef4622 100755 --- a/dup +++ b/dup @@ -2,8 +2,21 @@ set -eu -PULL_BASE="https://adamgoldsmith.name/cgit" -PUSH_BASE="ag:/srv/git" +PULL_BASE="https://git.adamgoldsmith.name" +DOTFILES_PULL_BASE="${PULL_BASE}/dotfiles" +BOOTSTRAP_URL="${PULL_BASE}/adam/bootstrap.git" + +function sync_urls() { + cd "$(dirname ${BASH_SOURCE[0]})" + git remote set-url origin "$BOOTSTRAP_URL" + git remote set-url --push --delete origin '.*' || true + + for dir in */ + do + git -C "$dir" remote set-url origin "$DOTFILES_PULL_BASE/${dir%/}.git" + git -C "$dir" remote set-url --push --delete origin '.*' || true + done +} function do_get() { target="$1" @@ -12,11 +25,7 @@ function do_get() { echo "$target already exists, not getting" else echo "Getting $target" - git clone "$PULL_BASE/dotfiles/$target.git" --recurse-submodules - cd $target - git remote set-url origin "$PULL_BASE/dotfiles/$target.git" - git remote set-url --push origin "$PUSH_BASE/dotfiles/$target.git" - cd .. + git clone "$DOTFILES_PULL_BASE/$target.git" --recurse-submodules fi } @@ -92,6 +101,10 @@ do quiet=true shift ;; + --sync-urls) + sync_urls + exit + ;; --) shift break @@ -107,10 +120,9 @@ done if [ "$bootstrap" = true ] then - git clone "$PULL_BASE/bootstrap.git" .dotfiles + git clone "$BOOTSTRAP_URL" .dotfiles cd .dotfiles - git remote set-url origin "$PULL_BASE/bootstrap.git" - git remote set-url --push origin "$PUSH_BASE/bootstrap.git" + git remote set-url origin "$BOOTSTRAP_URL" else cd "$(dirname ${BASH_SOURCE[0]})" fi