mirror of
https://github.com/meteor/meteor.git
synced 2026-05-02 03:01:46 -04:00
They are not safe for spaces in paths. There might be other places to look for trouble.
I've run the following command to produce this commit: (on OS X, copy-and-pasting the below exactly)
find . -type f -name '*.sh' -print0 | # Find all .sh files
xargs -0 fgrep -H -- '`' | # See all places with backticks in them
fgrep 'cd `dirname $0' | # I deemed these problematic (variable assignments are safe)
cut -d ':' -f 1 | # Take the <file> from <file>:<line> produced by "grep -H"
tr '\n' '\0' | # Also here, spaces can be problematic - always do "xargs -0"!
xargs -0 -- sed -i '' 's/cd `dirname $0`/cd "`dirname "$0"`"/g'
The significance of adding the two levels of "'s can be verified by running the following in your Terminal:
$ node -e 'console.log(process.argv.splice(1))' -- `echo 1 2`
[ '1', '2' ]
$ node -e 'console.log(process.argv.splice(1))' -- "`echo 1 2`"
[ '1 2' ]
$ node -e 'console.log(process.argv.splice(1))' -- "`echo "1 2"`"
[ '1 2' ]
42 lines
1006 B
Bash
Executable File
42 lines
1006 B
Bash
Executable File
#!/bin/bash
|
|
|
|
# Requires s3cmd to be installed and an appropriate ~/.s3cfg.
|
|
# Usage:
|
|
# scripts/admin/copy-dev-bundle-from-jenkins.sh [--prod] BUILDNUMBER
|
|
# where BUILDNUMBER is the small integer Jenkins build number.
|
|
|
|
set -e
|
|
set -u
|
|
|
|
cd "`dirname "$0"`"
|
|
|
|
TARGET="s3://com.meteor.static/test/"
|
|
TEST=no
|
|
if [ $# -ge 1 -a $1 = '--prod' ]; then
|
|
shift
|
|
TARGET="s3://com.meteor.static/"
|
|
else
|
|
TEST=yes
|
|
fi
|
|
|
|
if [ $# -ne 1 ]; then
|
|
echo "usage: $0 [--prod] jenkins-build-number" 1>&2
|
|
exit 1
|
|
fi
|
|
|
|
DIRNAME=$(s3cmd ls s3://com.meteor.jenkins/ | perl -nle 'print $1 if m!/(dev-bundle-.+--'$1'--.+)/!')
|
|
|
|
if [ -z "$DIRNAME" ]; then
|
|
echo "build not found" 1>&2
|
|
exit 1
|
|
fi
|
|
|
|
echo Found build $DIRNAME
|
|
|
|
# Check to make sure the proper number of each kind of file is there.
|
|
s3cmd ls s3://com.meteor.jenkins/$DIRNAME/ | \
|
|
perl -nle 'if (/\.tar\.gz/) { ++$TAR } else { die "something weird" } END { exit !($TAR == 3) }'
|
|
|
|
echo Copying to $TARGET
|
|
s3cmd -P cp -r s3://com.meteor.jenkins/$DIRNAME/ $TARGET
|