From 4a596eda3437b6e7bf3018170d1187badddfe81b Mon Sep 17 00:00:00 2001 From: Aaron Iba Date: Fri, 18 Dec 2009 18:40:23 +1100 Subject: initial code push --- trunk/trunk/infrastructure/bin/compilecache.sh | 64 ++++++++++++++++++++++++++ 1 file changed, 64 insertions(+) create mode 100644 trunk/trunk/infrastructure/bin/compilecache.sh (limited to 'trunk/trunk/infrastructure/bin/compilecache.sh') diff --git a/trunk/trunk/infrastructure/bin/compilecache.sh b/trunk/trunk/infrastructure/bin/compilecache.sh new file mode 100644 index 0000000..a2b6220 --- /dev/null +++ b/trunk/trunk/infrastructure/bin/compilecache.sh @@ -0,0 +1,64 @@ +#!/bin/bash + +# Copyright 2009 Google Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS-IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +CP_CMD="cp -R -u" +if [ `uname` == "Darwin" ]; then + CP_CMD="/bin/cp -R -n" +fi + +function cacheonfiles { + NAME=$1; FILES=$2; FUNC=$3; NOCOPY=1; + if [ -z "$4" ]; then + NOCOPY=0 + fi + REBUILD=0 + BPATH=buildcache/$NAME + FILETEST=$BPATH/t + if [ ! -f $FILETEST ]; then + REBUILD=1 + else + for a in $FILES; do + if [ $FILETEST -ot $a ]; then + echo $a has changed, rebuilding $NAME + REBUILD=1 + fi + done + fi + if [ $REBUILD -eq 1 ]; then + if [ -d $BPATH ]; then + rm -rf $BPATH + fi + mkdir -p $BPATH + $FUNC $BPATH + pushd $BPATH >> /dev/null + touch t + popd >> /dev/null + else + echo using cached $NAME... + fi + if [ $NOCOPY -ne 1 ]; then + for a in $BPATH/*; do + if [ -d $a ]; then + $CP_CMD $a build/ + elif [ -f $a ]; then + cp $a build/ + else + echo unknown file type $a + exit 1 + fi + done + fi +} -- cgit v1.2.3-1-g7c22