1#! /bin/sh 2# Copyright (C) 2005-2021 Free Software Foundation, Inc. 3# 4# This program is free software; you can redistribute it and/or modify 5# it under the terms of the GNU General Public License as published by 6# the Free Software Foundation; either version 2, or (at your option) 7# any later version. 8# 9# This program is distributed in the hope that it will be useful, 10# but WITHOUT ANY WARRANTY; without even the implied warranty of 11# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12# GNU General Public License for more details. 13# 14# You should have received a copy of the GNU General Public License 15# along with this program. If not, see <https://www.gnu.org/licenses/>. 16 17# Test mkinstalldirs with spaces in directory names. 18 19am_create_testdir=empty 20. test-init.sh 21 22cwd=$(pwd) || fatal_ "getting current working directory" 23 24# Make sure the directory we will create can be created... 25mkdir '~a b' && mkdir '~a b/-x y' \ 26 || skip_ "directory names with spaces and metacharacters not accepted" 27rm -rf '~a b' 28 29get_shell_script mkinstalldirs 30 31# Test mkinstalldirs with the installed mkdir. 32 33./mkinstalldirs '~a b/-x y' 34test -d '~a b/-x y' 35rm -rf '~a b' 36 37# Trick mkinstalldirs into thinking mkdir does not support -p. 38 39mkdir bin 40cat >bin/mkdir <<'EOF' 41#!/bin/sh 42for arg 43do 44 case $arg in 45 -p) exit 1;; 46 esac 47done 48PATH=$AM_PATH 49export PATH 50exec mkdir "$@" 51EOF 52 53chmod +x bin/mkdir 54 55AM_PATH=$PATH; export AM_PATH 56PATH=$cwd/bin$PATH_SEPARATOR$PATH; export PATH 57 58# Test mkinstalldirs without mkdir -p. 59 60./mkinstalldirs '~a b/-x y' 61test -d '~a b/-x y' 62rm -rf '~a b' 63 64./mkinstalldirs "$cwd///~a b//-x y" 65test -d "$cwd/~a b/-x y" 66rm -rf '~a b' 67 68: 69