Fix 5 pre-release bugs
- Help text showed wrong config path (~/.portainer-cli vs ~/.config/portainer-cli)
- --port without colon (e.g. --port 8080) crashed with nil/tcp key; now errors clearly
- --cmd used naive split(' ') breaking quoted args; switched to Shellwords.split
- --env without '=' (e.g. --env FOO) silently passed empty value; now errors clearly
- SSL/connection errors surfaced as raw exception; now caught with actionable message
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -40,11 +40,19 @@ module PortainerCli
|
||||
ssl = OpenSSL::SSL::SSLSocket.new(raw, ctx)
|
||||
ssl.hostname = @url.host
|
||||
ssl.sync_close = true
|
||||
ssl.connect
|
||||
begin
|
||||
ssl.connect
|
||||
rescue OpenSSL::SSL::SSLError => e
|
||||
raw.close rescue nil
|
||||
hint = @ssl_verify ? " (try: portainer-cli configure → answer 'n' to SSL verification)" : ""
|
||||
raise "SSL connection failed: #{e.message}#{hint}"
|
||||
end
|
||||
ssl
|
||||
else
|
||||
raw
|
||||
end
|
||||
rescue Errno::ECONNREFUSED, Errno::EHOSTUNREACH, SocketError => e
|
||||
raise "Cannot connect to #{@url.host}:#{@url.port} — #{e.message}"
|
||||
end
|
||||
|
||||
def perform_handshake(socket)
|
||||
|
||||
Reference in New Issue
Block a user