aboutsummaryrefslogtreecommitdiffstats
path: root/util/startup.lua
Commit message (Collapse)AuthorAgeFilesLines
* util.startup: Add prosody.started promise to easily execute code after startupMatthew Wild2023-04-011-3/+14
| | | | | | | | | To avoid a race where server-started fires before the promise function body is run (on next tick), I moved server-started to fire on the next tick, which seems sensible anyway. Errors are logged, I'm not sure if we ought to be doing something more here. I'm sure we'll find out.
* util.startup: Tweak function string representationKim Alvefur2023-03-261-1/+1
| | | | | Mostly in order to avoid triggering the XML syntax highlighting in the console logger.
* util: Prefix module imports with prosody namespaceKim Alvefur2023-03-171-39/+39
|
* Merge 0.12->trunkKim Alvefur2023-01-221-1/+1
|\
| * util.startup: Close state on exit to ensure GC finalizers are calledKim Alvefur2023-01-221-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | Ensures a last round of garbage collection and that finalizers are called. Fixes things like proper closing of SQLite3 state. There are more calls to os.exit() but most of them exit with an error or in a case where a final GC sweep might not matter as much. It would be nice if this was the default. Calling util.statup.exit() everywhere may be sensible, but would be more involved, requiring imports everywhere.
* | util.mathcompat: Module to ease reuse of math.type()Kim Alvefur2022-10-201-10/+1
| | | | | | | | | | Mostly to ensure it is available during tests, as util.startup is not invoked there
* | util.startup: Provide a common Lua 5.3+ math.type() for Lua 5.2Kim Alvefur2022-10-191-0/+14
|/ | | | Code deduplication
* util.startup: Ensure import() is available in prosodyctl (thanks keyzer)Kim Alvefur2022-10-201-1/+1
| | | | | Fixes error in mod_authz_internal due to import() being unavailable as it was only loaded in Prosody proper
* util.startup: Fix async waiting for last shutdown stepsKim Alvefur2022-06-141-1/+5
| | | | | | | | | | | Observed problem: When shutting down prosody would immediately exit after waiting for s2s connections to close, skipping the last cleanup events and reporting the exit reason and code. This happens because prosody.main_thread is in a waiting state and queuing startup.shutdown is dispatched trough the main loop via nexttick, but since the main loop was no longer running at that point it proceeded to the end of the prosody script and exited there.
* util.startup: Show error for unrecognized arguments passed to 'prosody' ↵Matthew Wild2022-03-211-6/+13
| | | | (fixes #1722)
* prosody: Move last cleanup and shutdown code into util.startupKim Alvefur2019-01-011-0/+16
|
* util.startup: Enable DANE in http client library with use_daneKim Alvefur2022-02-051-0/+1
|
* util.startup: Teach prosodyctl to be completely --silentKim Alvefur2021-11-281-0/+3
|
* util.startup: Teach prosodyctl to be --quiet as complement to --verboseKim Alvefur2021-11-281-1/+7
| | | | | | | | Original motivation was tiresome warnings about Lua 5.4 not being supported yet. Can still be handy to tweak log level, e.g. to prevent logging to interfere with command output.
* util.startup: Allow supplying an argument parsing settingsKim Alvefur2022-01-091-2/+2
| | | | | | The 'prosody' global is not global this early so there was no way to override the process type field or argument parsing settings from outside, e.g. from the migrator.
* util.startup: Initialize util.async at startupMatthew Wild2021-11-291-0/+9
|
* util.startup: Integrate util.promise with net.server main loopKim Alvefur2019-01-051-0/+8
|
* util.startup: Understand -h, -? as --help in prosodyctl but ignoreKim Alvefur2021-10-251-1/+1
| | | | | prosodyctl -h showing an error was not very helpful, especially since prosodyctl shows its help for any unknown (or none) command.
* util.startup: Show brief usage on `prosody -h|-?|--help`Kim Alvefur2021-10-251-1/+8
| | | | | Seems more suitable than asking if prosodyctl was meant to be used, or going ahead and starting.
* util.startup: Skip config readability check in migrator (thanks eTaurus)Kim Alvefur2021-10-231-1/+1
| | | | | | This field is empty for reasons when invoked by prosody-migrator, which threw an error: > bad argument #1 to 'open' (string expected, got nil)
* util.startup: Only ask if 'prosodyctl' was meant instead of 'prosody' (fix ↵Kim Alvefur2021-10-121-1/+3
| | | | #1692)
* util.startup: Allow separate command line argument settings for prosody and ↵Kim Alvefur2021-09-301-6/+11
| | | | | | | prosodyctl Makes it clearer that prosody does not take -v atm, as well as how prosodyctl does not take the demonization flags.
* prosodyctl: Add support for -v/--verbose to enable debug loggingKim Alvefur2021-09-301-2/+4
| | | | More convenient than the environment variable.
* Merge 0.11->trunkMatthew Wild2021-05-131-1/+7
|\
| * util.startup: Set more aggressive defaults for GCMatthew Wild2021-05-071-1/+7
| | | | | | | | | | | | | | | | | | Testing has demonstrated that the default GC parameters are not sufficient to prevent runaway memory growth when running under Lua 5.2 and Lua 5.3. Setting the GC speed to 500 was tested on Lua versions 5.1->5.4 and did not display unbounded memory growth.
| * util.startup: Configure the GC on startup, using the config or built-in defaultsMatthew Wild2020-06-151-0/+17
| |
* | util.startup: Make installer_plugin_path relative to data directoryKim Alvefur2021-01-241-3/+2
| | | | | | | | | | | | Having it relative to current working directory is problematic since this depends on how Prosody was started and changes to the data directory during startup (but after this point).
* | util.startup: Don't create installer plugin path (as root)Kim Alvefur2021-01-241-2/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | Since this runs before dropping root, the directory ends up being owned by root, resulting in luarocks failing to install anything, since by then it would be running as the prosody user. luarocks creates this directory if needed, so creating it during startup is not necessary. One potential issue is if the directory is somewhere where Prosody can't write, but then you will simply have to create it yourself with the appropriate permissions.
* | util.startup: Handle missing nparams field from debug info (not present in 5.1)Matthew Wild2020-10-111-2/+3
| |
* | util.startup: Include arguments in function string representationKim Alvefur2020-10-091-2/+8
| | | | | | | | | | | | | | Improves usability of the console when digging around the internals. No specific rationale for the function<file:line>(args) format, it looked best of the variants I tried.
* | util.startup: Retrieve less data for function string representationKim Alvefur2020-10-091-1/+1
| | | | | | | | debug.getinfo(f) collects more info than what is needed here.
* | util.startup: Save the path used by the installer to prosody.pathsKim Alvefur2020-10-071-0/+1
| | | | | | | | | | | | Makes it easier for other parts of the code to use this for things, such as determining whether a certain module is from this path or from elsewhere.
* | util.startup: Fix startup failure if CFG_DATADIR is unsetKim Alvefur2020-10-051-1/+1
| | | | | | | | As is normal when running from source
* | util.startup: Re-enable installer path setupKim Alvefur2020-10-051-2/+2
| |
* | util.startup: Put 'installer_plugin_path' under data directory by defaultKim Alvefur2020-10-051-1/+1
| | | | | | | | | | Fixes issue where it ends up creating this in $PWD, which might be ~prosody, ~you or /, depending on how it's invoked.
* | util.startup: Init util.error with defaults if none givenMatthew Wild2020-08-281-1/+1
| |
* | util.error: Allow optional tracebacks to be injected on errorsMatthew Wild2020-08-281-0/+6
| | | | | | | | This allows extra debug info to be provided for development purposes.
* | Merge 0.11->trunkKim Alvefur2020-06-231-1/+0
|\|
| * util.startup: Remove duplicated initialization of logging (fix #1527)Kim Alvefur2020-06-221-1/+0
| |
* | util.argparse: Move exiting and error to util.startupKim Alvefur2020-06-171-1/+11
| | | | | | | | | | | | | | | | It's not so nice to have a library that exits the entire application from under you, so this and the error reporting belongs in util.startup. The argparse code was originally in util.startup but moved out in 1196f1e8d178 but the error handling should have stayed.
* | util.startup: Configure the GC on startup, using the config or built-in defaultsMatthew Wild2020-06-151-0/+17
| |
* | util.startup: Break out command line argument parsing into util.argparseKim Alvefur2020-02-191-49/+5
| | | | | | | | | | This will allow using it from other places such as prosodyctl sub-commands and plugins
* | util.startup: expose current process type (prosody/prosodyctl) in the global ↵Matthew Wild2020-01-281-0/+2
| | | | | | | | prosody object
* | Merge 0.11->trunkMatthew Wild2020-01-191-2/+1
|\|
| * util.startup: Ensure prosody.opts exists even when no options provided0.11.5Matthew Wild2020-01-191-1/+1
| |
| * util.startup: Remove accidentally-committed debuggingMatthew Wild2020-01-191-1/+0
| |
* | Merge 0.11->trunkMatthew Wild2020-01-191-37/+39
|\|
| * util.startup: Fix logic to make --config work againMatthew Wild2020-01-191-37/+39
| |
* | Merge 0.11->trunkMatthew Wild2020-01-191-6/+60
|\|
| * prosody/util.startup: Switch to parse_args() for --root and --configMatthew Wild2020-01-191-6/+6
| |