From f13bb11642eb97c5781b28bce32b7719ff14b8e8 Mon Sep 17 00:00:00 2001 From: Eryn Wells Date: Thu, 19 Sep 2024 13:48:42 -0700 Subject: [PATCH] Add generate-motd script --- .../eryn.dotfiles.generate-motd.plist | 21 +++++++++ bin/generate-motd | 46 +++++++++++++++++++ 2 files changed, 67 insertions(+) create mode 100644 LaunchAgents/eryn.dotfiles.generate-motd.plist create mode 100755 bin/generate-motd diff --git a/LaunchAgents/eryn.dotfiles.generate-motd.plist b/LaunchAgents/eryn.dotfiles.generate-motd.plist new file mode 100644 index 0000000..1b2e6af --- /dev/null +++ b/LaunchAgents/eryn.dotfiles.generate-motd.plist @@ -0,0 +1,21 @@ + + + + + Label + eryn.dotfiles.generate-motd + ProgramArguments + + zsh + -c + ~/bin/generate-motd + + EnvironmentVariables + + PATH + /usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/sbin:/opt/homebrew/bin + + RunOnDemand + + + diff --git a/bin/generate-motd b/bin/generate-motd new file mode 100755 index 0000000..6aa5129 --- /dev/null +++ b/bin/generate-motd @@ -0,0 +1,46 @@ +#!/bin/zsh +# Eryn Wells + +MOTD_FILE=/etc/motd + +binary_exists() { + hash $1 1>/dev/null 2>&1 + return $? +} + +if [[ ! -w "$MOTD_FILE" ]]; then + echo "$MOTD_FILE is not wrtiable by $USER" >&2 + exit 1 +fi + +# If lolcat is installed, dump a colorful message to the MOTD file. :) +local cat_program=cat +local cat_args='' +if binary_exists lolcat; then + echo "Enabling rainbows" + cat_program=lolcat + cat_args=-f +fi + +local hello_message="\nThis machine is called `hostname`.\n" + +local hardware_model=`sysctl -n hw.model` + +if [[ -n "$hardware_model" ]]; then + hello_message+="It’s a $hardware_model " +fi + +local os_version=`sysctl -n kern.osproductversion` +local product_name=`sw_vers --productName` +local os_build=`sw_vers --buildVersion` + +if [[ -n "$os_version" && -n "$os_build" ]]; then + hello_message+="running $product_name $os_version ($os_build)." +elif [[ -n "$os_version" ]]; then + hello_message+="running $product_name $os_version." +fi + +hello_message+="\n" + +echo "Writing MOTD" +print -P $hello_message | $cat_program $cat_args > $MOTD_FILE