Skip to content

Commit

Permalink
try new approach for node_modules cache
Browse files Browse the repository at this point in the history
  • Loading branch information
ddollar committed Jan 13, 2012
1 parent aa480b1 commit df91075
Showing 1 changed file with 27 additions and 24 deletions.
51 changes: 27 additions & 24 deletions bin/compile
@@ -1,9 +1,6 @@
#!/usr/bin/env bash
# bin/compile <build-dir> <cache-dir>

# fail fast
set -e

mktmpdir() {
dir=$(mktemp -t node-$1-XXXX)
rm -rf $dir
Expand All @@ -19,6 +16,16 @@ function indent() {
esac
}

run_npm() {
command="$1"
HOME="$BUILD_DIR" $VENDORED_NODE/bin/node $VENDORED_NPM/cli.js $command 2>&1 | indent

if [ "${PIPESTATUS[*]}" != "0 0" ]; then
echo " ! Failed to $command dependencies with npm"
exit 1
fi
}

# clean up leaking environment
unset GIT_DIR

Expand Down Expand Up @@ -65,35 +72,31 @@ export CPPPATH="$INCLUDE_PATH"

# unpack existing cache
if [ -d $CACHE_STORE_DIR ]; then

TEMP_NODE_MODULES_DIR=$(mktmpdir node_modules)

# move existing node_modules out of the way
if [ -f $CACHE_TARGET_DIR ]; then
mv $CACHE_TARGET_DIR $TEMP_NODE_MODULES_DIR/
fi

mkdir -p $CACHE_TARGET_DIR
cp -R $CACHE_STORE_DIR/* $CACHE_TARGET_DIR/

# move existing node_modules back into place
if [ -d $TEMP_NODE_MODULES_DIR/node_modules ]; then
cp -R $TEMP_NODE_MODULES_DIR/node_modules/* $CACHE_TARGET_DIR/
fi
fi

# install dependencies with npm
echo "-----> Installing dependencies with npm $NPM_VERSION"
cd $BUILD_DIR

HOME="$BUILD_DIR" $VENDORED_NODE/bin/node $VENDORED_NPM/cli.js prune 2>&1 | indent

if [ "${PIPESTATUS[*]}" != "0 0" ]; then
echo " ! Failed to prune dependencies with npm"
exit 1
fi

HOME="$BUILD_DIR" $VENDORED_NODE/bin/node $VENDORED_NPM/cli.js install 2>&1 | indent

if [ "${PIPESTATUS[*]}" != "0 0" ]; then
echo " ! Failed to install dependencies with npm"
exit 1
fi

HOME="$BUILD_DIR" $VENDORED_NODE/bin/node $VENDORED_NPM/cli.js rebuild 2>&1 | indent
cd $BUILD_DIR
run_npm install
run_npm rebuild

if [ "${PIPESTATUS[*]}" != "0 0" ]; then
echo " ! Failed to rebuild dependencies with npm"
exit 1
fi
echo " Dependencies installed"
echo "Dependencies installed" | indent

# repack cache with new assets
if [ -d $CACHE_TARGET_DIR ]; then
Expand Down

0 comments on commit df91075

Please sign in to comment.