#!/bin/bash # check our arguments LIST_FILE=$1 PACKAGE_FILE=$2 TARGET_DIR=$3 SRC_DIR=$4 DIR_NAME=$5 if [ -z "$LIST_FILE" ]; then echo $0 list-file package-file target-dir src-dir exit 1 fi if [ -z "$PACKAGE_FILE" ]; then echo $0 list-file package-file target-dir src-dir exit 1 fi if [ -z "$TARGET_DIR" ]; then echo $0 list-file package-file target-dir src-dir exit 1 fi if [ -z "$SRC_DIR" ]; then echo $0 list-file package-file target-dir src-dir exit 1 fi if [ -z "$DIR_NAME" ]; then echo $0 list-file package-file target-dir src-dir exit 1 fi if [ ! -f "$LIST_FILE" ]; then echo $0 list file not found exit 1 fi if [ ! -d "$TARGET_DIR" ]; then echo $0 target dir not found exit 1 fi if [ ! -d "$SRC_DIR" ]; then echo $0 src dir not found exit 1 fi # try to figure out if we should be using cp -Lr or cp -r touch /tmp/foo-copy-package cp -L /tmp/foo-copy-package /tmp/foo-copy-package2 2>/dev/null >/dev/null if [ "$?" -ne "0" ]; then COPY="cp" else COPY="cp -L" fi rm -f /tmp/foo-copy-package /tmp/foo-copy-package2 # OK, do our file copy cd $SRC_DIR for i in `cat $LIST_FILE` do $COPY -vrP ${i} ${TARGET_DIR} if [ "$?" -ne "0" ]; then echo "Copy of $i to $TARGET_DIR failed!" else echo ${DIR_NAME}/${i} >> $PACKAGE_FILE fi done