summaryrefslogtreecommitdiffstats
path: root/third_party/ffmpeg/copy_binaries.sh
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