52 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			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
 |