On Mon, Jan 22, 2018 at 02:32:18PM +0100, SZEDER Gábor wrote: > Some of our 'ci/*' scripts repeat the name or full path of the Travis > CI cache directory, and the following patches will add new places > using that path. > > Use a variable to refer to the path of the cache directory instead, so > it's hard-coded only in a single place. > > Pay extra attention to the 32 bit Linux build: it runs in a Docker > container, so pass the path of the cache directory from the host to > the container in an environment variable. Furthermore, use the > variable in the container only if it's set, to prevent errors when > someone is running or debugging the Docker build locally, because in > that case the variable won't be set as there won't be any Travis CI > cache. Makes sense that we need to pass it down, but... > diff --git a/ci/run-linux32-build.sh b/ci/run-linux32-build.sh > index 248183982b..c9476d6598 100755 > --- a/ci/run-linux32-build.sh > +++ b/ci/run-linux32-build.sh > @@ -25,10 +25,10 @@ CI_USER=$USER > test -z $HOST_UID || (CI_USER="ci" && useradd -u $HOST_UID $CI_USER) > > # Build and test > -linux32 --32bit i386 su -m -l $CI_USER -c ' > +linux32 --32bit i386 su -m -l $CI_USER -c " > set -ex > cd /usr/src/git > - ln -s /tmp/travis-cache/.prove t/.prove > + test -n '$cache_dir' && ln -s '$cache_dir/.prove' t/.prove > make --jobs=2 > make --quiet test > -' > +" This interpolates $cache_dir while generating the snippet. You've stuck it in single-quotes, which prevents most quoting problems, but obviously it's an issue if the variable itself contains a single-quote. Is there a reason not to just export $cache_dir in the environment and access it directly from the snippet? Probably not a _big_ deal, since we control the contents of the variable, but it just seems like a fragile practice to avoid. -Peff