Releases: demonnic/muddler
CI bridge for Mudlet
Mpackage for monitoring and reinstalling projects
Adds new "outputFile" key to mfile, which when true causes muddler to write a .output file to the root of your project when it is done building. This file contains a simple json object with the package name and the file location.
Also adds a new Muddler.mpackage you can install in Mudlet which allows for reloading muddler packages when they are built, by adding a filewatch for the .output file and using the pkgname/path to drive a basic lifecycle. This lifecycle is intended to be develop time only, which is to say things you want to have happen when testing the package which you don't necessarily want to happen on pkg removal/install on your users machine, such as test object setup or teardown, running test functions, etc. If using this I recommend adding .output to your .gitignore file as it will see some churn during development.
The most basic of these might look like this:
myCIhelper = myCIhelper or Muddler:new({
path = "/home/demonnic/gitbox/MDK"
})
And is enough to cause Mudlet to uninstall and reinstall the MDK mpackage created when I run muddler in /home/demonnic/gitbox/MDK
. All available options are:
- path
- the path to the muddler project.
"/home/demonnic/gitbox/MDK"
for example
- the path to the muddler project.
- watch
- determines if it will start the watcher on instantiation, or can be checked to see if it is active
- preremove
- runs before pkg removal
- function or codestring like tempTimer/etc
- [[send("test")]]
- function() send("test") end
- postremove
- like preremove, but after pkg removal
- preinstall
- like preremove, but before pkg install
- postinstall
- like preremove, but after pkg install
The actual helper for MDK I'm using right now is setup like this
local function killMDK()
for pkgName, _ in pairs(package.loaded) do
if pkgName:find("MDK") then
debugc("Uncaching lua package " .. pkgName)
package.loaded[pkgName] = nil
end
end
end
local function create_helper()
if MDKhelper then MDKhelper:stop() end
MDKhelper = Muddler:new({
path = "/home/demonnic/gitbox/MDK",
postremove = killMDK,
})
end
if not MDKhelper then
registerAnonymousEventHandler("sysLoadEvent", create_helper)
end
And the output in the error console
Also fixes Key folders
Also makes the keybinding folders match what Mudlet outputs currently.
Error handling and improved output
Error handling
I finally added some error handling for things like malformed json or file access issues.
Better output
Which was really a part of the overall goal, which was having muddler give better output over all.
Additional Keybinding names
Since Mudlet refers to these keys by name, you can now refer to *
as 'asterisk', /
as 'slash', and -
as 'minus' . Previously you would just use the character itself but now if you wish you can use the English equivalent. 'plus' was a special case before as the literal +
is used for separating the parts of the keybinding, and so neeed to be represented elsewise. But it did seem oddly out of place, so I added the other three which were brought to my attention.
Mudlet 4.12 Package Manager updates
This release adds support for the new package information in Mudlet 4.12's package manager.
Adds the following keys in addition to the existing "package" and "version" ones
- title
- same as setting the title in the package exporter. Shown to the right of package name in the manager
- author
- That's you!
- description
- The longer description which is shown when you click on the package inside the package manager
- if not provided and your project has a README.md file (case sensitive, chosen because it is what github proffers by default) then it will be slurped as the description.
- icon
- the name of the icon file for the package. The file must be present in src/resources/ so that it can be copied to the proper location.
- for example, if icon is set to 'computer.png' then your project must have src/resources/computer.png present or this item will be skipped
So an example mfile for a project with a README.md file might be (pulled from my actual project which I used for testing)
{
"package": "Recoginator",
"title": "The recognition maker",
"version": "1.0.0",
"author": "Demonnic",
"icon": "computer.png"
}
Muddler 0.5 - timer bugfix
The time entry in the generated XML for timers wasn't quite formatted correctly which was resulting in timers that had no times, and thus ran continuously. This resolves that issue.
Muddler 0.4 - Small release to tidy some things up
This release doesn't change much.
- Version is no longer forced. If you don't provide it in the mfile it will be skipped
- filenames (.mpackage and .xml) now saved as packageName-packageVersion.extension if packageVersion is provided. Otherwise it is just packageName.extension
Download the distribution archives or docker pull demonnic/muddler:latest
to update your dockerized version.
Muddler 0.3
This version brings filtering for the token @PKGNAME@, which will be replaced by the $package-$version as read from the mfile or generated by muddler. Mostly for use in echos and file pathing and the like.
Muddler 0.2 - now with keybindings
Added key binding support to muddler. This leaves Buttons and Variables left undone, but I haven't heard of anyone using buttons in years.
Initial beta
First release! Head on over to the wiki for install instructions.