#!/usr/bin/env bash # # --- T2-COPYRIGHT-BEGIN --- # t2/scripts/Create-Diff # Copyright (C) 2004 - 2026 The T2 SDE Project # Copyright (C) 1998 - 2003 ROCK Linux Project # SPDX-License-Identifier: GPL-2.0 # --- T2-COPYRIGHT-END --- directories="misc package architecture target scripts" if [ "$1" = "-editor" ]; then editor="$2"; shift; shift fi if [ "$#" -lt 2 ]; then echo echo "Usage: [ -editor ] [ {file|directory} ]" echo echo "Creates a unified diff over two T2 source trees. You can" echo "send this diff to the mailing list if you want your changes" echo "to be included." echo echo "Please do create seperate diffs for changes which do not" echo "belong to each other." echo exit 1 else olddir=$1; shift newdir=$1; shift [ "$1" ] && directories="$*" fi if ! perl -e 'exit 0'; then perl() { cat; } fi eval "`grep -A 10 '\[BEGIN\]' $olddir/scripts/parse-config | grep -B 10 '\[END\]'`" [ "$editor" = "" ] && echo "[ Generated by scripts/Create-Diff for T2 $sdever ]" > /tmp/$$ for x in $directories; do x=${x#./} x=${x%/} if [ -d $x ]; then FLAGS="-rduN" name_for_diff="$x/." source_for_sed="$x/./" target_for_sed="$x/" else FLAGS="-duN" name_for_diff="$x" source_for_sed="" target_for_sed="" fi diff -x CVS -x '.svn' -x '.#*' -x '*.mine' -x '*.r[1-9][0-9]*' \ $FLAGS "$olddir"/$name_for_diff "$newdir"/$name_for_diff | grep -v '^diff ' | \ sed "s,^--- $olddir/$source_for_sed,--- ./$target_for_sed," | \ sed "s,^+++ $newdir/$source_for_sed,+++ ./$target_for_sed," | \ perl -pe '$fn=$1 if /^--- \.\/(\S+)\s/; $_="" if $fn =~ /~$/' done >> /tmp/$$ if [ "$editor" = "" ]; then cat /tmp/$$ rm /tmp/$$ else eval "$editor /tmp/$$" rm /tmp/$$ fi