#!/bin/bash

# --------------------------
# 擷取 remote list
# --------------------------
extract_list() {
    local input="$1"
    input="${input//[()]/}"     # 去掉括號
    IFS=',' read -ra result <<< "$input"
    echo "${result[@]}"
}

# --------------------------
# 主邏輯
# --------------------------

# 預設值
remotes=()
branches=()

# 取出第一個參數：應該是 (remote1,remote2)
if [[ "$1" =~ ^\(.+\)$ ]]; then
    remotes=($(extract_list "$1"))
    shift
else
    echo "❌ 請使用 (remote1,remote2) 的格式作為第一個參數"
    exit 1
fi

# 剩下的參數是 branches（若為空就抓當前 branch）
if [[ $# -gt 0 ]]; then
    branches=("$@")
else
    current_branch=$(git symbolic-ref --short HEAD 2>/dev/null)
    if [[ -z "$current_branch" ]]; then
        echo "❌ 無法偵測目前所在 branch，請指定"
        exit 1
    fi
    branches=("$current_branch")
fi

# --------------------------
# 執行 git push
# --------------------------
for remote in "${remotes[@]}"; do
    for branch in "${branches[@]}"; do
        echo "🚀 Pushing to '$remote' (branch: '$branch')..."
        git push "$remote" "$branch"
        if [[ $? -ne 0 ]]; then
            echo "❌ Push to '$remote' 失敗"
        fi
    done
done
