More doc updates, add telnet-bridge.md
This commit is contained in:
parent
ef022d6a00
commit
f23027ba1d
|
@ -67,6 +67,7 @@
|
||||||
- BBSLink
|
- BBSLink
|
||||||
- Combatnet
|
- Combatnet
|
||||||
- Exodus
|
- Exodus
|
||||||
|
- [Telnet Bridge]({{ site.baseurl }}{% link modding/telnet-bridge.md %})
|
||||||
- [Existing Mods]({{ site.baseurl }}{% link modding/existing-mods.md %})
|
- [Existing Mods]({{ site.baseurl }}{% link modding/existing-mods.md %})
|
||||||
- [File Area List]({{ site.baseurl }}{% link modding/file-area-list.md %})
|
- [File Area List]({{ site.baseurl }}{% link modding/file-area-list.md %})
|
||||||
- [Last Callers]({{ site.baseurl }}{% link modding/last-callers.md %})
|
- [Last Callers]({{ site.baseurl }}{% link modding/last-callers.md %})
|
||||||
|
|
|
@ -3,7 +3,7 @@ layout: page
|
||||||
title: Local Doors
|
title: Local Doors
|
||||||
---
|
---
|
||||||
## 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
|
||||||
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.
|
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). |
|
| `dropFileType` | :+1: | Specifies the type of dropfile to generate (See **Dropfile Types** below). |
|
||||||
| `cmd` | :+1: | Path to executable to launch. |
|
| `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.
|
| `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. |
|
| `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. |
|
| `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`. |
|
| `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
|
cmd: /usr/bin/dosemu
|
||||||
args: [
|
args: [
|
||||||
"-quiet",
|
"-quiet",
|
||||||
"-f",
|
"-f",
|
||||||
"/path/to/dosemu.conf",
|
"/path/to/dosemu.conf",
|
||||||
"X:\\PW\\START.BAT {dropFile} {node}"
|
"X:\\PW\\START.BAT {dropFile} {node}"
|
||||||
],
|
],
|
||||||
nodeMax: 1
|
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.
|
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
|
||||||
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 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.
|
[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
|
## Additional Resources
|
||||||
### DOSBox
|
### DOS Emulation
|
||||||
|
* [DOSEMU](http://www.dosemu.org/)
|
||||||
* [DOSBox-X](https://github.com/joncampbell123/dosbox-x)
|
* [DOSBox-X](https://github.com/joncampbell123/dosbox-x)
|
||||||
|
|
||||||
### Door Downloads & Support Sites
|
### Door Downloads & Support Sites
|
||||||
|
@ -233,4 +238,4 @@ doorLORD: {
|
||||||
* http://bbstorrents.bbses.info/
|
* http://bbstorrents.bbses.info/
|
||||||
|
|
||||||
#### L.O.R.D.
|
#### L.O.R.D.
|
||||||
* http://lord.lordlegacy.com/
|
* http://lord.lordlegacy.com/
|
||||||
|
|
|
@ -29,8 +29,8 @@ showWithExtraArgs: {
|
||||||
If the `showWithExtraArgs` menu was entered and passed `extraArgs` as the following:
|
If the `showWithExtraArgs` menu was entered and passed `extraArgs` as the following:
|
||||||
```json
|
```json
|
||||||
{
|
{
|
||||||
fizzBang : true,
|
"fizzBang" : true,
|
||||||
fooBaz : "LOLART"
|
"fooBaz" : "LOLART"
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
|
@ -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`.
|
||||||
|
|
Loading…
Reference in New Issue