diff --git a/scripts/qnap-patches-apply.bash b/scripts/qnap-patches-apply.bash new file mode 100755 index 0000000..2ef7fe2 --- /dev/null +++ b/scripts/qnap-patches-apply.bash @@ -0,0 +1,44 @@ +#!/usr/bin/env bash + +quilt-ensure() { + command -v quilt >/dev/null || { + "${REPO_ROOT}/projects/quilt/ossbuild-quilt.bash" + } +} + + +_main_() { + declare -g REPO_ROOT + REPO_ROOT="$(realpath "$(dirname "${BASH_SOURCE[-1]}")/..")" + source "${REPO_ROOT}/lib/ossbuild-common.bash" + + quilt-ensure + shopt -s globstar + + ossbuild-pushd "${REPO_ROOT}/quilt/qnap" + ossbuild-cmd quilt push -a || true + + local dst='root/' src p + local -a cmd=('cp' '-uv' '--target' "${dst}" '--parents') + for src in */; do + [ "${src}" = 'patches/' ] || { + for p in "${src}"**; do + [ -f "${p}" ] || continue + #echo "p:'${p}'/'${dst}${p}'" + if [ -f "${dst}${p}" ] && ! diff -q "${dst}${p}" "${p}" >/dev/null; then + if [ -w "${dst}${p}" ]; then + ossbuild-cmd "${cmd[@]}" "${p}" + else + ossbuild-cmd sudo "${cmd[@]}" "${p}" + fi + fi + done + } + done + + ossbuild-cmd quilt pop -a + ossbuild-popd +} + + +_main_ "${@}"