diff options
Diffstat (limited to 'tests/mv/setup')
-rwxr-xr-x | tests/mv/setup | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/tests/mv/setup b/tests/mv/setup new file mode 100755 index 000000000..907e5176e --- /dev/null +++ b/tests/mv/setup @@ -0,0 +1,36 @@ +#! /bin/sh + +# Use df to find a writable directory on a file system different from that +# of the current directory. If one is found, create a temporary directory +# inside it. + +: ${DF=df} +: ${MKDIR=mkdir} + +# Try these: +candidate_tmp_dirs=" + $TMPDIR + /tmp + /var/tmp + /usr/tmp + $HOME +" + +other_partition_tmpdir= + +# WARNING: using sed like this to extract the mount point will fail +# if the mount point name contains `% '. +dot_mount_point=`$DF --no-sync -P . | sed -n '2s/.*% *//p'` +for d in $candidate_tmp_dirs; do + d_mount_point=`$DF --no-sync -P $d | sed -n '2s/.*% *//p'` + + # Same partition? Skip it. + test x$d_mount_point = x$dot_mount_point && continue + + # See if we can create a directory in it. + if $MKDIR "$d/df-$$" > /dev/null 2>&1; then + other_partition_tmpdir="$d/df-$$" + break + fi + +done |