Skip to content

Commit

Permalink
Add execPath function (#1743)
Browse files Browse the repository at this point in the history
  • Loading branch information
Dmitry Sharshakov authored and ry committed Feb 15, 2019
1 parent 1d7c74e commit 4dc4329
Show file tree
Hide file tree
Showing 6 changed files with 26 additions and 4 deletions.
2 changes: 1 addition & 1 deletion js/deno.ts
Original file line number Diff line number Diff line change
@@ -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,
Expand Down
12 changes: 10 additions & 2 deletions js/os.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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 {
Expand Down Expand Up @@ -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;
}
3 changes: 2 additions & 1 deletion src/msg.fbs
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,7 @@ union Any {
Now,
NowRes,
IsTTY,
IsTTYRes
IsTTYRes,
}

enum ErrorKind: byte {
Expand Down Expand Up @@ -156,6 +156,7 @@ table StartRes {
cwd: string;
pid: uint32;
argv: [string];
exec_path: string;
debug_flag: bool;
deps_flag: bool;
types_flag: bool;
Expand Down
4 changes: 4 additions & 0 deletions src/ops.rs
Original file line number Diff line number Diff line change
Expand Up @@ -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);

Expand All @@ -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()
},
);
Expand Down
1 change: 1 addition & 0 deletions tests/exec_path.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
console.log(Deno.execPath);
8 changes: 8 additions & 0 deletions tools/test.py
Original file line number Diff line number Diff line change
Expand Up @@ -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]
Expand All @@ -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",
Expand Down

0 comments on commit 4dc4329

Please sign in to comment.