[PATCH] Make symlink-mesa.sh Bourne compatible
Dan Nicholson
dbn.lists at gmail.com
Sat Mar 8 10:15:08 PST 2008
Alan, does the patch below make symlink-mesa.sh work with Solaris'
/bin/sh? It's pretty easy to test. Checkout xserver and mesa then cd
to the xserver directory.
$ ./GL/symlink-mesa.sh /path/to/mesa GL/
--
Dan
On Sat, Mar 8, 2008 at 8:56 AM, Dan Nicholson <dbn.lists at gmail.com> wrote:
> Fixed a few problems for the Heirloom Bourne shell[1] which should make
> symlink-mesa.sh more portable:
> - No -e operator for simply checking existence. Instead, the test uses
> the -r operator since we need the files and directories readable.
> - Quoting of potentially empty arguments to test. [ -z $foo ] when $foo
> is empty causes a lot of Bourne shells problems. Best to quote it.
> - Lack of `echo -n'. Copied the feature test from Autoconf to find if
> the shell respects -n or to otherwise add \c at the end of line.
> - `VAR=newval command' does not seem to work. Instead, the variable is
> just changed in the environment prior to the command.
>
> 1. http://heirloom.sourceforge.net/sh.html
> ---
> GL/symlink-mesa.sh | 34 +++++++++++++++++++++++-----------
> 1 files changed, 23 insertions(+), 11 deletions(-)
>
> diff --git a/GL/symlink-mesa.sh b/GL/symlink-mesa.sh
> index af9adbd..d9e02eb 100755
> --- a/GL/symlink-mesa.sh
> +++ b/GL/symlink-mesa.sh
> @@ -28,7 +28,7 @@ check_destinations () {
> check_exist() {
> # Check whether $1 exists
>
> - if [ ! -e $1 ] ; then
> + if [ ! -r "$1" ] ; then
> error "$1 not found"
> fi
> }
> @@ -42,7 +42,7 @@ delete_existing() {
> link_files() {
> # Link $1 to $2
>
> - if [ ! -e $2 ] ; then
> + if [ ! -r "$2" ] ; then
> ln -s $1 $2
> fi
> }
> @@ -252,7 +252,7 @@ symlink_glx() {
>
> error() {
> echo
> - echo \ \ \ error:\ \ \ $1
> + echo " error: $1"
> exit 1
> }
>
> @@ -260,7 +260,7 @@ error() {
> run_module() {
> # $1 module
> # $2 explanation
> - echo -n $EXPLANATION for $1 module ...\
> + echo $ECHO_N "$EXPLANATION for $1 module ... $ECHO_C"
> symlink_$1
> echo DONE
> }
> @@ -269,8 +269,9 @@ run() {
> # $1 what to do
> # $2 explanation
>
> - ACTION=$1 EXPLANATION=$2 run_module mesa
> - ACTION=$1 EXPLANATION=$2 run_module glx
> + ACTION=$1 EXPLANATION=$2
> + run_module mesa
> + run_module glx
> }
>
> src_dir() {
> @@ -288,7 +289,7 @@ dst_dir() {
> }
>
> action() {
> - if [ -z $2 ] ; then
> + if [ -z "$2" ] ; then
> $ACTION $REAL_SRC_DIR/$1 $REAL_DST_DIR/$1
> else
> $ACTION $REAL_SRC_DIR/$1 $REAL_DST_DIR/$2
> @@ -303,13 +304,13 @@ usage() {
>
> # Check commandline args
> check_args() {
> - if [ -z $1 ] ; then
> + if [ -z "$1" ] ; then
> echo Missing source dir
> usage
> exit 1
> fi
>
> - if [ -z $2 ] ; then
> + if [ -z "$2" ] ; then
> echo Missing destination dir
> usage
> exit 1
> @@ -337,8 +338,19 @@ check_args() {
> B=`basename "$relpath"`
> abspath="`cd \"$D\" 2>/dev/null && pwd || echo \"$D\"`/$B"
>
> - SRC_DIR=`( cd $1 ; pwd )`
> - DST_DIR=`(cd $2 ; pwd )`
> + SRC_DIR=`cd $1 ; pwd`
> + DST_DIR=`cd $2 ; pwd`
> }
>
> +# echo -n feature test, this is borrowed from Autoconf
> +ECHO_C= ECHO_N=
> +case `echo -n x` in
> +-n*)
> + case `echo 'x\c'` in
> + *) ECHO_C='\c';;
> + esac;;
> +*)
> + ECHO_N='-n';;
> +esac
> +
> main $1 $2
> --
> 1.5.3.2
>
> _______________________________________________
> xorg mailing list
> xorg at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/xorg
>
More information about the xorg
mailing list