Changeset View
Changeset View
Standalone View
Standalone View
stand/lua/hook.lua.8
Property | Old Value | New Value |
---|---|---|
svn:eol-style | null | native \ No newline at end of property |
svn:keywords | null | FreeBSD=%H \ No newline at end of property |
svn:mime-type | null | text/plain \ No newline at end of property |
.\" | |||||
.\" SPDX-License-Identifier: BSD-2-Clause-FreeBSD | |||||
.\" | |||||
.\" Copyright (c) 2018 Kyle Evans <kevans@FreeBSD.org> | |||||
.\" All rights reserved. | |||||
.\" | |||||
rpokala: Per discussions over the last few months, remove "All rights reserved." | |||||
.\" Redistribution and use in source and binary forms, with or without | |||||
.\" modification, are permitted provided that the following conditions | |||||
.\" are met: | |||||
.\" 1. Redistributions of source code must retain the above copyright | |||||
.\" notice, this list of conditions and the following disclaimer. | |||||
.\" 2. Redistributions in binary form must reproduce the above copyright | |||||
.\" notice, this list of conditions and the following disclaimer in the | |||||
.\" documentation and/or other materials provided with the distribution. | |||||
.\" | |||||
.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND | |||||
.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE | |||||
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE | |||||
.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE | |||||
.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL | |||||
.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS | |||||
.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) | |||||
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT | |||||
.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY | |||||
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF | |||||
.\" SUCH DAMAGE. | |||||
.\" | |||||
.\" $FreeBSD$ | |||||
.\" | |||||
.Dd March 23, 2018 | |||||
.Dt HOOK.LUA 8 | |||||
.Os | |||||
.Sh NAME | |||||
.Nm hook.lua | |||||
.Nd FreeBSD hook module | |||||
.Sh DESCRIPTION | |||||
.Nm | |||||
contains functionality for defining hook types and attaching hooks to already | |||||
defined hook types. | |||||
.Pp | |||||
Before using the functionality provided by | |||||
.Nm , | |||||
it must be included with a statement such as the following: | |||||
.Pp | |||||
.Dl local hook = require("hook") | |||||
.Ss Exported functions | |||||
The following functions are exported from | |||||
.Nm : | |||||
.Bl -tag -width hook.registerType -offset indent | |||||
.It Fn hook.registerType hooktype | |||||
Adds | |||||
.Ev hooktype | |||||
as a recognized hook type. | |||||
This allows functions to be added to run when hooks of this type are invoked | |||||
using | |||||
.Fn hook.runAll hooktype . | |||||
.It Fn hook.register hooktype hookfunc | |||||
Register | |||||
.Ev hookfunc | |||||
to be ran when hooks of type | |||||
rpokalaUnsubmitted Done Inline Actions"to be run" rpokala: "to be **run**" | |||||
.Ev hooktype | |||||
are invoked. | |||||
.It Fn hook.runAll hooktype | |||||
Invoke all hooks registered for type | |||||
.Ev hooktype . | |||||
rpokalaUnsubmitted Done Inline ActionsDescribe the ordering in which multiple hooks of the same hooktype are run. rpokala: Describe the ordering in which multiple hooks of the same `hooktype` are run. | |||||
.El | |||||
.Ss Hook Naming Guidelines | |||||
Hook names should consist of the name of the module they are defined in as well | |||||
rpokalaUnsubmitted Done Inline Actions"in, as well" rpokala: "in**, **as well" | |||||
as a verb describing when the hook is executed, separated by a period. | |||||
For example, | |||||
.Dq config.reloaded | |||||
is defined in the config module and ran when configuration is reloaded. | |||||
rpokalaUnsubmitted Done Inline Actionsis defined in the rpokala: is defined in the
**.Xr config.lua 8**
module, and **run** when **the** configuration is… | |||||
.Sh EXAMPLES | |||||
To register a hook to be ran when configuration is reloaded: | |||||
rpokalaUnsubmitted Done Inline Actions"to be run" rpokala: "to be **run**" | |||||
.Pp | |||||
.Bd -literal -offset indent -compact | |||||
local hook = require("hook") | |||||
local function configuration_was_reloaded() | |||||
print("Configuration was reloaded!") | |||||
end | |||||
hook.register("config.reloaded", configuration_was_reloaded) | |||||
.Ed | |||||
.Sh AUTHORS | |||||
The | |||||
.Nm | |||||
file was originally written by | |||||
.An Kyle Evans Aq Mt kevans@FreeBSD.org . |
Per discussions over the last few months, remove "All rights reserved."