mirror of
https://github.com/cahirwpz/amigaos-cross-toolchain
synced 2026-03-20 11:09:05 +00:00
Two useful scripts for diff file manipulations.
This commit is contained in:
12
scripts/merge-rej.sh
Executable file
12
scripts/merge-rej.sh
Executable file
@ -0,0 +1,12 @@
|
|||||||
|
#!/bin/sh -x
|
||||||
|
|
||||||
|
file=${1#*sources/}
|
||||||
|
|
||||||
|
pushd "sources" > /dev/null
|
||||||
|
wiggle --replace $file $file.rej
|
||||||
|
vimdiff $file.orig $file
|
||||||
|
echo "sources/${file}.orig vs. sources/${file} -> patches/${file}.diff"
|
||||||
|
diff -du $file.orig $file | sed '1s/\.orig//' >$file.diff
|
||||||
|
popd > /dev/null
|
||||||
|
|
||||||
|
mv -i "sources/$file.diff" "patches/$file.diff"
|
||||||
26
scripts/split-diff.sh
Executable file
26
scripts/split-diff.sh
Executable file
@ -0,0 +1,26 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
# 1) Splits a patch file into smaller patches - one for each file.
|
||||||
|
# 2) Build a directory structure correspoding to paths in patch headers.
|
||||||
|
# 3) Copies smaller patches into newly created directories.
|
||||||
|
# 4) If a patch introduces a completely new file, it will be put into directory
|
||||||
|
# as a regular file and not diff file.
|
||||||
|
|
||||||
|
[ $# == 1 ] || echo "Error: expected single patch file as an argument."
|
||||||
|
[ -f $1 ] || echo "Error: no such file '$1'."
|
||||||
|
|
||||||
|
path="$1"
|
||||||
|
|
||||||
|
splitdiff -a "${path}" >/dev/null
|
||||||
|
|
||||||
|
for p in ${path}.part???; do
|
||||||
|
file=`sed -E -n -e '1s/---[[:space:]]+([^[:space:]]+).*/\1/p' ${p}`
|
||||||
|
origsize=`sed -E -n -e '3s/@@ ([^[:space:]]+) .*/\1/p' ${p}`
|
||||||
|
mkdir -p `dirname ${file}`
|
||||||
|
if [ "${origsize}" == "-0,0" ]; then
|
||||||
|
sed -E -n -e '3,$s/^\+(.*)/\1/p' ${p} >${file}
|
||||||
|
else
|
||||||
|
cp ${p} ${file}.diff
|
||||||
|
fi
|
||||||
|
rm ${p}
|
||||||
|
done
|
||||||
Reference in New Issue
Block a user