<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <link>https://soft.trung.fun/code/prosody/</link>
    <language>en-us</language>

    <title>prosody: prosodyctl history</title>
    <description>prosodyctl revision history</description>
    <item>
    <title>prosodyctl: Fix spacing in warning message</title>
    <link>https://soft.trung.fun/code/prosody/log/883d9d0ccd64/prosodyctl</link>
    <description><![CDATA[prosodyctl: Fix spacing in warning message]]></description>
    <author>&#77;&#97;&#116;&#116;&#104;&#101;&#119;&#32;&#87;&#105;&#108;&#100;&#32;&#60;&#109;&#119;&#105;&#108;&#100;&#49;&#64;&#103;&#109;&#97;&#105;&#108;&#46;&#99;&#111;&#109;&#62;</author>
    <pubDate>Tue, 01 Apr 2025 14:38:37 +0100</pubDate>
</item>
<item>
    <title>prosodyctl: Fix check for whether to show init system warning</title>
    <link>https://soft.trung.fun/code/prosody/log/e0bbf85edc21/prosodyctl</link>
    <description><![CDATA[prosodyctl: Fix check for whether to show init system warning<br/>
<br/>
Overlooked from testing.]]></description>
    <author>&#77;&#97;&#116;&#116;&#104;&#101;&#119;&#32;&#87;&#105;&#108;&#100;&#32;&#60;&#109;&#119;&#105;&#108;&#100;&#49;&#64;&#103;&#109;&#97;&#105;&#108;&#46;&#99;&#111;&#109;&#62;</author>
    <pubDate>Thu, 06 Feb 2025 15:43:23 +0000</pubDate>
</item>
<item>
    <title>prosodyctl: Further deprecate start/stop/restart commands when installed</title>
    <link>https://soft.trung.fun/code/prosody/log/b9d369f77121/prosodyctl</link>
    <description><![CDATA[prosodyctl: Further deprecate start/stop/restart commands when installed<br/>
<br/>
Despite the warning we introduced, many people continue to try using<br/>
prosodyctl to manage Prosody in the presence of systemctl (e.g. #1688).<br/>
<br/>
Also, despite the warning, prosodyctl proceeded with the operation. This means<br/>
the commands could be invoked by accident, and cause a situation that is hard<br/>
to recover from (needing to manually track down stray processes).<br/>
<br/>
This commit disables all the problematic commands by default, but this can<br/>
still be overridden using --force or via a config option.<br/>
<br/>
We only perform this check when we believe Prosody has been &quot;installed&quot; for<br/>
system-wide use (i.e. running it from a source directory is still supported).]]></description>
    <author>&#77;&#97;&#116;&#116;&#104;&#101;&#119;&#32;&#87;&#105;&#108;&#100;&#32;&#60;&#109;&#119;&#105;&#108;&#100;&#49;&#64;&#103;&#109;&#97;&#105;&#108;&#46;&#99;&#111;&#109;&#62;</author>
    <pubDate>Thu, 06 Feb 2025 14:51:31 +0000</pubDate>
</item>
<item>
    <title>prosodyctl: reload: Assume reload-via-socket if any arguments passed</title>
    <link>https://soft.trung.fun/code/prosody/log/9a66b53a5076/prosodyctl</link>
    <description><![CDATA[prosodyctl: reload: Assume reload-via-socket if any arguments passed]]></description>
    <author>&#77;&#97;&#116;&#116;&#104;&#101;&#119;&#32;&#87;&#105;&#108;&#100;&#32;&#60;&#109;&#119;&#105;&#108;&#100;&#49;&#64;&#103;&#109;&#97;&#105;&#108;&#46;&#99;&#111;&#109;&#62;</author>
    <pubDate>Thu, 06 Feb 2025 14:47:45 +0000</pubDate>
</item>
<item>
    <title>prosodyctl: Fix luacheck warning</title>
    <link>https://soft.trung.fun/code/prosody/log/d2969e163656/prosodyctl</link>
    <description><![CDATA[prosodyctl: Fix luacheck warning]]></description>
    <author>&#77;&#97;&#116;&#116;&#104;&#101;&#119;&#32;&#87;&#105;&#108;&#100;&#32;&#60;&#109;&#119;&#105;&#108;&#100;&#49;&#64;&#103;&#109;&#97;&#105;&#108;&#46;&#99;&#111;&#109;&#62;</author>
    <pubDate>Thu, 06 Feb 2025 14:46:36 +0000</pubDate>
</item>
<item>
    <title>prosodyctl: reload: Remove redundant require</title>
    <link>https://soft.trung.fun/code/prosody/log/0b37ce3e40cd/prosodyctl</link>
    <description><![CDATA[prosodyctl: reload: Remove redundant require]]></description>
    <author>&#77;&#97;&#116;&#116;&#104;&#101;&#119;&#32;&#87;&#105;&#108;&#100;&#32;&#60;&#109;&#119;&#105;&#108;&#100;&#49;&#64;&#103;&#109;&#97;&#105;&#108;&#46;&#99;&#111;&#109;&#62;</author>
    <pubDate>Thu, 06 Feb 2025 14:45:56 +0000</pubDate>
</item>
<item>
    <title>prosodyctl: stop: Fix detection of whether Prosody is running</title>
    <link>https://soft.trung.fun/code/prosody/log/4e7ac0e8dfc4/prosodyctl</link>
    <description><![CDATA[prosodyctl: stop: Fix detection of whether Prosody is running]]></description>
    <author>&#77;&#97;&#116;&#116;&#104;&#101;&#119;&#32;&#87;&#105;&#108;&#100;&#32;&#60;&#109;&#119;&#105;&#108;&#100;&#49;&#64;&#103;&#109;&#97;&#105;&#108;&#46;&#99;&#111;&#109;&#62;</author>
    <pubDate>Thu, 06 Feb 2025 14:35:29 +0000</pubDate>
</item>
<item>
    <title>prosodyctl: reload: Fix detection of whether prosody is running</title>
    <link>https://soft.trung.fun/code/prosody/log/7f6f0e47624a/prosodyctl</link>
    <description><![CDATA[prosodyctl: reload: Fix detection of whether prosody is running<br/>
<br/>
isrunning() returns two values (success, status) and we were only checking the<br/>
first one.]]></description>
    <author>&#77;&#97;&#116;&#116;&#104;&#101;&#119;&#32;&#87;&#105;&#108;&#100;&#32;&#60;&#109;&#119;&#105;&#108;&#100;&#49;&#64;&#103;&#109;&#97;&#105;&#108;&#46;&#99;&#111;&#109;&#62;</author>
    <pubDate>Thu, 06 Feb 2025 14:34:47 +0000</pubDate>
</item>
<item>
    <title>prosodyctl: reload: use admin socket to issue reload command, if available</title>
    <link>https://soft.trung.fun/code/prosody/log/263ae995bc86/prosodyctl</link>
    <description><![CDATA[prosodyctl: reload: use admin socket to issue reload command, if available]]></description>
    <author>&#77;&#97;&#116;&#116;&#104;&#101;&#119;&#32;&#87;&#105;&#108;&#100;&#32;&#60;&#109;&#119;&#105;&#108;&#100;&#49;&#64;&#103;&#109;&#97;&#105;&#108;&#46;&#99;&#111;&#109;&#62;</author>
    <pubDate>Thu, 06 Feb 2025 14:24:16 +0000</pubDate>
</item>
<item>
    <title>prosodyctl: Hide the 'lua_paths' command from default command listing</title>
    <link>https://soft.trung.fun/code/prosody/log/8617f5962e47/prosodyctl</link>
    <description><![CDATA[prosodyctl: Hide the 'lua_paths' command from default command listing<br/>
<br/>
All commands are called with a '-h' argument, but this one doesn't have<br/>
that. Since it's meant to be machine readable, hiding it seems<br/>
marginally more sensible than implementing '-h'.]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Wed, 08 Jan 2025 22:46:21 +0100</pubDate>
</item>
<item>
    <title>prosodyctl: Add lua_paths command to print the LUA_PATH and LUA_CPATH used</title>
    <link>https://soft.trung.fun/code/prosody/log/ff0f4d1f16c8/prosodyctl</link>
    <description><![CDATA[prosodyctl: Add lua_paths command to print the LUA_PATH and LUA_CPATH used<br/>
<br/>
This can be useful to run scripts and stuff with access to the same Lua paths<br/>
as Prosody uses.]]></description>
    <author>&#77;&#97;&#116;&#116;&#104;&#101;&#119;&#32;&#87;&#105;&#108;&#100;&#32;&#60;&#109;&#119;&#105;&#108;&#100;&#49;&#64;&#103;&#109;&#97;&#105;&#108;&#46;&#99;&#111;&#109;&#62;</author>
    <pubDate>Wed, 08 Jan 2025 20:37:35 +0000</pubDate>
</item>
<item>
    <title>prosodyctl: 'about' becomes 'version -v', 'version' prints only version</title>
    <link>https://soft.trung.fun/code/prosody/log/c0b6b6a12228/prosodyctl</link>
    <description><![CDATA[prosodyctl: 'about' becomes 'version -v', 'version' prints only version<br/>
<br/>
The 'about' command remains for backwards compatibility, but hidden.]]></description>
    <author>&#77;&#97;&#116;&#116;&#104;&#101;&#119;&#32;&#87;&#105;&#108;&#100;&#32;&#60;&#109;&#119;&#105;&#108;&#100;&#49;&#64;&#103;&#109;&#97;&#105;&#108;&#46;&#99;&#111;&#109;&#62;</author>
    <pubDate>Wed, 08 Jan 2025 20:35:05 +0000</pubDate>
</item>
<item>
    <title>prosodyctl: Remove unused import</title>
    <link>https://soft.trung.fun/code/prosody/log/6127b51803bb/prosodyctl</link>
    <description><![CDATA[prosodyctl: Remove unused import<br/>
<br/>
Leftover after 854df134274f]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Wed, 08 Jan 2025 08:52:50 +0100</pubDate>
</item>
<item>
    <title>prosodyctl: deluser: Use user:delete() shell command for implementation</title>
    <link>https://soft.trung.fun/code/prosody/log/854df134274f/prosodyctl</link>
    <description><![CDATA[prosodyctl: deluser: Use user:delete() shell command for implementation]]></description>
    <author>&#77;&#97;&#116;&#116;&#104;&#101;&#119;&#32;&#87;&#105;&#108;&#100;&#32;&#60;&#109;&#119;&#105;&#108;&#100;&#49;&#64;&#103;&#109;&#97;&#105;&#108;&#46;&#99;&#111;&#109;&#62;</author>
    <pubDate>Tue, 07 Jan 2025 19:28:06 +0000</pubDate>
</item>
<item>
    <title>prosodyctl: passwd: Use user:password() shell command for implementation</title>
    <link>https://soft.trung.fun/code/prosody/log/54803fb5b4d4/prosodyctl</link>
    <description><![CDATA[prosodyctl: passwd: Use user:password() shell command for implementation]]></description>
    <author>&#77;&#97;&#116;&#116;&#104;&#101;&#119;&#32;&#87;&#105;&#108;&#100;&#32;&#60;&#109;&#119;&#105;&#108;&#100;&#49;&#64;&#103;&#109;&#97;&#105;&#108;&#46;&#99;&#111;&#109;&#62;</author>
    <pubDate>Tue, 07 Jan 2025 19:25:35 +0000</pubDate>
</item>
<item>
    <title>prosodyctl: adduser: use shell user:create() to provide the implementation</title>
    <link>https://soft.trung.fun/code/prosody/log/6fafe51df188/prosodyctl</link>
    <description><![CDATA[prosodyctl: adduser: use shell user:create() to provide the implementation<br/>
<br/>
This allows user creation to happen inside the running Prosody process, which<br/>
improves a number of things - such as executing event handlers for user<br/>
creation, fixing issues and race conditions with some storage drivers, etc.<br/>
<br/>
The intent is to do the same for the other prosodyctl commands, but this is<br/>
the first proof of concept for the approach.]]></description>
    <author>&#77;&#97;&#116;&#116;&#104;&#101;&#119;&#32;&#87;&#105;&#108;&#100;&#32;&#60;&#109;&#119;&#105;&#108;&#100;&#49;&#64;&#103;&#109;&#97;&#105;&#108;&#46;&#99;&#111;&#109;&#62;</author>
    <pubDate>Tue, 07 Jan 2025 18:47:24 +0000</pubDate>
</item>
<item>
    <title>prosodyctl: Add experimental way to reload specific modules directly</title>
    <link>https://soft.trung.fun/code/prosody/log/6226f75f55a7/prosodyctl</link>
    <description><![CDATA[prosodyctl: Add experimental way to reload specific modules directly<br/>
<br/>
Mostly thinking out loud about how various actions may use the shell<br/>
<br/>
This enables the following sequence of commands:<br/>
<br/>
	prosodyctl install mod_example<br/>
	prosodyctl reload mod_example<br/>
<br/>
which is simpler than<br/>
<br/>
	prosodyctl shell module reload example]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Sun, 25 Jun 2023 17:34:13 +0200</pubDate>
</item>
<item>
    <title>Merge 0.12-&gt;trunk</title>
    <link>https://soft.trung.fun/code/prosody/log/a47bd6ea7626/prosodyctl</link>
    <description><![CDATA[Merge 0.12-&gt;trunk]]></description>
    <author>&#77;&#97;&#116;&#116;&#104;&#101;&#119;&#32;&#87;&#105;&#108;&#100;&#32;&#60;&#109;&#119;&#105;&#108;&#100;&#49;&#64;&#103;&#109;&#97;&#105;&#108;&#46;&#99;&#111;&#109;&#62;</author>
    <pubDate>Fri, 07 Apr 2023 16:00:23 +0100</pubDate>
</item>
<item>
    <title>prosodyctl: Fix using variable content in a format string</title>
    <link>https://soft.trung.fun/code/prosody/log/20b1526772d2/prosodyctl</link>
    <description><![CDATA[prosodyctl: Fix using variable content in a format string<br/>
<br/>
This broke if the error message contained a format specified such as '%s'.]]></description>
    <author>&#77;&#97;&#116;&#116;&#104;&#101;&#119;&#32;&#87;&#105;&#108;&#100;&#32;&#60;&#109;&#119;&#105;&#108;&#100;&#49;&#64;&#103;&#109;&#97;&#105;&#108;&#46;&#99;&#111;&#109;&#62;</author>
    <pubDate>Fri, 07 Apr 2023 15:54:59 +0100</pubDate>
</item>
<item>
    <title>executables: Prefix module imports with prosody namespace</title>
    <link>https://soft.trung.fun/code/prosody/log/7214baed9e9d/prosodyctl</link>
    <description><![CDATA[executables: Prefix module imports with prosody namespace]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Fri, 17 Mar 2023 16:29:54 +0100</pubDate>
</item>
<item>
    <title>executables: Invoke loader to allow mixing of old and new import style</title>
    <link>https://soft.trung.fun/code/prosody/log/4f2accd99373/prosodyctl</link>
    <description><![CDATA[executables: Invoke loader to allow mixing of old and new import style<br/>
<br/>
Now both require&quot;util.foo&quot; and require&quot;prosody.util.foo&quot; should be<br/>
equivalent.]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Fri, 17 Mar 2023 16:29:07 +0100</pubDate>
</item>
<item>
    <title>Merge 0.12-&gt;trunk</title>
    <link>https://soft.trung.fun/code/prosody/log/9f9633364044/prosodyctl</link>
    <description><![CDATA[Merge 0.12-&gt;trunk]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Sun, 22 Jan 2023 15:43:44 +0100</pubDate>
</item>
<item>
    <title>util.startup: Close state on exit to ensure GC finalizers are called</title>
    <link>https://soft.trung.fun/code/prosody/log/891edd1ebde6/prosodyctl</link>
    <description><![CDATA[util.startup: Close state on exit to ensure GC finalizers are called<br/>
<br/>
Ensures a last round of garbage collection and that finalizers are<br/>
called. Fixes things like proper closing of SQLite3 state.<br/>
<br/>
There are more calls to os.exit() but most of them exit with an error or<br/>
in a case where a final GC sweep might not matter as much.<br/>
<br/>
It would be nice if this was the default.<br/>
<br/>
Calling util.statup.exit() everywhere may be sensible, but would be more<br/>
involved, requiring imports everywhere.]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Sun, 22 Jan 2023 14:45:47 +0100</pubDate>
</item>
<item>
    <title>compat: Remove handling of Lua 5.1 location of 'unpack' function</title>
    <link>https://soft.trung.fun/code/prosody/log/39ae08180c81/prosodyctl</link>
    <description><![CDATA[compat: Remove handling of Lua 5.1 location of 'unpack' function]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Mon, 11 Jul 2022 19:07:38 +0200</pubDate>
</item>
<item>
    <title>executables: Reject Lua 5.1 early</title>
    <link>https://soft.trung.fun/code/prosody/log/10bb58ad5583/prosodyctl</link>
    <description><![CDATA[executables: Reject Lua 5.1 early<br/>
<br/>
Prevents attempting to load libraries that may no longer be found and<br/>
crashing with a traceback.<br/>
<br/>
Platforms like Debian where multiple Lua versions can be installed at<br/>
the same time and 'lua' pointing to one of the installed interpreters<br/>
via symlinks, there's the possibility that prosody/prosodyctl may be<br/>
invoked with Lua 5.1, which will no longer have any of the rest of<br/>
Prosody libraries available to be require(), and thus would immediately<br/>
fail with an unfriendly traceback.<br/>
<br/>
Checking and aborting early with a friendlier message and reference to<br/>
more information is better.<br/>
<br/>
Part of #1600]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Sat, 02 Jul 2022 17:27:39 +0200</pubDate>
</item>
<item>
    <title>prosodyctl: Pass server when listing (outdated) plugins (fix #1738)</title>
    <link>https://soft.trung.fun/code/prosody/log/c475a7802169/prosodyctl</link>
    <description><![CDATA[prosodyctl: Pass server when listing (outdated) plugins (fix #1738)<br/>
<br/>
Needed since it checks the manifest of the repository and most likely<br/>
defaults to luarocks.org unless specified]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Tue, 05 Apr 2022 14:27:37 +0200</pubDate>
</item>
<item>
    <title>prosodyctl about: Report version of lua-readline</title>
    <link>https://soft.trung.fun/code/prosody/log/1ee72c0013f3/prosodyctl</link>
    <description><![CDATA[prosodyctl about: Report version of lua-readline<br/>
<br/>
Good to know since it affects how well the shell works]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Sun, 27 Mar 2022 14:05:56 +0200</pubDate>
</item>
<item>
    <title>prosodyctl: Restore 'list --outdated'</title>
    <link>https://soft.trung.fun/code/prosody/log/7fe5cd8a10e2/prosodyctl</link>
    <description><![CDATA[prosodyctl: Restore 'list --outdated'<br/>
<br/>
Parsing --flags puts it into 'opts', so --outdated wasn't passed to<br/>
luarocks, breaking that functionality]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Thu, 17 Feb 2022 01:39:35 +0100</pubDate>
</item>
<item>
    <title>prosodyctl: Allow passing server on command line with --server</title>
    <link>https://soft.trung.fun/code/prosody/log/a52a0680fcd8/prosodyctl</link>
    <description><![CDATA[prosodyctl: Allow passing server on command line with --server<br/>
<br/>
Because why not I guess. This mirrors the corresponding luarocks command]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Fri, 04 Feb 2022 19:04:32 +0100</pubDate>
</item>
<item>
    <title>prosodyctl: Allow install plugin via explicit path or URL</title>
    <link>https://soft.trung.fun/code/prosody/log/24b0c4c4e28a/prosodyctl</link>
    <description><![CDATA[prosodyctl: Allow install plugin via explicit path or URL<br/>
<br/>
This way you don't need to set the server URL in the config to use this,<br/>
you could just ^C^V an install line from a web page that says<br/>
<br/>
	prosodyctl install https://modules.example.com/mod_example.src.rock<br/>
<br/>
Drop the help message in this case since it'll be all messed up by being<br/>
given an URL or rock filename.]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Fri, 04 Feb 2022 19:03:02 +0100</pubDate>
</item>
<item>
    <title>prosodyctl: Return success status code from --help</title>
    <link>https://soft.trung.fun/code/prosody/log/47d5233a1fc7/prosodyctl</link>
    <description><![CDATA[prosodyctl: Return success status code from --help<br/>
<br/>
Only when the help is shown because of invalid arguments should a<br/>
non-zero status code be returned to indicate a problem.]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Fri, 04 Feb 2022 19:01:34 +0100</pubDate>
</item>
<item>
    <title>prosodyctl: Use argument parsing library to parse --help, -h, -?</title>
    <link>https://soft.trung.fun/code/prosody/log/ba712f7559dc/prosodyctl</link>
    <description><![CDATA[prosodyctl: Use argument parsing library to parse --help, -h, -?<br/>
<br/>
Reads nicer, but adds more code. Can always be reverted later I suppose.]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Fri, 04 Feb 2022 18:56:01 +0100</pubDate>
</item>
<item>
    <title>prosodyctl: Hide process management commands when init system should be used instead</title>
    <link>https://soft.trung.fun/code/prosody/log/fc297128c33a/prosodyctl</link>
    <description><![CDATA[prosodyctl: Hide process management commands when init system should be used instead]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Tue, 21 Dec 2021 14:23:09 +0100</pubDate>
</item>
<item>
    <title>prosodyctl: Reorder help sections</title>
    <link>https://soft.trung.fun/code/prosody/log/949c2b52f51e/prosodyctl</link>
    <description><![CDATA[prosodyctl: Reorder help sections<br/>
<br/>
By how old the commands are?<br/>
Or how disruptive the changes are?<br/>
Or just by what feels best?]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Tue, 21 Dec 2021 13:11:41 +0100</pubDate>
</item>
<item>
    <title>prosodyctl: Fix weird indentation</title>
    <link>https://soft.trung.fun/code/prosody/log/248477e45c64/prosodyctl</link>
    <description><![CDATA[prosodyctl: Fix weird indentation]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Sat, 06 Nov 2021 18:45:44 +0100</pubDate>
</item>
<item>
    <title>Merge 0.11-&gt;trunk</title>
    <link>https://soft.trung.fun/code/prosody/log/42e98179c034/prosodyctl</link>
    <description><![CDATA[Merge 0.11-&gt;trunk]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Mon, 20 Sep 2021 15:51:43 +0200</pubDate>
</item>
<item>
    <title>prosodyctl: Fix later import of LuaFileSystem</title>
    <link>https://soft.trung.fun/code/prosody/log/49cfd3628d9d/prosodyctl</link>
    <description><![CDATA[prosodyctl: Fix later import of LuaFileSystem<br/>
<br/>
lfs or WHAT<br/>
<br/>
How did this even happen?]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Sat, 11 Sep 2021 22:26:50 +0200</pubDate>
</item>
<item>
    <title>prosodyctl: Add a note about checking the order of listed commands</title>
    <link>https://soft.trung.fun/code/prosody/log/7c03b1f4c388/prosodyctl</link>
    <description><![CDATA[prosodyctl: Add a note about checking the order of listed commands<br/>
<br/>
Should Plugin really be first? What order makes the most sense?]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Thu, 15 Jul 2021 00:38:27 +0200</pubDate>
</item>
<item>
    <title>prosodyctl: Add cert to command listing</title>
    <link>https://soft.trung.fun/code/prosody/log/d1e7f5b2f524/prosodyctl</link>
    <description><![CDATA[prosodyctl: Add cert to command listing<br/>
<br/>
This hides a whole bunch of subcommands tho, maybe those should be<br/>
explicitly listed?]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Thu, 15 Jul 2021 00:37:47 +0200</pubDate>
</item>
<item>
    <title>prosodyctl: Add 'shell' to command listing</title>
    <link>https://soft.trung.fun/code/prosody/log/a6c18f434d7b/prosodyctl</link>
    <description><![CDATA[prosodyctl: Add 'shell' to command listing]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Thu, 15 Jul 2021 00:35:57 +0200</pubDate>
</item>
<item>
    <title>prosodyctl: Add 'check' to command listing (fixes #1622)</title>
    <link>https://soft.trung.fun/code/prosody/log/4e36a1e7222b/prosodyctl</link>
    <description><![CDATA[prosodyctl: Add 'check' to command listing (fixes #1622)<br/>
<br/>
Along with infrastructure for the other commands that live in external<br/>
modules.]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Sun, 30 May 2021 12:27:12 +0200</pubDate>
</item>
<item>
    <title>Merge 0.11-&gt;trunk</title>
    <link>https://soft.trung.fun/code/prosody/log/ce7c52a6d650/prosodyctl</link>
    <description><![CDATA[Merge 0.11-&gt;trunk]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Thu, 27 May 2021 12:51:07 +0200</pubDate>
</item>
<item>
    <title>prosodyctl: Add 'limits' to known globals to warn about misplacing it</title>
    <link>https://soft.trung.fun/code/prosody/log/35e880501efd/prosodyctl</link>
    <description><![CDATA[prosodyctl: Add 'limits' to known globals to warn about misplacing it<br/>
<br/>
It will do nothing in a VirtualHost section for example.]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Thu, 27 May 2021 12:35:55 +0200</pubDate>
</item>
<item>
    <title>prosodyctl: Reorganize help / command list</title>
    <link>https://soft.trung.fun/code/prosody/log/a3d48204ec95/prosodyctl</link>
    <description><![CDATA[prosodyctl: Reorganize help / command list]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Fri, 22 Jan 2021 00:11:39 +0100</pubDate>
</item>
<item>
    <title>prosodyctl: Report OpenSSL version</title>
    <link>https://soft.trung.fun/code/prosody/log/0983653cbfdf/prosodyctl</link>
    <description><![CDATA[prosodyctl: Report OpenSSL version]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Wed, 12 May 2021 01:11:42 +0200</pubDate>
</item>
<item>
    <title>Merge 0.11-&gt;trunk</title>
    <link>https://soft.trung.fun/code/prosody/log/3bbb1af92514/prosodyctl</link>
    <description><![CDATA[Merge 0.11-&gt;trunk]]></description>
    <author>&#77;&#97;&#116;&#116;&#104;&#101;&#119;&#32;&#87;&#105;&#108;&#100;&#32;&#60;&#109;&#119;&#105;&#108;&#100;&#49;&#64;&#103;&#109;&#97;&#105;&#108;&#46;&#99;&#111;&#109;&#62;</author>
    <pubDate>Thu, 13 May 2021 11:17:13 +0100</pubDate>
</item>
<item>
    <title>prosodyctl about: Report libexpat version if known</title>
    <link>https://soft.trung.fun/code/prosody/log/d4b735272a61/prosodyctl</link>
    <description><![CDATA[prosodyctl about: Report libexpat version if known]]></description>
    <author>&#77;&#97;&#116;&#116;&#104;&#101;&#119;&#32;&#87;&#105;&#108;&#100;&#32;&#60;&#109;&#119;&#105;&#108;&#100;&#49;&#64;&#103;&#109;&#97;&#105;&#108;&#46;&#99;&#111;&#109;&#62;</author>
    <pubDate>Tue, 11 May 2021 14:15:22 +0100</pubDate>
</item>
<item>
    <title>prosodyctl: check config: Add 'gc' to list of global options</title>
    <link>https://soft.trung.fun/code/prosody/log/10bea0941bab/prosodyctl</link>
    <description><![CDATA[prosodyctl: check config: Add 'gc' to list of global options]]></description>
    <author>&#77;&#97;&#116;&#116;&#104;&#101;&#119;&#32;&#87;&#105;&#108;&#100;&#32;&#60;&#109;&#119;&#105;&#108;&#100;&#49;&#64;&#103;&#109;&#97;&#105;&#108;&#46;&#99;&#111;&#109;&#62;</author>
    <pubDate>Fri, 30 Apr 2021 21:20:14 +0100</pubDate>
</item>
<item>
    <title>prosodyctl: Add reference to #1602 (plugin installer docs) in comment</title>
    <link>https://soft.trung.fun/code/prosody/log/d7f0dc727a47/prosodyctl</link>
    <description><![CDATA[prosodyctl: Add reference to #1602 (plugin installer docs) in comment]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Thu, 21 Jan 2021 19:23:15 +0100</pubDate>
</item>
<item>
    <title>prosodyctl: Move message after condition</title>
    <link>https://soft.trung.fun/code/prosody/log/d0d64655e584/prosodyctl</link>
    <description><![CDATA[prosodyctl: Move message after condition<br/>
<br/>
If the condition is false, the message becomes a lie!]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Thu, 21 Jan 2021 19:20:08 +0100</pubDate>
</item>
<item>
    <title>prosodyctl: Fix copypaste oversight</title>
    <link>https://soft.trung.fun/code/prosody/log/2e9d4c517919/prosodyctl</link>
    <description><![CDATA[prosodyctl: Fix copypaste oversight]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Thu, 21 Jan 2021 19:16:24 +0100</pubDate>
</item>
<item>
    <title>prosodyctl: Abort if no plugin source specified for the installer</title>
    <link>https://soft.trung.fun/code/prosody/log/50ea7d9143ad/prosodyctl</link>
    <description><![CDATA[prosodyctl: Abort if no plugin source specified for the installer<br/>
<br/>
Better than having a non-working default.]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Thu, 21 Jan 2021 19:11:27 +0100</pubDate>
</item>
<item>
    <title>prosodyctl: Move UI related calls out of util.prosodyctl</title>
    <link>https://soft.trung.fun/code/prosody/log/a1939b261f67/prosodyctl</link>
    <description><![CDATA[prosodyctl: Move UI related calls out of util.prosodyctl<br/>
<br/>
I think this follows the general separation of duties between prosodyctl<br/>
and util.prosodyctl better.]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Thu, 21 Jan 2021 19:04:57 +0100</pubDate>
</item>
<item>
    <title>prosodyctl: Use luarocks status code as exit code</title>
    <link>https://soft.trung.fun/code/prosody/log/cd27ac5e5afe/prosodyctl</link>
    <description><![CDATA[prosodyctl: Use luarocks status code as exit code<br/>
<br/>
Enables some shell level error handling]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Thu, 21 Jan 2021 19:02:03 +0100</pubDate>
</item>
<item>
    <title>prosodyctl: Remove non-existant command from hidden commands</title>
    <link>https://soft.trung.fun/code/prosody/log/4e803e80d7b1/prosodyctl</link>
    <description><![CDATA[prosodyctl: Remove non-existant command from hidden commands<br/>
<br/>
Apparently there existed a plugin installer for a brief time in 2010,<br/>
between c5d3905c98a6 and 8f78e8164032]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Tue, 05 Jan 2021 17:08:24 +0100</pubDate>
</item>
<item>
    <title>util.prosodyctl: Get Luarocks server from config</title>
    <link>https://soft.trung.fun/code/prosody/log/56490ffde93f/prosodyctl</link>
    <description><![CDATA[util.prosodyctl: Get Luarocks server from config]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Mon, 05 Oct 2020 21:24:14 +0200</pubDate>
</item>
<item>
    <title>util.prosodyctl: Move hardcoded luarocks server into prosodyctl</title>
    <link>https://soft.trung.fun/code/prosody/log/3e3f22043552/prosodyctl</link>
    <description><![CDATA[util.prosodyctl: Move hardcoded luarocks server into prosodyctl<br/>
<br/>
To be replaced with config option in future commit]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Mon, 05 Oct 2020 21:24:07 +0200</pubDate>
</item>
<item>
    <title>util.prosodyctl: Flip argument order</title>
    <link>https://soft.trung.fun/code/prosody/log/624eafed3343/prosodyctl</link>
    <description><![CDATA[util.prosodyctl: Flip argument order<br/>
<br/>
&quot;verb subject&quot; feels better than &quot;subject verb&quot;, especially since the<br/>
subject (module) is optional.]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Mon, 05 Oct 2020 21:17:29 +0200</pubDate>
</item>
<item>
    <title>prosodyctl about: Show longer name for luaunbound</title>
    <link>https://soft.trung.fun/code/prosody/log/8ac958938e0f/prosodyctl</link>
    <description><![CDATA[prosodyctl about: Show longer name for luaunbound<br/>
<br/>
luaunbound, lunbound, lua-unbound ... &quot;kärt barn har många namn&quot;]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Fri, 10 Jul 2020 03:33:37 +0200</pubDate>
</item>
<item>
    <title>prosodyctl about: Strip name from lua module _VERSION</title>
    <link>https://soft.trung.fun/code/prosody/log/cff243aafdce/prosodyctl</link>
    <description><![CDATA[prosodyctl about: Strip name from lua module _VERSION<br/>
<br/>
Some modules have _VERSION = &quot;LuaModule x.y.z&quot;, so it is a bit weird<br/>
to show the name twice.]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Fri, 10 Jul 2020 03:29:06 +0200</pubDate>
</item>

  </channel>
</rss>
