blob: 5c7f4120e6b8fb9e5712f55455e90c75f4ac2c48 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
|
#!/bin/bash
#
# This is meant to replicate the behavior of cp, except that it will not fail
# if the source files are not present. Something like
# "cp ${SOURCES} ${DEST} || true" would also have worked except that
# gyp does not allow for specifying || in the action, and the windows
# cygwin envrionment does not include "true" making a script like this the
# least ugly solution.
SOURCES=""
DESTINATION=""
# Shift off every argument but the last and consider them the sources.
# It would have probably been easier to put the destination first, but
# this is not too hard and it replicates the argument ordering of cp.
while (( "$#" != 1 )); do
SOURCES="$SOURCES $1"
shift
done
DESTINATION=$1
# Early out if there was not enough parameters to discern a destination.
# Also fail the command because this means we are being invoked incorrectly.
if test -z "$DESTINATION"; then
echo "ERROR: Destination empty."
exit 1
fi
# Only try to copy the source file if it exists. It is not an error
# if the input does not exist; we just silently ignore the input.
for i in $SOURCES; do
if test -f $i; then
cp -v -f $i $DESTINATION
fi
done
# Make sure we always succeed.
exit 0
|