Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/bcyran/fancy-motd
Fancy, colorful MOTD written in bash. Server status at a glance.
https://github.com/bcyran/fancy-motd
bash linux motd server shell
Last synced: about 1 month ago
JSON representation
Fancy, colorful MOTD written in bash. Server status at a glance.
- Host: GitHub
- URL: https://github.com/bcyran/fancy-motd
- Owner: bcyran
- License: mit
- Created: 2020-09-05T22:15:09.000Z (over 4 years ago)
- Default Branch: master
- Last Pushed: 2024-05-09T15:22:40.000Z (8 months ago)
- Last Synced: 2024-08-02T13:34:53.606Z (5 months ago)
- Topics: bash, linux, motd, server, shell
- Language: Shell
- Homepage:
- Size: 1.56 MB
- Stars: 154
- Watchers: 3
- Forks: 30
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE.md
Awesome Lists containing this project
README
# Fancy MOTD
Fancy, colorful MOTD written in bash. Server status at a glance.![MOTD screenshot](readme-img.png)
## Usage
### Running
Clone the repository:
```shell
git clone https://github.com/bcyran/fancy-motd.git
```Then run `motd.sh`:
```shell
./fancy-motd/motd.sh
```This runs all the scripts in `modules` directory in order, `run-parts` style, and formats the output.
If any modules are missing in your output, plese see [requirements](#requirements).
You can also pass the config file path as the script argument (see [configuration](#configuration)):
```shell
./fancy-motd/motd.sh ./path/to/config.sh
```### Running at login
One way to run it at each login is to add a line to `~/.profile` file (assuming you cloned `fancy-motd` into your home directory):
```shell
~/fancy-motd/motd.sh
```If you don't want to run it in all subshells you could do something like this instead:
```shell
if [ -z "$FANCY_MOTD" ]; then
~/fancy-motd/motd.sh
export FANCY_MOTD=1
fi
```If you use `tmux` and don't want to see the motd everytime you open a new shell in `tmux`, add this to your `.tmux.conf`:
```
set-option -ga update-environment ' FANCY_MOTD'
```### Requirements
In order to run all the available modules the following programs are required:* [`figlet`](http://www.figlet.org/)
* [`curl`](https://curl.se/)
* [`bc`](https://www.gnu.org/software/bc/)
* [`fortune`](https://software.clapper.org/fortune/)
* [`lm-sensors`](https://github.com/lm-sensors/lm-sensors)This list excludes the obvious ones, like [`tmux`](https://github.com/tmux/tmux) for `tmux` module.
If any program requried by the given module is missing (or any other error occurs), it will fail silently, i.e. the module just won't be shown at all.
### Configuration
You can configure some aspects of the motd using config file.
By default `config.sh` file in the `fancy-motd` directory will be read if it exists.
Alternatively you can pass path to another config as a script argument.There's an example file provided in the repo:
```shell
cd fancy-motd
cp config.sh.example config.sh
```## Hacking
To add a new module you can create a new script in `modules` directory.
For the output to be properly formatted it has to use `print_columns` function from `framework.sh`, please refer to the existing modules.Module files have to start with a two digit number followed by a hyphen. You may disable modules by simply rename the module file.
## Credits
Fancy MOTD is hugely inspired by [this repo](https://github.com/HermannBjorgvin/MOTD) by Hermann Björgvin.