lua-users home
lua-l archive

Re: require() relative to calling file

[Date Prev][Date Next][Thread Prev][Thread Next] [Date Index] [Thread Index]


It was thus said that the Great tobias@justdreams.de once stated:
> 
> Hi,
> 
> that topic has been discussed on several places in the we 
> (stackoverflow, etc..) and while people came up with some solutions, I 
> haven't really seen anybody making a case against it. So I'm 
> wondering if that behaviour could be build into Lua ...
> 
> What exactly do I mean?
> -----------------------
> 
> consider the following layout:
> -basedir
> \
> -scripts
> \
> -a.lua
> -b.lua
> 
> a.lua has a require('b')
> 
> Now if I do the following:
> # cd basedir/scripts
> # lua a.lua
> 
> everything runs smoothly. But if I
> # cd basedir
> # lua scripts/a.lua
> 
> I get an error that module 'b' can't be found because the searchpath 
> is based of the current working directory.
> 
> 
> How to deal with it?
> --------------------
 You could set LUA_PATH and LUA_CPATH before executing the program. You
could have a.lua do what you do below in C before the 'require "b"'
statement (the script name is in arg[0] by the way). You could wrap the
invocation of a.lua in a shell script that changes to the proper directory
to run it. 
 -spc

AltStyle によって変換されたページ (->オリジナル) /