External Scripts

Post Reply
User avatar
tsuujin
Posts: 695
Joined: Fri Feb 26, 2010 12:59 am
Location: California
Contact:

External Scripts

Post by tsuujin »

Ok, so when i used MUSH i had all of my scripts in a folder, and set my working directory to that folder so that I could

require "file"

and it would load that script.

Now I'm on mudlet with linux... any tips on replicating this?

User avatar
Heiko
Site Admin
Posts: 1548
Joined: Wed Mar 11, 2009 6:26 pm

Re: External Scripts

Post by Heiko »

The recommended way is to use dofile( getMudletHomeDir().."/scripts/yourscript.lua" ).
Mudlet home dir will get you the currently loaded profile directory. Currently, this is linked to the user's system home directory + .config/mudlet/profiles + profile name. In the near future this will be configurable by the user to make entirely self contained installs possible in order to install Mudlet on a flash drive.

User avatar
Rakon
Posts: 350
Joined: Tue Feb 16, 2010 7:41 pm
Contact:

Re: External Scripts

Post by Rakon »

Hello, Heiko.

I've tried using your method, among others for loading a script from the profile script directory (that I created), and Mudlet throws errors at me for not finding the file.

Code: Select all


 Lua syntax error:[string "require(getMudletHomeDir() .. "/scripts/dic..."]:1: module '/home/chris/.
config/mudlet/profiles/Rakon/scripts/dict.lua' not found:
	no field package.preload['/home/chris/.config/mudlet/profiles/Rakon/scripts/dict.lua']
	no file './/home/chris//config/mudlet/profiles/Rakon/scripts/dict/lua.lua'
	no file '/usr/local/share/lua/5.1//home/chris//config/mudlet/profiles/Rakon/scripts/dict/lua.lua'
	no file '/usr/local/share/lua/5.1//home/chris//config/mudlet/profiles/Rakon/scripts/dict/lua/init.
lua'
	no file '/usr/local/lib/lua/5.1//home/chris//config/mudlet/profiles/Rakon/scripts/dict/lua.lua'
	no file '/usr/local/lib/lua/5.1//home/chris//config/mudlet/profiles/Rakon/scripts/dict/lua/init.
lua'
	no file '/usr/share/lua/5.1//home/chris//config/mudlet/profiles/Rakon/scripts/dict/lua.lua'
	no file '/usr/share/lua/5.1//home/chris//config/mudlet/profiles/Rakon/scripts/dict/lua/init.lua'
	no file './/home/chris//config/mudlet/profiles/Rakon/scripts/dict/lua.so'
	no file '/usr/local/lib/lua/5.1//home/chris//config/mudlet/profiles/Rakon/scripts/dict/lua.so'
	no file '/usr/lib/lua/5.1//home/chris//config/mudlet/profiles/Rakon/scripts/dict/lua.so'
	no file '/usr/local/lib/lua/5.1/loadall.so'
	no file './/home/chris/.so'
	no file '/usr/local/lib/lua/5.1//home/chris/.so'
	no file '/usr/lib/lua/5.1//home/chris/.so'
	no file '/usr/local/lib/lua/5.1/loadall.so'
ERROR: Lua compile error. compiling script of script:Main
I know the file exists, its just a one function'r to test the 'require' method.

Code: Select all

chris@ubutop:~/.config/mudlet/profiles/Rakon/scripts$ ls
dict.lua
The code I'm using in the Mudlet script dialog is:

Code: Select all

require(getMudletHomeDir() .. "/scripts/dict.lua")

User avatar
Heiko
Site Admin
Posts: 1548
Joined: Wed Mar 11, 2009 6:26 pm

Re: External Scripts

Post by Heiko »

My error. Require doesn't accept absolute pathes.
You'll need to use dofile() directly like this:

Code: Select all

dofile( getMudletHomeDir() .. "/scripts/test.lua" )

Post Reply