#!/usr/bin/env bash

source $HOME/dotfiles/bin/helpers/functions.sh

# Push all changes from $HOME/dotfiles to ALL remotes in $HOME/dotfiles/.git/config
push_all() {
    # Get all remotes from the .git/config file
    remotes=($(cat $HOME/dotfiles/.git/config | grep url | awk '{print $3}'))

    printfe "%s\n" "cyan" "Pushing all changes to all remotes..."

    # For each remote, push all changes
    for remote in "${remotes[@]}"; do
        printfe "%s" "green" "  - Pushing to ["
        printfe "%s" "blue" "$remote"
        printfe "%s\n" "green" "]..."

        result=$(git -C $HOME/dotfiles push $remote 2>&1)

        # If the push failed, print an error
        if [ $? -ne 0 ]; then
            printfe "%s\n" "red" "    - Failed to push to $remote:"
            printfe "%s\n" "red" "      $result"
            continue
        fi
    done
}

push_all
