Escript: setting code path relative to script directory
Asked Answered
S

1

7

When I try to set a relative code path in a escript with -pz like this

#!/usr/bin/env escript
%% -*- erlang -*-
%%! -pz ../dir-of-some-beams

The path is interpreted relative to the directory from where I run the escript from, which renders it useless for setting the path relative to the script location.

My current "workaround" is using a absolute path which is annoying since all this is part of a repository and I don't want it to be location dependent.

So how can I set the code path relative to the directory the escript is located in?

Stationery answered 1/7, 2011 at 8:24 Comment(0)
S
19

Just found it out myself:

At the beginning of main add code like this:

true = code:add_pathz(filename:dirname(escript:script_name()) 
                       ++ "/../dir-of-some-beams"),

I recommend always testing for true whith these code functions, because its easy to type code:add_pathsz which wants a list of strings and always returns ok, even if you pass it just a string -- but it doesn't set the code path to the single directory (which is pretty annoying behaviour btw).

Stationery answered 1/7, 2011 at 8:54 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.