3 # Patch a fresh checkout with local adjustments.
5 if [ -z "${DOTFILES_DIR}" ]; then
6 echo 'DOTFILES_DIR is not set. Bailing out.'
10 cd "${DOTFILES_DIR}" || exit 1
12 # clone the checkout into DOTFILES_DIR/patched-src
13 echo "clone clean checkout into patched-src"
14 rsync -avz --delete src/ patched-src/ || exit 1
16 # apply all the patches in local-patch/
17 for PATCH in local-patch/*.patch; do
18 if [ -f "${PATCH}" ]; then
20 pushd patched-src/ > /dev/null || exit 1
21 patch -p0 < "../${PATCH}" || exit 1
22 popd > /dev/null || exit 1
26 # remove any files marked for removal in local-patch
27 for REMOVE in local-patch/*.remove; do
28 if [ -f "${REMOVE}" ]; then
30 if [ -z "${LINE}" ] || [ "${LINE:0:1}" = '#' ]; then
31 continue # ignore blank lines and comments
33 if [ -e "patched-src/${LINE}" ]; then
35 rm -rf "patched-src/${LINE}"