How to run a lua script?

This is a raw noob question: I wanna run this script from icons-brew.yazi in my terminal

I do

nix-shell -p lua

and then

lua brew.lua

The output is

lua: brew.lua:4: module 'prepare' not found:
	no field package.preload['prepare']
	no file '/nix/store/0mzvskmmy5ffkfz5k8zdnq18pr6vyl1h-lua-5.2.4/share/lua/5.2/prepare.lua'
	no file '/nix/store/0mzvskmmy5ffkfz5k8zdnq18pr6vyl1h-lua-5.2.4/share/lua/5.2/prepare/init.lua'
	no file '/nix/store/0mzvskmmy5ffkfz5k8zdnq18pr6vyl1h-lua-5.2.4/lib/lua/5.2/prepare.lua'
	no file '/nix/store/0mzvskmmy5ffkfz5k8zdnq18pr6vyl1h-lua-5.2.4/lib/lua/5.2/prepare/init.lua'
	no file './prepare.lua'
	no file '/nix/store/0mzvskmmy5ffkfz5k8zdnq18pr6vyl1h-lua-5.2.4/lib/lua/5.2/prepare.so'
	no file '/nix/store/0mzvskmmy5ffkfz5k8zdnq18pr6vyl1h-lua-5.2.4/lib/lua/5.2/loadall.so'
	no file './prepare.so'
stack traceback:
	[C]: in function 'require'
	brew.lua:4: in main chunk
	[C]: in ?

nix-shell -p lua5_3 works, maybe loading something/init.lua is a feature added in lua 5.3

edit: yeah "./?/init.lua" added to default path · lua/lua@1245989 · GitHub

2 Likes

maybe not related but worth sharing IMO: different lua versions have different default LUA_PATH: those are tested here nixpkgs/pkgs/development/interpreters/lua-5/tests/default.nix at 9760b1436cbd78e69459476e3737e374260f13dd · NixOS/nixpkgs · GitHub

2 Likes