@@ -12,21 +12,35 @@ OUTPUT_DIR="$3"
1212SCRIPT_DIR=" $( cd " $( dirname " ${BASH_SOURCE[0]} " ) " && pwd) "
1313ROOT_DIR=" $( cd " ${SCRIPT_DIR} /.." && pwd) "
1414SOURCE_DIR=" ${CLI_PROXY_SOURCE_DIR:- ${ROOT_DIR} / docs-linhay/ references/ CLIProxyAPI} "
15+ SOURCE_REPO=" ${CLI_PROXY_SOURCE_REPO:- https:// github.com/ linhay/ CLIProxyAPI.git} "
16+ SOURCE_REF=" ${CLI_PROXY_SOURCE_REF:- gettokens/ wham-token-fix} "
1517BINARY_NAME=" cli-proxy-api"
18+ TEMP_SOURCE_DIR=" "
19+ STAGE_DIR=" "
1620
1721if [[ " $GOOS " == " windows" ]]; then
1822 BINARY_NAME=" ${BINARY_NAME} .exe"
1923fi
2024
21- if [[ ! -d " ${SOURCE_DIR} " ]] ; then
22- echo " CLIProxyAPI source dir not found: ${SOURCE_DIR} " >&2
23- exit 1
24- fi
25+ ensure_source_dir () {
26+ if [[ -f " ${SOURCE_DIR} /go.mod " ]] ; then
27+ return 0
28+ fi
2529
26- if [[ ! -f " ${SOURCE_DIR} /go.mod" ]]; then
27- echo " CLIProxyAPI source dir is missing go.mod: ${SOURCE_DIR} " >&2
28- exit 1
29- fi
30+ TEMP_SOURCE_DIR=" $( mktemp -d) "
31+
32+ echo " → CLIProxyAPI source missing locally, cloning ${SOURCE_REPO} #${SOURCE_REF} " >&2
33+ git clone --depth 1 --branch " ${SOURCE_REF} " " ${SOURCE_REPO} " " ${TEMP_SOURCE_DIR} /CLIProxyAPI" >&2
34+ SOURCE_DIR=" ${TEMP_SOURCE_DIR} /CLIProxyAPI"
35+
36+ if [[ ! -f " ${SOURCE_DIR} /go.mod" ]]; then
37+ echo " CLIProxyAPI source dir is missing go.mod after clone: ${SOURCE_DIR} " >&2
38+ exit 1
39+ fi
40+ }
41+
42+ ensure_source_dir
43+ trap ' rm -rf "${TEMP_SOURCE_DIR}" "${STAGE_DIR}"' EXIT
3044
3145resolve_git_value () {
3246 local cmd=" $1 "
@@ -65,7 +79,6 @@ case "${GOOS}:${GOARCH}" in
6579 fi
6680
6781 STAGE_DIR=" $( mktemp -d) "
68- trap ' rm -rf "${STAGE_DIR}"' EXIT
6982
7083 ARM64_PATH=" ${STAGE_DIR} /cli-proxy-api-arm64"
7184 AMD64_PATH=" ${STAGE_DIR} /cli-proxy-api-amd64"
0 commit comments