27 lines
798 B
Text
27 lines
798 B
Text
|
#!/bin/sh
|
||
|
# Emulate cp -s for systems without coreutils
|
||
|
|
||
|
if test -z "$1" || test -z "$2" ; then
|
||
|
echo "usage: ${0} srcdir destdir" >&2
|
||
|
exit 1
|
||
|
fi
|
||
|
|
||
|
# Portability notes:
|
||
|
# - Avoid set -e given its ambiguous interaction with subshells.
|
||
|
# - Not all shells update $PWD as required by POSIX.
|
||
|
# Use the pwd builtin instead.
|
||
|
# - Command substitution strips all trailing newlines.
|
||
|
# Preserve trailing newlines by appending a safety character and then
|
||
|
# removing it with parameter substitution, along with the newline
|
||
|
# appended by pwd itself.
|
||
|
|
||
|
mkdir -p "$2" &&
|
||
|
destdir=`cd "$2" && pwd && echo x` &&
|
||
|
destdir=${destdir%??} &&
|
||
|
|
||
|
cd "$1" &&
|
||
|
srcdir=`pwd && echo x` &&
|
||
|
srcdir=${srcdir%??} &&
|
||
|
find . -type d -exec mkdir -p "${destdir}/{}" \; &&
|
||
|
find . -type f -exec ln -sf "${srcdir}/{}" "${destdir}/{}" \;
|