oss-build-scripts/scripts/qnap-patches-apply.bash

45 lines
1.1 KiB
Bash
Executable File

#!/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_ "${@}"