view teal-src/module.d.tl @ 14016:1df1782ccdfe

prosodyctl shell: Improve process exit codes This fixes a bug introduced in 3326c8a29a86 where prosodyctl shell would always exit with non-zero error codes, even on success. Now it will exit with 0 for success, or 1 if any errors were printed. It also updates the other exit codes in the shell command to help distinguish between different error cases. These are based on the sysexits.h codes, although it is not recommended to rely on that interface.
author Matthew Wild <mwild1@gmail.com>
date Fri, 19 Dec 2025 15:32:26 +0000
parents 36284c879e2f
children
line wrap: on
line source

local st = require "prosody.util.stanza"

global record moduleapi
	get_name : function (moduleapi) : string
	get_host : function (moduleapi) : string
	enum host_type
		"global"
		"local"
		"component"
	end
	get_host_type : function (moduleapi) : host_type
	set_global : function (moduleapi)
	add_feature : function (moduleapi, string)
	add_identity : function (moduleapi, string, string, string) -- TODO enum?
	add_extension : function (moduleapi, st.stanza_t)
	fire_event : function (moduleapi, string, any) : any
	type handler = function (any) : any
	record util_events
		-- TODO import def
	end
	hook_object_event : function (moduleapi, util_events, string, handler, number)
	unhook_object_event : function (moduleapi, util_events, string, handler)
	hook : function (moduleapi, string, handler, number)
	hook_global : function (moduleapi, string, handler, number)
	hook_tag : function (moduleapi, string, string, handler, number)
	unhook : function (moduleapi, string, handler)
	wrap_object_event : function (moduleapi, util_events, string, handler)
	wrap_event : function (moduleapi, string, handler)
	wrap_global : function (moduleapi, string, handler)
	require : function (moduleapi, string) : table
	depends : function (moduleapi, string) : table
	shared : function (moduleapi, string) : table
	type config_getter = function<A> (moduleapi, string, A) : A
	get_option : config_getter<any>
	get_option_scalar : config_getter<nil | boolean | number | string>
	get_option_string : config_getter<string>
	get_option_number : function (moduleapi, string, number, number, number) : number
	get_option_integer : function (moduleapi, string, integer, integer, integer) : integer
	get_option_boolean : config_getter<boolean>
	get_option_enum : function<A> (moduleapi, string, ... : A) : A
	get_option_period : function (moduleapi, string|number, string|number, string|number, string|number) : number
	record util_array
		-- TODO import def
		{ any }
	end
	get_option_array : config_getter<util_array>
	record util_set
		-- TODO import def
		_items : { any : boolean }
	end
	get_option_set : function (moduleapi, string, { any }) : util_set
	get_option_inherited_set : function (moduleapi, string, { any }) : util_set
	get_option_path : function (moduleapi, string, string, string) : string
	context : function (moduleapi, string) : moduleapi
	add_item : function (moduleapi, string, any)
	remove_item : function (moduleapi, string, any)
	get_host_items : function (moduleapi, string) : { any }
	handle_items : function (moduleapi, string, handler, handler, boolean)
	provides : function (moduleapi, string, table)
	record util_session
		-- TODO import def
		send : function ( st.stanza_t | string )
	end
	send : function (moduleapi, st.stanza_t, util_session)
	send_iq : function (moduleapi, st.stanza_t, util_session, number)
	broadcast : function (moduleapi, { string }, st.stanza_t, function)
	type timer_callback = function (number, ... : any) : number
	record timer_wrapper
		stop : function (timer_wrapper)
		disarm : function (timer_wrapper)
		reschedule : function (timer_wrapper, number)
	end
	add_timer : function (moduleapi, number, timer_callback, ... : any) : timer_wrapper
	get_directory : function (moduleapi) : string
	enum file_mode
		"r" "w" "a" "r+" "w+" "a+"
	end
	load_resource : function (moduleapi, string, file_mode) : FILE
	enum store_type
		"keyval"
		"keyval+"
		"map"
		"archive"
	end
	open_store : function (moduleapi, string, store_type)
	enum stat_type
		"amount"
		"counter"
		"rate"
		"distribution"
		"sizes"
		"times"
	end
	record stats_conf
		initial : number
		units : string
		type : string
	end
	measure : function (moduleapi, string, stat_type, stats_conf)
	measure_object_event : function (moduleapi, util_events, string, string)
	measure_event : function (moduleapi, string, string)
	measure_global_event : function (moduleapi, string, string)
	enum status_type
		"error"
		"warn"
		"info"
		"core"
	end
	set_status : function (moduleapi, status_type, string, boolean)
	enum log_level
		"debug"
		"info"
		"warn"
		"error"
	end
	log_status : function (moduleapi, log_level, string, ... : any)
	get_status : function (moduleapi) : status_type, string, number

	-- added by modulemanager
	name : string
	host : string
	_log : function (log_level, string, ... : any)
	log : function (moduleapi, log_level, string, ... : any)
	reloading : boolean
	saved_state : any
	record module_environment
		module : moduleapi
	end
	environment : module_environment
	path : string
	resource_path : string

	-- access control
	may : function (moduleapi, string, table|string)
	default_permission : function (string, string)
	default_permissions : function (string, { string })

	-- methods the module can add
	load : function ()
	add_host : function (moduleapi)
	save : function () : any
	restore : function (any)
	unload : function ()

	-- added by mod_http
	http_url : function (moduleapi, string, string, string) : string
end

global module : moduleapi

global record common_event
	stanza : st.stanza_t
	record origin
		send : function (st.stanza_t)
	end
end

global record prosody
	version : string
end

return module