summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorScott Moser <smoser@brickies.net>2017-02-28 16:53:56 -0500
committerScott Moser <smoser@brickies.net>2017-03-02 22:03:54 -0500
commit33518d7d62493c7d00e3792146399c9572abe915 (patch)
tree9af996394adbb3dcbfdb7b9ae123eff7783a76a9
parentce63e63d7aaf900bac4339503c5d79ff3bd03d18 (diff)
downloadvyos-cloud-init-33518d7d62493c7d00e3792146399c9572abe915.tar.gz
vyos-cloud-init-33518d7d62493c7d00e3792146399c9572abe915.zip
Add profile.d script for showing warnings on login.
Z99-cloudinit-warnings.sh can be dropped into /etc/profile.d. Warnings that are written to /var/lib/cloud/instance/warnings will be displayed to the user on stderr when they log in.
-rwxr-xr-xpackages/debian/rules.in1
-rw-r--r--tools/Z99-cloudinit-warnings.sh30
2 files changed, 31 insertions, 0 deletions
diff --git a/packages/debian/rules.in b/packages/debian/rules.in
index 3df6053a..053b7649 100755
--- a/packages/debian/rules.in
+++ b/packages/debian/rules.in
@@ -12,6 +12,7 @@ override_dh_install:
install -d debian/cloud-init/etc/rsyslog.d
cp tools/21-cloudinit.conf debian/cloud-init/etc/rsyslog.d/21-cloudinit.conf
install -D ./tools/Z99-cloud-locale-test.sh debian/cloud-init/etc/profile.d/Z99-cloud-locale-test.sh
+ install -D ./tools/Z99-cloudinit-warnings.sh debian/cloud-init/etc/profile.d/Z99-cloudinit-warnings.sh
override_dh_auto_test:
ifeq (,$(findstring nocheck,$(DEB_BUILD_OPTIONS)))
diff --git a/tools/Z99-cloudinit-warnings.sh b/tools/Z99-cloudinit-warnings.sh
new file mode 100644
index 00000000..b237786b
--- /dev/null
+++ b/tools/Z99-cloudinit-warnings.sh
@@ -0,0 +1,30 @@
+#!/bin/sh
+# This file is part of cloud-init. See LICENSE file for license information.
+
+# Purpose: show user warnings on login.
+
+cloud_init_warnings() {
+ local skipf="" warning="" idir="/var/lib/cloud/instance" n=0
+ local warndir="$idir/warnings"
+ local ufile="$HOME/.cloud-warnings.skip" sfile="$warndir/.skip"
+ [ -d "$warndir" ] || return 0
+ [ ! -f "$ufile" ] || return 0
+ [ ! -f "$skipf" ] || return 0
+
+ for warning in "$warndir"/*; do
+ [ -f "$warning" ] || continue
+ cat "$warning"
+ n=$((n+1))
+ done
+ [ $n -eq 0 ] && return 0
+ echo ""
+ echo "Disable the warnings above by:"
+ echo " touch $ufile"
+ echo "or"
+ echo " touch $sfile"
+}
+
+cloud_init_warnings 1>&2
+unset cloud_init_warnings
+
+# vi: syntax=sh ts=4 expandtab