Blame autoconf/mkinstalldirs

Packit Service 5195f2
#! /bin/sh
Packit Service 5195f2
# mkinstalldirs --- make directory hierarchy
Packit Service 5195f2
Packit Service 5195f2
scriptversion=2009-04-28.21; # UTC
Packit Service 5195f2
Packit Service 5195f2
# Original author: Noah Friedman <friedman@prep.ai.mit.edu>
Packit Service 5195f2
# Created: 1993-05-16
Packit Service 5195f2
# Public domain.
Packit Service 5195f2
#
Packit Service 5195f2
# This file is maintained in Automake, please report
Packit Service 5195f2
# bugs to <bug-automake@gnu.org> or send patches to
Packit Service 5195f2
# <automake-patches@gnu.org>.
Packit Service 5195f2
Packit Service 5195f2
nl='
Packit Service 5195f2
'
Packit Service 5195f2
IFS=" ""	$nl"
Packit Service 5195f2
errstatus=0
Packit Service 5195f2
dirmode=
Packit Service 5195f2
Packit Service 5195f2
usage="\
Packit Service 5195f2
Usage: mkinstalldirs [-h] [--help] [--version] [-m MODE] DIR ...
Packit Service 5195f2
Packit Service 5195f2
Create each directory DIR (with mode MODE, if specified), including all
Packit Service 5195f2
leading file name components.
Packit Service 5195f2
Packit Service 5195f2
Report bugs to <bug-automake@gnu.org>."
Packit Service 5195f2
Packit Service 5195f2
# process command line arguments
Packit Service 5195f2
while test $# -gt 0 ; do
Packit Service 5195f2
  case $1 in
Packit Service 5195f2
    -h | --help | --h*)         # -h for help
Packit Service 5195f2
      echo "$usage"
Packit Service 5195f2
      exit $?
Packit Service 5195f2
      ;;
Packit Service 5195f2
    -m)                         # -m PERM arg
Packit Service 5195f2
      shift
Packit Service 5195f2
      test $# -eq 0 && { echo "$usage" 1>&2; exit 1; }
Packit Service 5195f2
      dirmode=$1
Packit Service 5195f2
      shift
Packit Service 5195f2
      ;;
Packit Service 5195f2
    --version)
Packit Service 5195f2
      echo "$0 $scriptversion"
Packit Service 5195f2
      exit $?
Packit Service 5195f2
      ;;
Packit Service 5195f2
    --)                         # stop option processing
Packit Service 5195f2
      shift
Packit Service 5195f2
      break
Packit Service 5195f2
      ;;
Packit Service 5195f2
    -*)                         # unknown option
Packit Service 5195f2
      echo "$usage" 1>&2
Packit Service 5195f2
      exit 1
Packit Service 5195f2
      ;;
Packit Service 5195f2
    *)                          # first non-opt arg
Packit Service 5195f2
      break
Packit Service 5195f2
      ;;
Packit Service 5195f2
  esac
Packit Service 5195f2
done
Packit Service 5195f2
Packit Service 5195f2
for file
Packit Service 5195f2
do
Packit Service 5195f2
  if test -d "$file"; then
Packit Service 5195f2
    shift
Packit Service 5195f2
  else
Packit Service 5195f2
    break
Packit Service 5195f2
  fi
Packit Service 5195f2
done
Packit Service 5195f2
Packit Service 5195f2
case $# in
Packit Service 5195f2
  0) exit 0 ;;
Packit Service 5195f2
esac
Packit Service 5195f2
Packit Service 5195f2
# Solaris 8's mkdir -p isn't thread-safe.  If you mkdir -p a/b and
Packit Service 5195f2
# mkdir -p a/c at the same time, both will detect that a is missing,
Packit Service 5195f2
# one will create a, then the other will try to create a and die with
Packit Service 5195f2
# a "File exists" error.  This is a problem when calling mkinstalldirs
Packit Service 5195f2
# from a parallel make.  We use --version in the probe to restrict
Packit Service 5195f2
# ourselves to GNU mkdir, which is thread-safe.
Packit Service 5195f2
case $dirmode in
Packit Service 5195f2
  '')
Packit Service 5195f2
    if mkdir -p --version . >/dev/null 2>&1 && test ! -d ./--version; then
Packit Service 5195f2
      echo "mkdir -p -- $*"
Packit Service 5195f2
      exec mkdir -p -- "$@"
Packit Service 5195f2
    else
Packit Service 5195f2
      # On NextStep and OpenStep, the 'mkdir' command does not
Packit Service 5195f2
      # recognize any option.  It will interpret all options as
Packit Service 5195f2
      # directories to create, and then abort because '.' already
Packit Service 5195f2
      # exists.
Packit Service 5195f2
      test -d ./-p && rmdir ./-p
Packit Service 5195f2
      test -d ./--version && rmdir ./--version
Packit Service 5195f2
    fi
Packit Service 5195f2
    ;;
Packit Service 5195f2
  *)
Packit Service 5195f2
    if mkdir -m "$dirmode" -p --version . >/dev/null 2>&1 &&
Packit Service 5195f2
       test ! -d ./--version; then
Packit Service 5195f2
      echo "mkdir -m $dirmode -p -- $*"
Packit Service 5195f2
      exec mkdir -m "$dirmode" -p -- "$@"
Packit Service 5195f2
    else
Packit Service 5195f2
      # Clean up after NextStep and OpenStep mkdir.
Packit Service 5195f2
      for d in ./-m ./-p ./--version "./$dirmode";
Packit Service 5195f2
      do
Packit Service 5195f2
        test -d $d && rmdir $d
Packit Service 5195f2
      done
Packit Service 5195f2
    fi
Packit Service 5195f2
    ;;
Packit Service 5195f2
esac
Packit Service 5195f2
Packit Service 5195f2
for file
Packit Service 5195f2
do
Packit Service 5195f2
  case $file in
Packit Service 5195f2
    /*) pathcomp=/ ;;
Packit Service 5195f2
    *)  pathcomp= ;;
Packit Service 5195f2
  esac
Packit Service 5195f2
  oIFS=$IFS
Packit Service 5195f2
  IFS=/
Packit Service 5195f2
  set fnord $file
Packit Service 5195f2
  shift
Packit Service 5195f2
  IFS=$oIFS
Packit Service 5195f2
Packit Service 5195f2
  for d
Packit Service 5195f2
  do
Packit Service 5195f2
    test "x$d" = x && continue
Packit Service 5195f2
Packit Service 5195f2
    pathcomp=$pathcomp$d
Packit Service 5195f2
    case $pathcomp in
Packit Service 5195f2
      -*) pathcomp=./$pathcomp ;;
Packit Service 5195f2
    esac
Packit Service 5195f2
Packit Service 5195f2
    if test ! -d "$pathcomp"; then
Packit Service 5195f2
      echo "mkdir $pathcomp"
Packit Service 5195f2
Packit Service 5195f2
      mkdir "$pathcomp" || lasterr=$?
Packit Service 5195f2
Packit Service 5195f2
      if test ! -d "$pathcomp"; then
Packit Service 5195f2
	errstatus=$lasterr
Packit Service 5195f2
      else
Packit Service 5195f2
	if test ! -z "$dirmode"; then
Packit Service 5195f2
	  echo "chmod $dirmode $pathcomp"
Packit Service 5195f2
	  lasterr=
Packit Service 5195f2
	  chmod "$dirmode" "$pathcomp" || lasterr=$?
Packit Service 5195f2
Packit Service 5195f2
	  if test ! -z "$lasterr"; then
Packit Service 5195f2
	    errstatus=$lasterr
Packit Service 5195f2
	  fi
Packit Service 5195f2
	fi
Packit Service 5195f2
      fi
Packit Service 5195f2
    fi
Packit Service 5195f2
Packit Service 5195f2
    pathcomp=$pathcomp/
Packit Service 5195f2
  done
Packit Service 5195f2
done
Packit Service 5195f2
Packit Service 5195f2
exit $errstatus
Packit Service 5195f2
Packit Service 5195f2
# Local Variables:
Packit Service 5195f2
# mode: shell-script
Packit Service 5195f2
# sh-indentation: 2
Packit Service 5195f2
# eval: (add-hook 'write-file-hooks 'time-stamp)
Packit Service 5195f2
# time-stamp-start: "scriptversion="
Packit Service 5195f2
# time-stamp-format: "%:y-%02m-%02d.%02H"
Packit Service 5195f2
# time-stamp-time-zone: "UTC"
Packit Service 5195f2
# time-stamp-end: "; # UTC"
Packit Service 5195f2
# End: