2022-12-15 04:00:54 +00:00
|
|
|
---
|
|
|
|
title: Module commander
|
|
|
|
description: library for custom commands
|
|
|
|
layout: doc
|
|
|
|
menu:
|
|
|
|
docs:
|
|
|
|
parent: "API"
|
|
|
|
---
|
|
|
|
|
|
|
|
## Introduction
|
2023-01-20 23:07:42 +00:00
|
|
|
|
2022-12-15 04:00:54 +00:00
|
|
|
Commander is a library for writing custom commands in Lua.
|
2023-01-20 23:07:42 +00:00
|
|
|
In order to make it easier to write commands for Hilbish,
|
|
|
|
not require separate scripts and to be able to use in a config,
|
|
|
|
the Commander library exists. This is like a very simple wrapper
|
|
|
|
that works with Hilbish for writing commands. Example:
|
|
|
|
|
|
|
|
```lua
|
|
|
|
local commander = require 'commander'
|
|
|
|
|
|
|
|
commander.register('hello', function(args, sinks)
|
|
|
|
sinks.out:writeln 'Hello world!'
|
|
|
|
end)
|
|
|
|
```
|
|
|
|
|
|
|
|
In this example, a command with the name of `hello` is created
|
|
|
|
that will print `Hello world!` to output. One question you may
|
|
|
|
have is: What is the `sinks` parameter?
|
|
|
|
|
2023-02-07 19:39:22 +00:00
|
|
|
The `sinks` parameter is a table with 3 keys: `in`, `out`,
|
|
|
|
and `err`. The values of these is a <a href="/Hilbish/docs/api/hilbish/#sink" style="text-decoration: none;">Sink</a>.
|
2023-01-20 23:07:42 +00:00
|
|
|
|
|
|
|
- `in` is the standard input. You can read from this sink
|
|
|
|
to get user input. (**This is currently unimplemented.**)
|
|
|
|
- `out` is standard output. This is usually where text meant for
|
|
|
|
output should go.
|
|
|
|
- `err` is standard error. This sink is for writing errors, as the
|
|
|
|
name would suggest.
|
|
|
|
|
2022-12-15 04:00:54 +00:00
|
|
|
## Functions
|
|
|
|
### deregister(name)
|
|
|
|
Deregisters any command registered with `name`
|
|
|
|
|
|
|
|
### register(name, cb)
|
|
|
|
Register a command with `name` that runs `cb` when ran
|
|
|
|
|