#!/bin/sh
#
# Simple script to make a "shadow" test directory, using symbolic links.
# Typically you'd put the shadow in /tmp or another local disk
#
# Copyright (C) 1992-2023 Free Software Foundation, Inc.
# This file is part of GNU Make.
#
# GNU Make is free software; you can redistribute it and/or modify it under
# the terms of the GNU General Public License as published by the Free Software
# Foundation; either version 3 of the License, or (at your option) any later
# version.
#
# GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY
# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
# FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more
# details.
#
# You should have received a copy of the GNU General Public License along with
# this program.  If not, see <https://www.gnu.org/licenses/>.

case "$1" in
  "") echo 'Usage: mkshadow <destdir>'; exit 1 ;;
esac

dest="$1"

if [ ! -d "$dest" ]; then
  echo "Destination directory '$dest' must exist!"
  exit 1
fi

if [ ! -f run_make_tests ]; then
  echo "The current directory doesn't appear to contain the test suite!"
  exit 1
fi

suite=`pwd | sed 's%^/tmp_mnt%%'`
name=`basename "$suite"`

files=`echo *`

set -e

mkdir "$dest/$name"
cd "$dest/$name"

ln -s "$suite" .testdir

for f in $files; do
  ln -s .testdir/$f .
done

rm -rf work

echo "Shadow test suite created in '$dest/$name'."
exit 0
