ზ3በંવવხްុլRxስសلçໂH℅૩/etc/profile.d/
Upload File :
Current File : //etc/profile.d/lish.sh
# shellcheck shell=bash
####################################################################
#								   #
# This file is provided by Linode.				   #
#								   #
# In order for Lish to be able to handle screen resizes correctly, #
# we define this function to determine and set the correct	   #
# geometry and call it each time the prompt is displayed.	   #
# (only when logging in via the Lish serial console)		   #
#								   #
####################################################################

[ -z "${PS1}" ] && return
[ -z "${BASH_VERSION}" ] && return

lish_resize() {
	local IFS='[;' escape geometry x y

	# Disable echo and output ANSI terminal sequence.
	stty -echo
	echo -ne '\x1b7\x1b[r\x1b[900;900H\x1b[6n\x1b8\x1b[?7h'

	# Read the ANSI response from the terminal.
	# shellcheck disable=SC2034
	read -rsd R escape geometry

	# Columns
	x="${geometry##*;}"
	x="${x%R*}"

	# Rows
	y="${geometry%%;*}"
	y="${y#*[}"

	# Restore echo, and set columns, rows, and sane settings.
	stty sane cols "${x}" rows "${y}"
}

if [ "$(tty)" = '/dev/ttyS0' ]; then
	PROMPT_COMMAND=lish_resize
	lish_resize
fi