Add execPath function (#1743)

This commit is contained in:
Dmitry Sharshakov 2019-02-15 19:22:02 +03:00 committed by Ryan Dahl
parent 1d7c74e9b5
commit 4dc4329e27
6 changed files with 26 additions and 4 deletions

View file

@ -1,7 +1,7 @@
// Copyright 2018-2019 the Deno authors. All rights reserved. MIT license.
// Public deno module.
export { noColor, pid, env, exit, isTTY } from "./os";
export { noColor, pid, env, exit, isTTY, execPath } from "./os";
export { chdir, cwd } from "./dir";
export {
File,

View file

@ -12,11 +12,19 @@ export let pid: number;
/** Reflects the NO_COLOR environment variable: https://no-color.org/ */
export let noColor: boolean;
/** Path to the current deno process's executable file. */
export let execPath: string;
/** @internal */
export function setGlobals(pid_: number, noColor_: boolean): void {
export function setGlobals(
pid_: number,
noColor_: boolean,
execPath_: string
): void {
assert(!pid);
pid = pid_;
noColor = noColor_;
execPath = execPath_;
}
interface CodeInfo {
@ -190,7 +198,7 @@ export function start(source?: string): msg.StartRes {
util.setLogDebug(startResMsg.debugFlag(), source);
setGlobals(startResMsg.pid(), startResMsg.noColor());
setGlobals(startResMsg.pid(), startResMsg.noColor(), startResMsg.execPath()!);
return startResMsg;
}

View file

@ -65,7 +65,7 @@ union Any {
Now,
NowRes,
IsTTY,
IsTTYRes
IsTTYRes,
}
enum ErrorKind: byte {
@ -156,6 +156,7 @@ table StartRes {
cwd: string;
pid: uint32;
argv: [string];
exec_path: string;
debug_flag: bool;
deps_flag: bool;
types_flag: bool;

View file

@ -252,6 +252,9 @@ fn op_start(
let cwd_off =
builder.create_string(deno_fs::normalize_path(cwd_path.as_ref()).as_ref());
let exec_path =
builder.create_string(std::env::current_exe().unwrap().to_str().unwrap());
let v8_version = version::v8();
let v8_version_off = builder.create_string(v8_version);
@ -270,6 +273,7 @@ fn op_start(
v8_version: Some(v8_version_off),
deno_version: Some(deno_version_off),
no_color: !ansi::use_color(),
exec_path: Some(exec_path),
..Default::default()
},
);

1
tests/exec_path.ts Normal file
View file

@ -0,0 +1 @@
console.log(Deno.execPath);

View file

@ -38,6 +38,12 @@ def test_no_color(deno_exe):
print green_ok()
def exec_path_test(deno_exe):
cmd = [deno_exe, "tests/exec_path.ts"]
output = run_output(cmd)
assert deno_exe in output.strip()
def main(argv):
if len(argv) == 2:
build_dir = sys.argv[1]
@ -59,6 +65,8 @@ def main(argv):
deno_exe = os.path.join(build_dir, "deno" + executable_suffix)
check_exists(deno_exe)
exec_path_test(deno_exe)
# Internal tools testing
run([
"node", "./node_modules/.bin/ts-node", "--project",