Merge pull request #1562 from cdr/bindaddr
Deprecate --host and --port in favour of --bind-addr
This commit is contained in:
commit
37184f456c
|
@ -3,6 +3,7 @@
|
||||||
build
|
build
|
||||||
dist*
|
dist*
|
||||||
out*
|
out*
|
||||||
release*
|
release/
|
||||||
|
release-upload/
|
||||||
node_modules
|
node_modules
|
||||||
binaries
|
binaries
|
||||||
|
|
|
@ -40,4 +40,4 @@ RUN cd /tmp && tar -xzf code-server*.tar.gz && rm code-server*.tar.gz && \
|
||||||
EXPOSE 8080
|
EXPOSE 8080
|
||||||
USER coder
|
USER coder
|
||||||
WORKDIR /home/coder
|
WORKDIR /home/coder
|
||||||
ENTRYPOINT ["dumb-init", "fixuid", "-q", "/usr/local/bin/code-server", "--host", "0.0.0.0", "."]
|
ENTRYPOINT ["dumb-init", "fixuid", "-q", "/usr/local/bin/code-server", "--bind-addr", "0.0.0.0:8080", "."]
|
||||||
|
|
|
@ -43,6 +43,7 @@ function package() {
|
||||||
|
|
||||||
echo "done (release/$archive_name)"
|
echo "done (release/$archive_name)"
|
||||||
|
|
||||||
|
# release-upload is for uploading to the GCP bucket whereas release is used for GitHub.
|
||||||
mkdir -p "./release-upload/$VERSION"
|
mkdir -p "./release-upload/$VERSION"
|
||||||
cp "./release/$archive_name$ext" "./release-upload/$VERSION/$target-$arch$ext"
|
cp "./release/$archive_name$ext" "./release-upload/$VERSION/$target-$arch$ext"
|
||||||
mkdir -p "./release-upload/latest"
|
mkdir -p "./release-upload/latest"
|
||||||
|
|
|
@ -30,6 +30,7 @@ export interface Args extends VsArgs {
|
||||||
log?: LogLevel
|
log?: LogLevel
|
||||||
readonly open?: boolean
|
readonly open?: boolean
|
||||||
readonly port?: number
|
readonly port?: number
|
||||||
|
readonly "bind-addr"?: string
|
||||||
readonly socket?: string
|
readonly socket?: string
|
||||||
readonly version?: boolean
|
readonly version?: boolean
|
||||||
readonly force?: boolean
|
readonly force?: boolean
|
||||||
|
@ -88,11 +89,16 @@ const options: Options<Required<Args>> = {
|
||||||
"cert-key": { type: "string", path: true, description: "Path to certificate key when using non-generated cert." },
|
"cert-key": { type: "string", path: true, description: "Path to certificate key when using non-generated cert." },
|
||||||
"disable-updates": { type: "boolean", description: "Disable automatic updates." },
|
"disable-updates": { type: "boolean", description: "Disable automatic updates." },
|
||||||
"disable-telemetry": { type: "boolean", description: "Disable telemetry." },
|
"disable-telemetry": { type: "boolean", description: "Disable telemetry." },
|
||||||
host: { type: "string", description: "Host for the HTTP server." },
|
|
||||||
help: { type: "boolean", short: "h", description: "Show this output." },
|
help: { type: "boolean", short: "h", description: "Show this output." },
|
||||||
json: { type: "boolean" },
|
json: { type: "boolean" },
|
||||||
open: { type: "boolean", description: "Open in browser on startup. Does not work remotely." },
|
open: { type: "boolean", description: "Open in browser on startup. Does not work remotely." },
|
||||||
port: { type: "number", description: "Port for the HTTP server." },
|
|
||||||
|
"bind-addr": { type: "string", description: "Address to bind to in host:port." },
|
||||||
|
|
||||||
|
// These two have been deprecated by bindAddr.
|
||||||
|
host: { type: "string", description: "" },
|
||||||
|
port: { type: "number", description: "" },
|
||||||
|
|
||||||
socket: { type: "string", path: true, description: "Path to a socket (host and port will be ignored)." },
|
socket: { type: "string", path: true, description: "Path to a socket (host and port will be ignored)." },
|
||||||
version: { type: "boolean", short: "v", description: "Display version information." },
|
version: { type: "boolean", short: "v", description: "Display version information." },
|
||||||
_: { type: "string[]" },
|
_: { type: "string[]" },
|
||||||
|
|
|
@ -35,13 +35,21 @@ const main = async (args: Args): Promise<void> => {
|
||||||
const auth = args.auth || AuthType.Password
|
const auth = args.auth || AuthType.Password
|
||||||
const originalPassword = auth === AuthType.Password && (process.env.PASSWORD || (await generatePassword()))
|
const originalPassword = auth === AuthType.Password && (process.env.PASSWORD || (await generatePassword()))
|
||||||
|
|
||||||
|
let host = args.host
|
||||||
|
let port = args.port
|
||||||
|
if (args["bind-addr"] !== undefined) {
|
||||||
|
const u = new URL(`http://${args["bind-addr"]}`)
|
||||||
|
host = u.hostname
|
||||||
|
port = parseInt(u.port, 10)
|
||||||
|
}
|
||||||
|
|
||||||
// Spawn the main HTTP server.
|
// Spawn the main HTTP server.
|
||||||
const options: HttpServerOptions = {
|
const options: HttpServerOptions = {
|
||||||
auth,
|
auth,
|
||||||
commit,
|
commit,
|
||||||
host: args.host || (args.auth === AuthType.Password && typeof args.cert !== "undefined" ? "0.0.0.0" : "localhost"),
|
host: host || (args.auth === AuthType.Password && args.cert !== undefined ? "0.0.0.0" : "localhost"),
|
||||||
password: originalPassword ? hash(originalPassword) : undefined,
|
password: originalPassword ? hash(originalPassword) : undefined,
|
||||||
port: typeof args.port !== "undefined" ? args.port : process.env.PORT ? parseInt(process.env.PORT, 10) : 8080,
|
port: port !== undefined ? port : process.env.PORT ? parseInt(process.env.PORT, 10) : 8080,
|
||||||
proxyDomains: args["proxy-domain"],
|
proxyDomains: args["proxy-domain"],
|
||||||
socket: args.socket,
|
socket: args.socket,
|
||||||
...(args.cert && !args.cert.value
|
...(args.cert && !args.cert.value
|
||||||
|
|
|
@ -19,6 +19,7 @@ describe("cli", () => {
|
||||||
it("should parse all available options", () => {
|
it("should parse all available options", () => {
|
||||||
assert.deepEqual(
|
assert.deepEqual(
|
||||||
parse([
|
parse([
|
||||||
|
"--bind-addr=192.169.0.1:8080",
|
||||||
"--auth",
|
"--auth",
|
||||||
"none",
|
"none",
|
||||||
"--extensions-dir",
|
"--extensions-dir",
|
||||||
|
@ -74,6 +75,7 @@ describe("cli", () => {
|
||||||
"user-data-dir": path.resolve("bar"),
|
"user-data-dir": path.resolve("bar"),
|
||||||
verbose: true,
|
verbose: true,
|
||||||
version: true,
|
version: true,
|
||||||
|
"bind-addr": "192.169.0.1:8080",
|
||||||
},
|
},
|
||||||
)
|
)
|
||||||
})
|
})
|
||||||
|
@ -117,6 +119,7 @@ describe("cli", () => {
|
||||||
assert.throws(() => parse(["--auth=", "--log=debug"]), /--auth requires a value/)
|
assert.throws(() => parse(["--auth=", "--log=debug"]), /--auth requires a value/)
|
||||||
assert.throws(() => parse(["--auth", "--log"]), /--auth requires a value/)
|
assert.throws(() => parse(["--auth", "--log"]), /--auth requires a value/)
|
||||||
assert.throws(() => parse(["--auth", "--invalid"]), /--auth requires a value/)
|
assert.throws(() => parse(["--auth", "--invalid"]), /--auth requires a value/)
|
||||||
|
assert.throws(() => parse(["--bind-addr"]), /--bind-addr requires a value/)
|
||||||
})
|
})
|
||||||
|
|
||||||
it("should error if value is invalid", () => {
|
it("should error if value is invalid", () => {
|
||||||
|
|
Loading…
Reference in New Issue