grub-ownership/etc/grub.d/000_ownership

52 lines
1.1 KiB
Bash
Executable File

#!/bin/sh
# Author: Bandie <bandie@chaospott.de>
# Copyright: Bandie, 2019, GNU-GPLv3
set -e
## Get params from /etc/default/grub
OWNER=$(cat /etc/default/grub | egrep "^OWNER=.*$" | sed "s/.*=\(.*\)/\1/;s/\"//g;s/'//g")
OWNER_TIMEOUT=$(cat /etc/default/grub | egrep "^OWNER_TIMEOUT=.*$" | sed "s/.*=\(.*\)/\1/;s/\"//g;s/'//g")
## Check if OWNER is set
if [ -z "$OWNER" ]; then
echo "/etc/default/grub: No OWNER set." >&2
exit 0
fi
## Notify user about ownership
echo "Show ==> $OWNER <== as owner" >&2
## Generate spaces in case if the owner has a very short name
for ((i=${#OWNER}; i<6; i++)); do
NSP="$NSP "
done
## Generate border around the owner message
B="##########"
for ((i=6; i<${#OWNER}; i++)); do
B="${B}#"
SPACE="$SPACE "
done
## Check if OWNER_TIMEOUT is set. If not, default 5
if ! [[ $OWNER_TIMEOUT =~ ^[0-9]+$ ]]; then
OWNER_TIMEOUT=5
echo "/etc/default/grub: No OWNER_TIMEOUT set. Using default: 5 seconds." >&2
fi
## Write it into the grub.cfg
cat << EOF
echo ""
echo "$B"
echo "# Owner: ${SPACE}#"
echo "# $OWNER $NSP#"
echo "$B"
echo ""
echo ""
sleep -i $OWNER_TIMEOUT
EOF