mirror of https://github.com/coder/coder.git
feat(scripts/develop.sh): add --debug flag to develop.sh (#12423)
Adds a `--debug` flag to `scripts/develop.sh` that will start coder under `dlv debug` instead. You can then use e.g. the following launch snippet to connect dlv: ``` { "name": "Delve Remote", "type": "go", "request": "attach", "mode": "remote", "port": 12345, } ``` You can also run invididual CLI commands under dlv e.g. ``` debug=1 scripts/coder-dev.sh list ``` Also sets CGO_ENABLED=0 in develop.sh by default.
This commit is contained in:
parent
8585863d0e
commit
61db293b33
|
@ -10,6 +10,7 @@ source "${SCRIPT_DIR}/lib.sh"
|
||||||
|
|
||||||
GOOS="$(go env GOOS)"
|
GOOS="$(go env GOOS)"
|
||||||
GOARCH="$(go env GOARCH)"
|
GOARCH="$(go env GOARCH)"
|
||||||
|
DEBUG_DELVE="${DEBUG_DELVE:-0}"
|
||||||
BINARY_TYPE=coder-slim
|
BINARY_TYPE=coder-slim
|
||||||
if [[ ${1:-} == server ]]; then
|
if [[ ${1:-} == server ]]; then
|
||||||
BINARY_TYPE=coder
|
BINARY_TYPE=coder
|
||||||
|
@ -55,4 +56,10 @@ coder)
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
exec "${CODER_DEV_BIN}" --global-config "${CODER_DEV_DIR}" "$@"
|
runcmd=("${CODER_DEV_BIN}")
|
||||||
|
if [[ "${DEBUG_DELVE}" == 1 ]]; then
|
||||||
|
set -x
|
||||||
|
runcmd=(dlv debug --headless --continue --listen 127.0.0.1:12345 --accept-multiclient ./cmd/coder --)
|
||||||
|
fi
|
||||||
|
|
||||||
|
CGO_ENABLED=0 exec "${runcmd[@]}" --global-config "${CODER_DEV_DIR}" "$@"
|
||||||
|
|
|
@ -14,11 +14,12 @@ source "${SCRIPT_DIR}/lib.sh"
|
||||||
set -euo pipefail
|
set -euo pipefail
|
||||||
|
|
||||||
CODER_DEV_ACCESS_URL="${CODER_DEV_ACCESS_URL:-http://127.0.0.1:3000}"
|
CODER_DEV_ACCESS_URL="${CODER_DEV_ACCESS_URL:-http://127.0.0.1:3000}"
|
||||||
|
debug=0
|
||||||
DEFAULT_PASSWORD="SomeSecurePassword!"
|
DEFAULT_PASSWORD="SomeSecurePassword!"
|
||||||
password="${CODER_DEV_ADMIN_PASSWORD:-${DEFAULT_PASSWORD}}"
|
password="${CODER_DEV_ADMIN_PASSWORD:-${DEFAULT_PASSWORD}}"
|
||||||
use_proxy=0
|
use_proxy=0
|
||||||
|
|
||||||
args="$(getopt -o "" -l access-url:,use-proxy,agpl,password: -- "$@")"
|
args="$(getopt -o "" -l access-url:,use-proxy,agpl,debug,password: -- "$@")"
|
||||||
eval set -- "$args"
|
eval set -- "$args"
|
||||||
while true; do
|
while true; do
|
||||||
case "$1" in
|
case "$1" in
|
||||||
|
@ -38,6 +39,10 @@ while true; do
|
||||||
use_proxy=1
|
use_proxy=1
|
||||||
shift
|
shift
|
||||||
;;
|
;;
|
||||||
|
--debug)
|
||||||
|
debug=1
|
||||||
|
shift
|
||||||
|
;;
|
||||||
--)
|
--)
|
||||||
shift
|
shift
|
||||||
break
|
break
|
||||||
|
@ -136,7 +141,7 @@ fatal() {
|
||||||
trap 'fatal "Script encountered an error"' ERR
|
trap 'fatal "Script encountered an error"' ERR
|
||||||
|
|
||||||
cdroot
|
cdroot
|
||||||
start_cmd API "" "${CODER_DEV_SHIM}" server --http-address 0.0.0.0:3000 --swagger-enable --access-url "${CODER_DEV_ACCESS_URL}" --dangerous-allow-cors-requests=true "$@"
|
DEBUG_DELVE="${debug}" start_cmd API "" "${CODER_DEV_SHIM}" server --http-address 0.0.0.0:3000 --swagger-enable --access-url "${CODER_DEV_ACCESS_URL}" --dangerous-allow-cors-requests=true "$@"
|
||||||
|
|
||||||
echo '== Waiting for Coder to become ready'
|
echo '== Waiting for Coder to become ready'
|
||||||
# Start the timeout in the background so interrupting this script
|
# Start the timeout in the background so interrupting this script
|
||||||
|
|
Loading…
Reference in New Issue