1
0
Fork 0
mirror of git://git.code.sf.net/p/cdesktopenv/code synced 2025-02-24 23:14:14 +00:00
cde/src/cmd/INIT/mkdir.sh
Martijn Dekker 9b45f2ccbe build system: modernise shell compatibility checks
All changed files:
- Put the shell in POSIX mode if it has an '-o posix' option.
- Remove nonsense disabling 'set -x' on bash. It's not broken.

bin/package, src/cmd/INIT/package.sh:
- Add check blocking native zsh mode (e.g., "$path" conflicts).
  Using a 'sh -> zsh' symlink works, so recommend that.
- Remove old ksh93 version check for a supposed conflict with
  libcmd. It was broken; it would revert to /bin/sh, but on illumos
  distributions, /bin/sh is a ksh93 of a version that is supposedly
  affected. It builds fine anyway.
- Rewrite checksh() to incorporate the shell compatibility checks
  that were previously in two different places in 'package'.

bin/ignore, src/cmd/INIT/ignore.sh,
bin/silent, src/cmd/INIT/silent.sh:
- Change bad check for a full POSIX 'export' command (no, $RANDOM
  has nothing to do with that) with a proper feature test.
2020-08-23 23:41:31 +01:00

83 lines
2.3 KiB
Bash

#!/bin/sh
########################################################################
# #
# This software is part of the ast package #
# Copyright (c) 1994-2011 AT&T Intellectual Property #
# and is licensed under the #
# Eclipse Public License, Version 1.0 #
# by AT&T Intellectual Property #
# #
# A copy of the License is available at #
# http://www.eclipse.org/org/documents/epl-v10.html #
# (with md5 checksum b35adb5213ca9657e911e9befb180842) #
# #
# Information and Software Systems Research #
# AT&T Research #
# Florham Park NJ #
# #
# Glenn Fowler <gsf@research.att.com> #
# #
########################################################################
: mkdir for systems that do not support -p : 2002-09-01 :
(set -o posix) 2>/dev/null && set -o posix
MKDIR=mkdir
CHMOD=chmod
mode=
parents=
while :
do case $1 in
-m) case $# in
1) echo "mkdir: -m: mode argument expected" >&2
exit 1
;;
esac
shift
mode=$1
;;
-m*) mode=`echo X$1 | sed 's/X-m//'`
;;
-p) parents=1
;;
*) break
;;
esac
shift
done
if test "" != "$parents"
then for d
do if test ! -d $d
then ifs=${IFS-'
'}
IFS=/
set '' $d
IFS=$ifs
shift
dir=$1
shift
if test -n "$dir" -a ! -d "$dir"
then $MKDIR "$dir" || exit 1
if test "" != "$mode"
then $CHMOD "$mode" "$dir" || exit 1
fi
fi
for d
do dir=$dir/$d
if test ! -d "$dir"
then $MKDIR "$dir" || exit 1
if test "" != "$mode"
then $CHMOD "$mode" "$dir" || exit 1
fi
fi
done
fi
done
else $MKDIR "$@" || exit 1
if test "" != "$mode"
then for d
do $CHMOD "$mode" "$d" || exit 1
done
fi
fi
exit 0