49 lines
1.2 KiB
Bash
49 lines
1.2 KiB
Bash
#!/usr/bin/env bash
|
||
set -euo pipefail
|
||
|
||
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||
# shellcheck source=lib/common.sh
|
||
source "${SCRIPT_DIR}/lib/common.sh"
|
||
|
||
usage() {
|
||
cat >&2 <<'EOF'
|
||
Usage: delete.sh <repo> [-y|--yes]
|
||
|
||
互動模式:會要求重新輸入完整 repo 名稱才執行。
|
||
-y / --yes 或 GITEA_YES=1:直接執行,不需輸入。
|
||
EOF
|
||
exit 1
|
||
}
|
||
|
||
[[ $# -ge 1 ]] || usage
|
||
|
||
REPO=""
|
||
while [[ $# -gt 0 ]]; do
|
||
case "$1" in
|
||
-y|--yes) GITEA_YES=1; shift ;;
|
||
-h|--help) usage ;;
|
||
-*) log_err "未知參數:$1"; usage ;;
|
||
*)
|
||
if [[ -z "$REPO" ]]; then REPO="$1"; else log_err "多餘參數:$1"; usage; fi
|
||
shift ;;
|
||
esac
|
||
done
|
||
|
||
[[ -n "$REPO" ]] || usage
|
||
|
||
load_config
|
||
|
||
log_warn "即將刪除 ${GITEA_USER}/${REPO}(此操作不可復原)"
|
||
confirm_exact_match "$REPO"
|
||
|
||
log_info "刪除 ${GITEA_USER}/${REPO}"
|
||
gitea_api DELETE "/repos/${GITEA_USER}/${REPO}"
|
||
|
||
case "$HTTP_CODE" in
|
||
204) log_ok "已刪除" ;;
|
||
404) log_err "找不到 repo:${GITEA_USER}/${REPO}"; exit 1 ;;
|
||
*) log_err "刪除失敗 (HTTP ${HTTP_CODE})"; { cat "$GITEA_API_RESP_FILE"; echo ""; } >&2; exit 1 ;;
|
||
esac
|
||
|
||
log_done "完成"
|