Skip to content

Releases: demonnic/muddler

CI bridge for Mudlet

20 Jun 01:53
2ea74fa
Compare
Choose a tag to compare

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
  • 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

image

Also fixes Key folders

Also makes the keybinding folders match what Mudlet outputs currently.

Error handling and improved output

10 Jun 01:14
Compare
Choose a tag to compare

Error handling

I finally added some error handling for things like malformed json or file access issues.

image

Better output

Which was really a part of the overall goal, which was having muddler give better output over all.

image

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

03 Jun 05:01
Compare
Choose a tag to compare

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

22 Aug 22:47
Compare
Choose a tag to compare

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

22 Jul 22:52
Compare
Choose a tag to compare

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

10 Aug 05:00
7b436b8
Compare
Choose a tag to compare

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

19 Jul 23:50
3722efc
Compare
Choose a tag to compare

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

17 Jul 06:52
Compare
Choose a tag to compare

First release! Head on over to the wiki for install instructions.