# Sync common directories, setting url to ensure it's up-to-date first
SYNC_DIRS=(
    "$HOME/.password-store/"
    "$HOME/.elfeed/"
    "$HOME/Documents/Org/"
    "$HOME/Documents/References/"
)
SYNC_URLS=(
    "https://git.xenia.me.uk/pixelifytica/pass.git"
    "https://git.xenia.me.uk/pixelifytica/elfeed.git"
    "https://git.xenia.me.uk/pixelifytica/org.git"
    "https://git.xenia.me.uk/pixelifytica/references.git"
)

for i in "${!SYNC_DIRS[@]}"; do
    DIRECTORY="${SYNC_DIRS[$i]}"
    URL="${SYNC_URLS[$i]}"
    echo "--- sync: $DIRECTORY ---"
    if [ ! -d "$DIRECTORY" ]; then
        git clone "$URL" "$DIRECTORY"
    fi
    (
        cd "$DIRECTORY" || exit
        git remote set-url origin "$URL"
        git-sync -ns
    )
done

# Pull NixOS and Emacs config if simple fast-forward
PULL_DIRS=(
    "/etc/nixos"
    "${XDG_CONFIG_HOME:-$HOME/.config}/emacs"
)
PULL_URLS=(
    "https://git.xenia.me.uk/pixelifytica/nixos.git"
    "https://git.xenia.me.uk/pixelifytica/emacs.git"
)
for i in "${!PULL_DIRS[@]}"; do
    DIRECTORY="${PULL_DIRS[$i]}"
    URL="${PULL_URLS[$i]}"
    echo "--- pull: $DIRECTORY ---"
    if [ ! -d "$DIRECTORY" ]; then
        git clone "$URL" "$DIRECTORY"
    fi
    (
        cd "$DIRECTORY" || exit
        git remote set-url origin "$URL"
        git pull --ff-only
        git push
    )
done