Skip to content

Commit 4d9c281

Browse files
JerrettDavisCopilot
andcommitted
fix(cli): align native wrapper help and version flags
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
1 parent 777faa8 commit 4d9c281

File tree

2 files changed

+50
-13
lines changed

2 files changed

+50
-13
lines changed

scripts/install.ps1

Lines changed: 31 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -155,7 +155,7 @@ function Invoke-HeadroomDocker {
155155
param([string[]]$Arguments)
156156
157157
$dockerArgs = New-Object System.Collections.Generic.List[string]
158-
$dockerArgs.AddRange(@('run','--rm','-it'))
158+
$dockerArgs.AddRange([string[]]@('run','--rm','-it'))
159159
$dockerArgs.AddRange((Get-SharedDockerArgs))
160160
$dockerArgs.Add('--entrypoint')
161161
$dockerArgs.Add('headroom')
@@ -201,7 +201,7 @@ function Start-ProxyContainer {
201201
202202
$containerName = "headroom-proxy-$Port-$PID"
203203
$dockerArgs = New-Object System.Collections.Generic.List[string]
204-
$dockerArgs.AddRange(@('run','-d','--rm','--name',$containerName,'-p',"$Port`:$Port"))
204+
$dockerArgs.AddRange([string[]]@('run','-d','--rm','--name',$containerName,'-p',"$Port`:$Port"))
205205
$dockerArgs.AddRange((Get-SharedDockerArgs))
206206
$dockerArgs.Add($HeadroomImage)
207207
$dockerArgs.Add('--host')
@@ -269,6 +269,9 @@ function Test-HelpFlag {
269269
param([string[]]$Arguments)
270270
271271
foreach ($arg in $Arguments) {
272+
if ($arg -eq '--') {
273+
break
274+
}
272275
if ($arg -eq '--help' -or $arg -eq '-?') {
273276
return $true
274277
}
@@ -481,12 +484,12 @@ function Invoke-OpenClawPrepareEntryJson {
481484
)
482485
483486
$dockerArgs = New-Object System.Collections.Generic.List[string]
484-
$dockerArgs.AddRange(@('run','--rm'))
487+
$dockerArgs.AddRange([string[]]@('run','--rm'))
485488
$dockerArgs.AddRange((Get-SharedDockerArgs))
486489
$dockerArgs.Add('--entrypoint')
487490
$dockerArgs.Add('headroom')
488491
$dockerArgs.Add($HeadroomImage)
489-
$dockerArgs.AddRange(@('wrap','openclaw','--prepare-only','--proxy-port',"$($Parsed.ProxyPort)",'--startup-timeout-ms',"$($Parsed.StartupTimeoutMs)"))
492+
$dockerArgs.AddRange([string[]]@('wrap','openclaw','--prepare-only','--proxy-port',"$($Parsed.ProxyPort)",'--startup-timeout-ms',"$($Parsed.StartupTimeoutMs)"))
490493
if ($ExistingEntryJson) {
491494
$dockerArgs.Add('--existing-entry-json')
492495
$dockerArgs.Add($ExistingEntryJson)
@@ -515,12 +518,12 @@ function Invoke-OpenClawPrepareUnwrapEntryJson {
515518
param([string]$ExistingEntryJson)
516519
517520
$dockerArgs = New-Object System.Collections.Generic.List[string]
518-
$dockerArgs.AddRange(@('run','--rm'))
521+
$dockerArgs.AddRange([string[]]@('run','--rm'))
519522
$dockerArgs.AddRange((Get-SharedDockerArgs))
520523
$dockerArgs.Add('--entrypoint')
521524
$dockerArgs.Add('headroom')
522525
$dockerArgs.Add($HeadroomImage)
523-
$dockerArgs.AddRange(@('unwrap','openclaw','--prepare-only'))
526+
$dockerArgs.AddRange([string[]]@('unwrap','openclaw','--prepare-only'))
524527
if ($ExistingEntryJson) {
525528
$dockerArgs.Add('--existing-entry-json')
526529
$dockerArgs.Add($ExistingEntryJson)
@@ -883,14 +886,14 @@ function Invoke-PrepareOnly {
883886
)
884887
885888
$dockerArgs = New-Object System.Collections.Generic.List[string]
886-
$dockerArgs.AddRange(@('run','--rm','-it'))
889+
$dockerArgs.AddRange([string[]]@('run','--rm','-it'))
887890
$dockerArgs.AddRange((Get-SharedDockerArgs))
888891
$dockerArgs.Add('--env')
889892
$dockerArgs.Add("HEADROOM_RTK_TARGET=$(Get-RtkTarget)")
890893
$dockerArgs.Add('--entrypoint')
891894
$dockerArgs.Add('headroom')
892895
$dockerArgs.Add($HeadroomImage)
893-
$dockerArgs.AddRange(@('wrap',$Tool,'--prepare-only'))
896+
$dockerArgs.AddRange([string[]]@('wrap',$Tool,'--prepare-only'))
894897
foreach ($arg in $KnownArgs) {
895898
$dockerArgs.Add($arg)
896899
}
@@ -910,6 +913,11 @@ if ($args.Count -eq 0) {
910913
911914
switch ($args[0]) {
912915
'wrap' {
916+
if ($args.Count -eq 1 -or $args[1] -eq '--help' -or $args[1] -eq '-?') {
917+
Invoke-HeadroomDocker -Arguments @('wrap','--help')
918+
exit 0
919+
}
920+
913921
if ($args.Count -lt 2) {
914922
Fail 'Usage: headroom wrap <claude|codex|aider|cursor|openclaw> [...]'
915923
}
@@ -928,12 +936,18 @@ switch ($args[0]) {
928936
exit 0
929937
}
930938
939+
if (Test-HelpFlag -Arguments $wrapArgs) {
940+
$helpArgs = @('wrap', $tool) + $wrapArgs
941+
Invoke-HeadroomDocker -Arguments $helpArgs
942+
exit 0
943+
}
944+
931945
$parsed = Parse-WrapArgs -Arguments $wrapArgs
932946
$proxyArgs = New-Object System.Collections.Generic.List[string]
933947
if ($parsed.Learn) { $proxyArgs.Add('--learn') }
934-
if ($parsed.Backend) { $proxyArgs.AddRange(@('--backend', $parsed.Backend)) }
935-
if ($parsed.Anyllm) { $proxyArgs.AddRange(@('--anyllm-provider', $parsed.Anyllm)) }
936-
if ($parsed.Region) { $proxyArgs.AddRange(@('--region', $parsed.Region)) }
948+
if ($parsed.Backend) { $proxyArgs.AddRange([string[]]@('--backend', $parsed.Backend)) }
949+
if ($parsed.Anyllm) { $proxyArgs.AddRange([string[]]@('--anyllm-provider', $parsed.Anyllm)) }
950+
if ($parsed.Region) { $proxyArgs.AddRange([string[]]@('--region', $parsed.Region)) }
937951
938952
switch ($tool) {
939953
'claude' { }
@@ -990,6 +1004,11 @@ switch ($args[0]) {
9901004
}
9911005
}
9921006
'unwrap' {
1007+
if ($args.Count -eq 1 -or $args[1] -eq '--help' -or $args[1] -eq '-?') {
1008+
Invoke-HeadroomDocker -Arguments @('unwrap','--help')
1009+
exit 0
1010+
}
1011+
9931012
if ($args.Count -ge 2 -and $args[1] -eq 'openclaw') {
9941013
$unwrapArgs = if ($args.Count -gt 2) { $args[2..($args.Count - 1)] } else { @() }
9951014
if (Test-HelpFlag -Arguments $unwrapArgs) {
@@ -1019,7 +1038,7 @@ switch ($args[0]) {
10191038
}
10201039
10211040
$dockerArgs = New-Object System.Collections.Generic.List[string]
1022-
$dockerArgs.AddRange(@('run','--rm','-it','-p',"$port`:$port"))
1041+
$dockerArgs.AddRange([string[]]@('run','--rm','-it','-p',"$port`:$port"))
10231042
$dockerArgs.AddRange((Get-SharedDockerArgs))
10241043
$dockerArgs.Add('--entrypoint')
10251044
$dockerArgs.Add('headroom')

scripts/install.sh

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -133,7 +133,7 @@ append_common_container_args() {
133133
ref+=(--user "$(id -u):$(id -g)")
134134
fi
135135
136-
append_passthrough_envs ref
136+
append_passthrough_envs "$1"
137137
}
138138
139139
append_tty_args() {
@@ -341,6 +341,9 @@ run_host_tool() {
341341
contains_help_flag() {
342342
local arg
343343
for arg in "$@"; do
344+
if [[ "${arg}" == "--" ]]; then
345+
break
346+
fi
344347
if [[ "${arg}" == "--help" || "${arg}" == "-?" ]]; then
345348
return 0
346349
fi
@@ -793,6 +796,11 @@ main() {
793796
794797
case "$1" in
795798
wrap)
799+
if (($# == 1)) || [[ "$2" == "--help" || "$2" == "-?" ]]; then
800+
run_headroom wrap --help
801+
return
802+
fi
803+
796804
(($# >= 2)) || die "Usage: headroom wrap <claude|codex|aider|cursor|openclaw> [...]"
797805
local tool="$2"
798806
shift 2
@@ -806,6 +814,11 @@ main() {
806814
return
807815
fi
808816
817+
if contains_help_flag "$@"; then
818+
run_headroom wrap "${tool}" "$@"
819+
return
820+
fi
821+
809822
local known_args host_args port no_rtk no_proxy learn backend anyllm region
810823
parse_wrap_args known_args host_args port no_rtk no_proxy learn backend anyllm region "$@"
811824
@@ -874,6 +887,11 @@ EOF
874887
esac
875888
;;
876889
unwrap)
890+
if (($# == 1)) || [[ "$2" == "--help" || "$2" == "-?" ]]; then
891+
run_headroom unwrap --help
892+
return
893+
fi
894+
877895
if (($# >= 2)) && [[ "$2" == "openclaw" ]]; then
878896
shift 2
879897
if contains_help_flag "$@"; then

0 commit comments

Comments
 (0)