base-files: profile: allow profile.d to set EDITOR

With a profile.d configuration in place that sets the EDITOR variable,
the automatic terminal 'resize' logic would not trigger. Which then
would possibly lead to a 80x24 fallback on the debug serial console.

This can simply be avoided by setting a flag variable when the shell
is first opened, then processing all profile.d includes, trigger the
'resize' depending on the flag and shell-level and finally only set
EDITOR to some default if it is still unset.

(From OE-Core rev: dcdb30c83eb77fb2d5ea04f9b7fd7371da633a34)

Signed-off-by: Johannes Schneider <johannes.schneider@leica-geosystems.com>
Signed-off-by: Luca Ceresoli <luca.ceresoli@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Johannes Schneider
2023-10-13 10:27:34 +00:00
committed by Richard Purdie
parent 708d11b23c
commit 13ac9ece3b

View File

@@ -10,6 +10,12 @@ PATH="/usr/local/bin:/usr/bin:/bin"
# Set the prompt for bash and ash (no other shells known to be in use here)
[ -z "$PS1" ] || PS1='\u@\h:\w\$ '
# Use the EDITOR not being set as a trigger to call resize later on
FIRSTTIMESETUP=0
if [ -z "$EDITOR" ] ; then
FIRSTTIMESETUP=1
fi
if [ -d /etc/profile.d ]; then
for i in /etc/profile.d/*.sh; do
if [ -f $i -a -r $i ]; then
@@ -50,17 +56,19 @@ resize() {
}
fi
fi
# Use the EDITOR not being set as a trigger to call resize
# and only do this for /dev/tty[A-z] which are typically
# only do this for /dev/tty[A-z] which are typically
# serial ports
if [ -z "$EDITOR" -a "$SHLVL" = 1 ] ; then
if [ $FIRSTTIMESETUP -eq 1 -a $SHLVL -eq 1 ] ; then
case $(tty 2>/dev/null) in
/dev/tty[A-z]*) resize >/dev/null;;
esac
fi
fi
EDITOR="vi" # needed for packages like cron, git-commit
if [ -z "$EDITOR" ]; then
EDITOR="vi" # needed for packages like cron, git-commit
fi
export PATH PS1 OPIEDIR QPEDIR QTDIR EDITOR TERM
umask 022