More doc updates, add telnet-bridge.md

This commit is contained in:
Bryan Ashby 2020-05-15 18:45:26 -06:00
parent ef022d6a00
commit f23027ba1d
No known key found for this signature in database
GPG Key ID: B49EB437951D2542
4 changed files with 111 additions and 9 deletions

View File

@ -67,6 +67,7 @@
- BBSLink
- Combatnet
- Exodus
- [Telnet Bridge]({{ site.baseurl }}{% link modding/telnet-bridge.md %})
- [Existing Mods]({{ site.baseurl }}{% link modding/existing-mods.md %})
- [File Area List]({{ site.baseurl }}{% link modding/file-area-list.md %})
- [Last Callers]({{ site.baseurl }}{% link modding/last-callers.md %})

View File

@ -3,7 +3,7 @@ layout: page
title: Local Doors
---
## Local Doors
ENiGMA½ has many ways to add doors to your system. In addition to the many built in door server modules, local doors are of course also supported using the ! The `abracadabra` module!
ENiGMA½ has many ways to add doors to your system. In addition to the [many built in door server modules](door-servers.md), local doors are of course also supported using the ! The `abracadabra` module!
## The abracadabra Module
The `abracadabra` module provides a generic and flexible solution for many door types. Through this module you can execute native processes & scripts directly, and perform I/O through standard I/O (stdio) or a temporary TCP server.
@ -17,7 +17,7 @@ The `abracadabra` `config` block can contain the following members:
| `dropFileType` | :+1: | Specifies the type of dropfile to generate (See **Dropfile Types** below). |
| `cmd` | :+1: | Path to executable to launch. |
| `args` | :-1: | Array of argument(s) to pass to `cmd`. See **Argument Variables** below for information on variables that can be used here.
| `cwd` | :-1: | Sets the Current Working Directory (CWD) for `cmd`. Defaults to the directory of `cmd`. |
| `cwd` | :-1: | Sets the Current Working Directory (CWD) for `cmd`. Defaults to the directory of `cmd`. |
| `nodeMax` | :-1: | Max number of nodes that can access this door at once. Uses `name` as a tracking key. |
| `tooManyArt` | :-1: | Art spec to display if too many instances are already in use. |
| `io` | :-1: | How to process input/output (I/O). Can be `stdio` or `socket`. When using `stdio`, I/O is handled via standard stdin/stdout. When using `socket` a temporary socket server is spawned that can be connected back to. The server listens on localhost on `{srvPort}` (See **Argument Variables** below for more information). Default value is `stdio`. |
@ -99,8 +99,8 @@ doorPimpWars: {
cmd: /usr/bin/dosemu
args: [
"-quiet",
"-f",
"/path/to/dosemu.conf",
"-f",
"/path/to/dosemu.conf",
"X:\\PW\\START.BAT {dropFile} {node}"
],
nodeMax: 1
@ -149,7 +149,7 @@ Please see the [bivrost!](https://github.com/NuSkooler/bivrost) documentation fo
Pre-built binaries of bivrost! have been released under [Phenom Productions](https://www.phenomprod.com/) and can be found on various boards.
#### Alternative Workarounds
Alternative workarounds include Telnet Bridge (`telnet_bridge` module) to hook up Telnet-accessible (including local) door servers -- It may also be possible bridge via [NET2BBS](http://pcmicro.com/netfoss/guide/net2bbs.html).
Alternative workarounds include [Telnet Bridge module](telnet-bridge.md) to hook up Telnet-accessible (including local) door servers -- It may also be possible bridge via [NET2BBS](http://pcmicro.com/netfoss/guide/net2bbs.html).
### QEMU with abracadabra
[QEMU](http://wiki.qemu.org/Main_Page) provides a robust, cross platform solution for launching doors under many platforms (likely anywhere Node.js is supported and ENiGMA½ can run). Note however that there is an important and major caveat: **Multiple instances of a particular door/OS image should not be run at once!** Being more flexible means being a bit more complex. Let's look at an example for running L.O.R.D. under a UNIX like system such as Linux or FreeBSD.
@ -223,8 +223,13 @@ doorLORD: {
}
```
## See Also
* [Telnet Bridge](telnet-bridge.md)
* [Door Servers](door-servers.md)
## Additional Resources
### DOSBox
### DOS Emulation
* [DOSEMU](http://www.dosemu.org/)
* [DOSBox-X](https://github.com/joncampbell123/dosbox-x)
### Door Downloads & Support Sites
@ -233,4 +238,4 @@ doorLORD: {
* http://bbstorrents.bbses.info/
#### L.O.R.D.
* http://lord.lordlegacy.com/
* http://lord.lordlegacy.com/

View File

@ -29,8 +29,8 @@ showWithExtraArgs: {
If the `showWithExtraArgs` menu was entered and passed `extraArgs` as the following:
```json
{
fizzBang : true,
fooBaz : "LOLART"
"fizzBang" : true,
"fooBaz" : "LOLART"
}
```

View File

@ -0,0 +1,96 @@
---
layout: page
title: Telnet Bridge
---
## Telnet Bridge
The `telnet_bridge` module allows "bridged" Telnet connections from your board to other Telnet services (such as other BBSes!).
## Configuration
### Config Block
Available `config` entries:
* `host`: Hostname or IP address to connect to.
* `port`: Port to connect to. Defaults to the standard Telnet port of `23`.
* `font`: A SyncTERM style font. Useful for example if you would like to connect form a "DOS" style BBS to an Amiga. See [the general art documentation on SyncTERM Style Fonts](/docs/art/general.md).
### Example
Below is an example `menu.hjson` entry that would connect to [Xibalba](https://xibalba.l33t.codes):
```hjson
{
telnetBridgeXibalba: {
desc: Xibalba BBS
module: telnet_bridge
config: {
host: xibalba.l33t.codes
port: 45510
}
}
}
```
### Using Extra Args
The `telnet_bridge` module can also accept standard `extraArgs` of the same configuration arguments described above. This can be illustrated with an example:
```hjson
telnetBridgeMenu: {
desc: Telnet Bridge
art: telnet_bridge
config: {
font: cp437
}
form: {
0: {
mci: {
VM1: {
argName: selection
items: [
{
board: BLACK Flag
soft: Mystic
data: bf
}
{
board: Xibalba
soft: ENiGMA½
data: xib
}
]
// sort by 'board' fields above
sort: board
submit: true
}
}
submit: {
*: [
{
value: { "selection" : "bf" }
action: @menu:telnetBridgeFromExtraFlags
extraArgs: {
host: blackflag.acid.org
}
}
{
value: { "selection" : "xib" }
action: @menu:telnetBridgeFromExtraFlags
extraArgs: {
host: xibalba.l33t.codes
port: 44510
}
}
]
}
}
}
}
telnetBridgeFromExtraFlags: {
desc: Telnet Bridge
module: telnet_bridge
}
```
Here we've created a lightbar menu with custom items in which we'd use `itemFormat`'s with in a theme. When the user selects an item, the `telnetBridgeFromExtraFlags` menu is instantiated using the supplied `extraArgs`.