Fix the use of Path.reach for program names
This commit is contained in:
parent
65f06e7454
commit
87fa4c080a
|
@ -160,7 +160,7 @@ module Mini_shexp = struct
|
||||||
in
|
in
|
||||||
let env = Context.extend_env ~vars:env_extra ~env in
|
let env = Context.extend_env ~vars:env_extra ~env in
|
||||||
Future.run Strict ~dir:(Path.to_string dir) ~env ~stdout_to
|
Future.run Strict ~dir:(Path.to_string dir) ~env ~stdout_to
|
||||||
(Path.reach ~from:dir prog) args
|
(Path.reach_for_running ~from:dir prog) args
|
||||||
|
|
||||||
let rec exec t ~dir ~env ~env_extra ~stdout_to ~tail =
|
let rec exec t ~dir ~env ~env_extra ~stdout_to ~tail =
|
||||||
match t with
|
match t with
|
||||||
|
|
15
src/path.ml
15
src/path.ml
|
@ -261,6 +261,21 @@ let reach t ~from =
|
||||||
]
|
]
|
||||||
| true, true -> Local.reach t ~from
|
| true, true -> Local.reach t ~from
|
||||||
|
|
||||||
|
let reach_for_running t ~from =
|
||||||
|
match is_local t, is_local from with
|
||||||
|
| false, _ -> t
|
||||||
|
| true, false ->
|
||||||
|
Sexp.code_error "Path.reach_for_running called with invalid combination"
|
||||||
|
[ "t" , sexp_of_t t
|
||||||
|
; "from", sexp_of_t from
|
||||||
|
]
|
||||||
|
| true, true ->
|
||||||
|
let s = Local.reach t ~from in
|
||||||
|
if String.is_prefix s ~prefix:"../" then
|
||||||
|
s
|
||||||
|
else
|
||||||
|
"./" ^ s
|
||||||
|
|
||||||
let descendant t ~of_ =
|
let descendant t ~of_ =
|
||||||
if is_local t && is_local of_ then
|
if is_local t && is_local of_ then
|
||||||
Local.descendant t ~of_
|
Local.descendant t ~of_
|
||||||
|
|
|
@ -49,6 +49,7 @@ val relative : t -> string -> t
|
||||||
val absolute : string -> t
|
val absolute : string -> t
|
||||||
|
|
||||||
val reach : t -> from:t -> string
|
val reach : t -> from:t -> string
|
||||||
|
val reach_for_running : t -> from:t -> string
|
||||||
|
|
||||||
val descendant : t -> of_:t -> t option
|
val descendant : t -> of_:t -> t option
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue