[oe-commits] Chris Larson : utils.bbclass: add dirs/pushd/popd

git version control git at git.openembedded.org
Sun Nov 21 17:48:06 UTC 2010


Module: openembedded.git
Branch: org.openembedded.dev
Commit: ab1cf46448eaa4ae6cce3edcf013da73bd41c1ea
URL:    http://gitweb.openembedded.net/?p=openembedded.git&a=commit;h=ab1cf46448eaa4ae6cce3edcf013da73bd41c1ea

Author: Chris Larson <chris_larson at mentor.com>
Date:   Sun Nov 21 10:39:24 2010 -0700

utils.bbclass: add dirs/pushd/popd

These can be useful, and even necessary in some tasks, yet are bash, so let's
ensure they're available so we can avoid the /bin/sh is bash requirement in
the future.

Signed-off-by: Chris Larson <chris_larson at mentor.com>

---

 classes/utils.bbclass |   20 ++++++++++++++++++++
 1 files changed, 20 insertions(+), 0 deletions(-)

diff --git a/classes/utils.bbclass b/classes/utils.bbclass
index 4cc6896..2fa6204 100644
--- a/classes/utils.bbclass
+++ b/classes/utils.bbclass
@@ -434,3 +434,23 @@ def base_set_filespath(path, d):
 		for o in overrides.split(":"):
 			filespath.append(os.path.join(p, o))
 	return ":".join(filespath)
+
+# These directory stack functions are based upon the versions in the Korn
+# Shell documentation - http://docstore.mik.ua/orelly/unix3/korn/ch04_07.htm.
+dirs() {
+    echo "$_DIRSTACK"
+}
+
+pushd() {
+    dirname=$1
+    cd ${dirname:?"missing directory name."} || return 1
+    _DIRSTACK="$PWD $_DIRSTACK"
+    echo "$_DIRSTACK"
+}
+
+popd() {
+    _DIRSTACK=${_DIRSTACK#* }
+    top=${_DIRSTACK%% *}
+    cd $top || return 1
+    echo "$PWD"
+}





More information about the Openembedded-commits mailing list