# simple/mini shell chat This collection of scripts provides a simple chat service on a Unix system. Design considerations were small footprint, simple interface working also on dumb terminals, small system load, and requirement of standard command-line tools only. The suite was developed for use on but is licensed under BSD-3-Clause license. It is meant to be used on a friendly system, as it is running with normal user privileges, and therefore all users must have full read and write access to the required files. This obviously is not vandal-proof. Chat users are automatically identified with their user names, i.e users cannot choose their nicks. There is only one common channel, and no possibility to transmit private messages. Due to argument processing, whitespace between the first three words of any entered message will be reduced to one space each. All scripts display help information when started without arguments. The main script `schat.sh` will generate a config file `$HOME/.schatnrc` on the first start (or when this is missing) with definitions for strings surrounding the time-stamp and the nick during formatted output. These strings may also contain control characters like ESC-color-codes. An example is provided as `schatnrc.color` which can be copied into the config file. Due to simple formatting procedure, line lengths will be affected by length of control codes. For security reasons, backslashes `\` will be replaced by '/' and pipe symbols `|` by '!' in these configuration strings. To manage the chat and log files, `schatarch.sh` is provided which copies the file contents into new files with names extended by the current date. It will then keep the last N lines in the original files, with N being given as argument. ## Installation Please modify the installation script `install.sh` according to your local needs. In addition, you should prepare a directory for shared files used to store message text entered by users and notifications, e.g `/var/local/share/schat` or similar, and provide that name in the installation script as well. Then, execute the installation script (preferably in the directory containing it, otherwise it may not find the source code files), if necessary with the required permissions (e.g root, sudo), and confirm the prompt with hitting RETURN. The script will then try to install the executables and the shared files. Finally, users should add the directory with the executables to their path, and maybe copy (or symlink) the sample configuration file in the shared directory (see final note of installation script). --- *(2019-04-24 Yargo/HB9KNS)*