# take a patch file, and make sure it is relative to where the patch.queue is # being written. This is a standard requirement for most patch managers .. and # it just makes life easier patch() { local patch_name=$1 local simple_patch_name=$(basename ${patch_name}) if [ -n "${verbose}" ]; then echo "patch: $1 [${cbranch_name}]" >&2 fi if [ ! -d "${outdir}/patches/${cbranch_name}" ]; then mkdir -p "${outdir}/patches/${cbranch_name}" fi relative_patch_name=${patch_name} relative_patch_dir="" if [ -n "${prefix}" ]; then relative_patch_name=${relative_patch_name/$prefix} relative_patch_dir=$(dirname ${relative_patch_name}) mkdir -p ${outdir}/patches/${cbranch_name}/${relative_patch_dir} fi # we could compare the source and dest, and either warn or clobber, but for now, we just clobber cp -f "$patch_name" "${outdir}/patches/${cbranch_name}/${relative_patch_dir}" # output to the global and branch specific queue eval echo "\"patches/${cbranch_name}/${relative_patch_dir}/${simple_patch_name}\"" >> "${patchqueue}" if [ -n "${branch_patch_queue}" ]; then eval echo "\"patches/${cbranch_name}/${relative_patch_dir}/${simple_patch_name}\"" >> "${branch_patch_queue}" fi # outfile_append is the meta-series eval echo "\"patch patches/${cbranch_name}/${relative_patch_dir}/${simple_patch_name}\"" $outfile_append }