]> git.ipfire.org Git - thirdparty/openembedded/openembedded-core-contrib.git/commitdiff
base-files: profile: allow profile.d to set EDITOR
authorJohannes Schneider <johannes.schneider@leica-geosystems.com>
Fri, 13 Oct 2023 10:27:34 +0000 (10:27 +0000)
committerRichard Purdie <richard.purdie@linuxfoundation.org>
Thu, 19 Oct 2023 12:38:54 +0000 (13:38 +0100)
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.

Signed-off-by: Johannes Schneider <johannes.schneider@leica-geosystems.com>
Signed-off-by: Luca Ceresoli <luca.ceresoli@bootlin.com>
meta/recipes-core/base-files/base-files/profile

index cc37e1ba77c495423eb24c522add679673f41208..bded3757cc19411572a51a0282d377a8d12a202a 100644 (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