1
0
mirror of https://github.com/cahirwpz/amigaos-cross-toolchain synced 2025-12-08 15:08:26 +00:00

Two useful scripts for diff file manipulations.

This commit is contained in:
Krystian Bacławski
2013-05-19 13:42:48 +02:00
parent b947b3de55
commit bbabcf5467
2 changed files with 38 additions and 0 deletions

26
scripts/split-diff.sh Executable file
View 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