#!/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: $0 [ -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