Home

Awesome

nerves_motd

Hex version CircleCI

nerves_motd prints a "message of the day" on Nerves devices.

Usage

The primary function is NervesMOTD.print() which prints the base layout based on the template below:

<LOGO>
<APP_NAME> <APP_VERSION> (<FW_UUID>) <PLATFORM> <TARGET>
  Serial       : <SERIAL_NUMBER>
  Uptime       : 18.296 seconds
  Clock        : 2023-05-18 00:05:20 JST <synchronization state>

  Firmware     : <VALIDITY> (<A|B>)      Applications : <N> started (<not started applications>)
  Memory usage : 74 MB (15%)             Part usage   : 210 MB (14%)
  Hostname     : <HOSTNAME>              Load average : 0.05 0.14 0.15

  <IFNAME>     : <IPV6>, <IPV4>
  <EXTRA_ROWS>

To have NervesMOTD print automatically when first accessing a device, add NervesMOTD.print() to your iex.exs file (typically in rootfs_overlay/etc/iex.exs)

Customization

NervesMOTD.print/1 supports a few options for customizing the base layout:

For convenience, NervesMOTD.print/1 options may be stored in the application environment in your config.exs to be used whenever NervesMOTD.print/0 is called:

config :nerves_motd,
  logo: """
  Custom logo
  """,
  extra_rows: [
    [{"Label", "value"}, {"Label2", "value2"}],
    [{"Long label", "Lots of text"}]
  ]

Installation

Install by adding :nerves_motd to your list of dependencies in mix.exs:

def deps do
  [
    {:nerves_motd, "~> 0.1.0"}
  ]
end

For details, see API reference.

License

Copyright (C) 2022 Masatoshi Nishiguchi, Nerves Project Authors

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at [http://www.apache.org/licenses/LICENSE-2.0](http://www.apache.org/licenses/LICENSE-2.0)

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.