Skip to contentSkip to conversation

Do not use command in profile

PATCH Superseded Peter Kjellerstedt 1 participant 2 messages Apr 13, 2017

v1 of 2 Superseded Latest is v2 →

lore
Share & tools
lore
#0 lore raw

cover Do not use command in profile

Since we apparently cannot rely on the command utility to always exist, it is better to avoid using it in the profile script. Rather than using command to detect if tty and resize exist (which obviously will not work if command itself does not exist), just call them directly while piping any output for stderr to /dev/null. This should actually be a little bit more efficient in the case that they do exist, and the same in the case that they do not exist.

I leave to you to decide whether you want to revert commit e41c90b852 that enabled the command utility in busybox or not.

//Peter

The following changes since commit fe47bff64b17562593c620d2daf748735bb5c3d6:

linux-yocto: Update genericx86* SRCREVs for linux-yocto 4.10 (2017-04-13 10:54:37 +0100)

are available in the git repository at:

git://git.yoctoproject.org/poky-contrib pkj/profile_without_command
http://git.yoctoproject.org/cgit.cgi/poky-contrib/log/?h=pkj/profile_without_command

Peter Kjellerstedt (1):
base-files: profile: Avoid using "command" to determine if programs
exist

 meta/recipes-core/base-files/base-files/profile | 14 ++++++--------
 1 file changed, 6 insertions(+), 8 deletions(-)
Signature · 1 line
2.12.0
#1 lore raw

PATCH 1/1 base-files: profile: Avoid using "command" to determine if programs exist

Since the existence of "command" in itself is not guaranteed, using it to determine if other executables exist is mote. Instead just run the executables and let the shell determine if they exist. By piping stderr to /dev/null we avoid unnecessary warnings in case they do not exist.

---
 meta/recipes-core/base-files/base-files/profile | 14 ++++++--------
 1 file changed, 6 insertions(+), 8 deletions(-)
meta/recipes-core/base-files/base-files/profile +6 -8
index ceaf15f799..e05c8840db 100644
@@ -22,14 +22,12 @@ if [ -d /etc/profile.d ]; then
 	unset i
 fi
 
-if command -v resize >/dev/null && command -v tty >/dev/null; then
-	# Make sure we are on a serial console (i.e. the device used starts with
-	# /dev/tty[A-z]), otherwise we confuse e.g. the eclipse launcher which
-	# tries do use ssh
-	case $(tty) in
-		/dev/tty[A-z]*) resize >/dev/null;;
-	esac
-fi
+# Make sure we are on a serial console (i.e. the device used starts with
+# /dev/tty[A-z]), otherwise we confuse e.g. the eclipse launcher which tries do
+# use ssh
+case $(tty 2>/dev/null) in
+	/dev/tty[A-z]*) resize >/dev/null 2>&1;;
+esac
 
 export PATH PS1 OPIEDIR QPEDIR QTDIR EDITOR TERM
 
Signature · 1 line
2.12.0