Log In  


Cart #modman-0 | 2024-06-22 | Embed ▽ | License: CC4-BY-NC-SA
3

Mod Manager

Mod Manager is a simple tool for modifying your system!

Installation

Simply install the cart to your system and run it! The first time you run, you will be prompted
to select a mod path. This is where Mod Manager will look for ".mod" files to load.

Next time you run, if there are any ".mod" files in that directory, they will load it!

Command Line Usage

modman - Starts Mod Manager and loads mods
modman --config - Opens Mod Manager Configurator
modman --force - Reloads Mod Manager even after running for the first time in the session
modman --compile [path/to/uncompiledmod.txt] - Compiles mod and stores it in "compiled.mod"

.mod File

The specifics of the compiled .mod file are unimportant, as they are just Picotron POD objects as Lua Objects.

UnCompiled Mod File

UnCompiled Mod Files are very simple. It's basically one big list that has multiple entries for mods.

Take for example this UCM:

>
line:0
replace:false
modfile:false
target:/path/to/file/to/modify.lua
data:function hello()
data:    print("hi!")
data:end

>
line:0
replace:false
modfile:false
target:/path/to/file/to/modifyagain.lua
data:function hello2()
data:    print("hi again!")
data:end

Each "mod entry" is separated by a ">" character. Very simple.
Each entry has fields that are in the format of key:value
This is case sensitive and spaces aren't allowed (sorry!)

The only required fields are target and data.

Fields

target:[text] - Sets the file to modify to file at path [text].
data:[text] - Sets the data [text] to write/modify to the target.
modfile:[bool] - Whether or not data is another file, or just text.
line:[number] - Line to insert/replace. If 0, data will overwrite the whole target file.
replace:[bool] - Whether or not to insert the data, or write over by line.

Example

This is an example of Mod Manager and it's compiler with my Open in Terminal Mod!

Uncompiled Mod: Create a txt file in Picotron and write this:

>        
replace:false
line:69
modfile:false
targetpath:/system/apps/filenav.p64/main.lua
data:   menuitem{
data:       id="open_in_terminal",    
data:       label = "\^:7f7d7b7d7f083e00 Open in Terminal",
data:       action = function()
data:           create_process("/system/apps/terminal.lua", {path = pwd()})
data:       end
data:   }

>
replace:false
line:26
modfile:false
targetpath:/system/apps/terminal.lua
data:cd(env().path)
data:local path0 = env().argv[1] or "."
data:path = fullpath(path0)
data:cd(path)
data:if (pwd() == "/system/apps") cd("/")

Then, in your terminal:
modman --compile /path/to/mod.txt

This will compile it and store "compiled.mod" in your current directory!
Now move this to your mod folder, and when you run modman, this mod will load!

NOTE

Sorry that these docs are kinda trash... i'm really tired and can't think straight..

3


Hey, i noticed that you have a custom special char in your label. Is there a way to generate these with a toll?



[Please log in to post a comment]