#!/usr/bin/env bash

add-git-remote() {
    if [[ -z "$1" ]]; then
        echo '$1/remote is empty.' >&2
        exit 1
    fi
    if [[ -z "$2" ]]; then
        echo '$2/url is empty.' >&2
        exit 1
    fi
    if [[ -z "$3" ]]; then
        echo '$3/path is empty.' >&2
        exit 1
    fi

    local remote_name="$1"
    local remote_url="$2"
    local submodule_path="$3"

    git -C "$submodule_path" remote add "$remote_name" "$remote_url" 2>/dev/null || true

    git config -f .gitmodules --add remotes."$submodule_path"."$remote_name" "$remote_url"
}
agr() {
    add-git-remote "$@"
}
