#!/bin/bash proc die { echo "ERROR: $ifsjoin(Argv)" > /dev/stderr patch -p0 make.conf.example < make.conf.example.diff exit 1 } if [[ ! -f make.conf.example || ! -f make.conf.example.x86.diff || ! -d ../.git ]] { echo "ERROR: current directory is invalid" > /dev/stderr exit 1 } git diff --no-prefix --relative="$[basename $[pwd]]" make.conf.example > make.conf.example.diff git checkout -- make.conf.example setglobal archs = ''() for x in [make.conf.example.*.diff] { setglobal archs = '('"$(basename ${x:18} .diff)") } for arch in [$(archs[@])] { echo "* Patching $(arch)" cp make.conf.example make.conf.example.$(arch) || die "copy failed" patch -p0 make.conf.example.$(arch) < make.conf.example.$(arch).diff > /dev/null || die "arch-patch failed" patch -p0 make.conf.example.$(arch) < make.conf.example.diff > /dev/null || die "patch failed" } echo "* Re-patching make.conf.example" patch -p0 make.conf.example < make.conf.example.diff > /dev/null || die "repatch failed" for arch in [$(archs[@])] { echo "* Creating diff for $(arch)" diff -u make.conf.example make.conf.example.$(arch) > make.conf.example.$(arch).diff [[ -z ${KEEP_ARCH_MAKE_CONF_EXAMPLE} ]] && rm -f make.conf.example.$(arch) make.conf.example.$(arch).orig } rm make.conf.example.diff echo "Done"