[Vm-dev] [commit] r2141 - resolve symlinks in bindir; fix missing error function

commits at squeakvm.org commits at squeakvm.org
Fri Sep 18 20:17:52 UTC 2009


Author: piumarta
Date: 2009-09-18 13:17:51 -0700 (Fri, 18 Sep 2009)
New Revision: 2141

Modified:
   trunk/platforms/unix/ChangeLog
   trunk/platforms/unix/cmake/squeak.in
Log:
resolve symlinks in bindir; fix missing error function

Modified: trunk/platforms/unix/ChangeLog
===================================================================
--- trunk/platforms/unix/ChangeLog	2009-09-17 17:10:27 UTC (rev 2140)
+++ trunk/platforms/unix/ChangeLog	2009-09-18 20:17:51 UTC (rev 2141)
@@ -1,3 +1,8 @@
+2009-09-18    <piumarta at ubuntu.piumarta.com>
+
+	* cmake/squeak.in: Resolve symlinks in bindir.  Fix missing
+	'error' function.
+
 2009-09-17    <piumarta at ubuntu.piumarta.com>
 
 	* cmake/Plugins.cmake: Set ${plugin}_disabled for each plugin,

Modified: trunk/platforms/unix/cmake/squeak.in
===================================================================
--- trunk/platforms/unix/cmake/squeak.in	2009-09-17 17:10:27 UTC (rev 2140)
+++ trunk/platforms/unix/cmake/squeak.in	2009-09-18 20:17:51 UTC (rev 2141)
@@ -3,13 +3,29 @@
 # Launch squeakvm from the command line or a menu script, with a good
 # plugin path, text encodings and pulseaudio kludge
 # 
-# Last edited: 2009-09-17 10:05:45 by piumarta on ubuntu.piumarta.com
+# Last edited: 2009-09-18 13:14:40 by piumarta on ubuntu.piumarta.com
 
 PATH=/usr/bin:/bin
 
-bindir=`dirname $0`
-bindir=`cd ${bindir}; pwd`
-prefix=`dirname ${bindir}`
+realpath () {
+    path="$1"
+    while test -L "${path}"; do
+	dir=`dirname "${path}"`
+	dir=`cd "${dir}" && pwd -P`
+	path=`basename "${path}"`
+	path=`ls -l "${dir}/${path}" | sed 's,.* -> ,,'`
+	path="${dir}/${path}"
+    done
+    if test -d "${path}"; then
+	(cd "${path}" && pwd -P)
+    else
+	(cd `dirname "${path}"` && echo "`pwd -P`/`basename "${path}"`")
+    fi
+}
+
+bindir=`realpath "${0}"`
+bindir=`dirname  "${bindir}"`
+prefix=`dirname  "${bindir}"`
 libdir="${prefix}/lib/squeak"
 plgdir="${libdir}/[version]"
 useoss="[useoss]"
@@ -32,11 +48,11 @@
 elif test -x "${bindir}/${vm}"; then	# bld/squeak -> bld/squeakvm
     vm="${bindir}/${vm}"
     plugins="${bindir}/%n"
-elif test -x "`which ${vm}`"; then
-    vm="`which ${vm}`"
+elif test -x `which ${vm}`; then
+    vm=`which ${vm}`
     plugins=""
 else    
-    error "cannot find ${vm}"
+    echo "cannot find ${vm}" >&2
     exit 1
 fi
 



More information about the Vm-dev mailing list