45 lines
1.1 KiB
Bash
Executable File
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_ "${@}"
|