#!/bin/bash die() { echo "ERROR: $*" > /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 ]]; then echo "ERROR: current directory is invalid" > /dev/stderr exit 1 fi git diff --no-prefix --relative="$(basename "$(pwd)")" make.conf.example > make.conf.example.diff git checkout -- make.conf.example archs=() for x in make.conf.example.*.diff; do archs+=("$(basename ${x:18} .diff)") done for arch in "${archs[@]}"; do 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" done echo "* Re-patching make.conf.example" patch -p0 make.conf.example < make.conf.example.diff > /dev/null || die "repatch failed" for arch in "${archs[@]}"; do 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 done rm make.conf.example.diff echo "Done"