sisterm(sist
) is a simple terminal with syntax highlighting which supports:
* Serial port connections
* TCP/IP (telnet) connections
* Log replaying
``` USAGE: sist [FLAGS] [OPTIONS] [SUBCOMMAND]
FLAGS: -n, --no-color Without color -t, --time-stamp Add timestamp to log -a, --append Append to log (default overwrite) -i, --instead-crlf Send '\r\n' instead of '\r' -h, --help Prints help information -V, --version Prints version information
OPTIONS:
-l, --line
SUBCOMMANDS: telnet Login to remote system host with telnet tcp TCP connection without telnet generate Generate configuration file help Prints this message or the help of the given subcommand(s) ```
Keystroke | Action
--------- | ------
~. | Drop the connection and exit
~^D | Drop the connection and exit
~^Z | Suspend (POSIX)
~n | Toggles the no-color
~t | Toggles the time-stamp
~i | Toggles the instead-crlf
~d | Toggles the debug mode
\~\~ | Send ~
~! | Run command in a sh
or cmd
~$ | Run command, sending the standard output
~? | Print this help
The binary name for sisterm is sist
.
sisterm is written in Rust, so you'll need to grab a Rust installation in order to compile it. sisterm compiles with Rust 1.43.0 (stable) or newer. Although sisterm may work with older versions.
.sh
$ cargo install sisterm
After that, execute the following to generate a configuration file.
.sh
$ sist generate
.sh
$ git clone https://github.com/kumavale/sisterm
$ cd sisterm
$ cargo build --release
%LOCALAPPDATA%\sisterm\config.toml
$HOME/.config/sisterm/config.toml
sisterm configuration file is written in TOML format.
Its syntax is similar to Perl-style regular expressions, but lacks a few features like look around and backreferences.
For more specific details on the API for regular expressions, please see the documentation for the Regex type.
[[colorings]]
color = "String" # required
regex = ["String", ...] # required
underlined = Boolean # option
ignore_whitespace = Boolean # option
```.toml
#
```
```.toml
[[colorings]] color = "184" regex = ["(\".\")|('.')|(\".)|('.)"] ignore_whitespace = true
[[colorings]] color = "GREEN" regex = ["(?i)yes|up|enable|enabled|active(?-i)"]
[[colorings]] underlined = true color = "(255, 0, 0)" regex = ["unassigned|disable|disabled|deny|shutdown|down|administratively|none"] ```
For GNU Linux pkg-config
and libudev
headers are required
* Ubuntu: sudo apt install pkg-config libudev-dev
* Fedora: sudo dnf install pkgconf-pkg-config systemd-devel
* Other: Some Linux distros are providing pkgconf.org's pkgconf
package instead of freedesktop.org's pkg-config
.
MIT
sudo chmod 666 /path/to/serialport
, running your program as the super-user (root), or making your program set-userid so that it runs as the owner of the device file. --instead-crlf
option