File: generateDiff.pl

package info (click to toggle)
scorched3d 41.3dfsg-1
  • links: PTS, VCS
  • area: main
  • in suites: lenny
  • size: 159,620 kB
  • ctags: 26,898
  • sloc: cpp: 110,179; xml: 36,743; ansic: 31,536; makefile: 4,321; sh: 3,708; perl: 1,522; java: 209; python: 188; sql: 146
file content (98 lines) | stat: -rw-r--r-- 1,880 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
use strict;
use File::Compare;

if (!defined $ARGV[0])
{
	die "Usage : $0 <newdir> <olddir>";
}

my ($dir1, $dir2) = @ARGV;

open(OUT, ">diff.txt") || die "ERROR: Cannot open diff.txt";

checkDir($dir1, ".", $dir2, ".");

sub checkDir()
{
	my ($dir1, $offset1, $dir2, $offset2) = @_;

	my $actualdir1 = $dir1."\\".$offset1;
	my $actualdir2 = $dir2."\\".$offset2;

	# Src dir
	opendir(DIR, $actualdir1) || die "ERROR $actualdir1";
	my @files = readdir(DIR);
	closedir(DIR);

	if (! -d $actualdir2)
	{
		# New Dir
		print "New Dir : $actualdir2\n";
		print OUT "CreateDirectory \"\$INSTDIR\\$offset2\"\n";
	}

	foreach my $file (@files)
	{
		my $file1 = $actualdir1."\\".$file;
		my $file2 = $actualdir2."\\".$file;
		my $offfile = $offset1."\\".$file;

		if (-f $file1)
		{
			if (! -f $file2)
			{			
				# New file
				print "New : $offfile\n";
				print OUT "File \"/oname=\$INSTDIR\\$offfile\" \"$offfile\" \n";
			}
			else
			{
				if (compare($file1, $file2) != 0)
				{
					# Different file
					print "Diff : $offfile\n";
					print OUT "File \"/oname=\$INSTDIR\\$offfile\" \"$offfile\" \n";
				}
			}
		}
		elsif (-d $file1 && $file !~ /^\./)
		{
			checkDir($dir1, $offset1."\\".$file, $dir2, $offset2."\\".$file);
		}
	}
	
	if (-d $actualdir2)
	{
		# Dest dir
		opendir(DIR, $actualdir2) || die "ERROR $actualdir2";
		my @files = readdir(DIR);
		closedir(DIR);

		foreach my $file (@files)
		{
			my $file1 = $actualdir1."\\".$file;
			my $file2 = $actualdir2."\\".$file;
			my $offfile = $offset2."\\".$file;

			if (-f $file2)
			{
				if (! -f $file1)
				{
					# Old file

					print "Old : $offfile\n";
					print OUT "Delete \"\$INSTDIR\\$offfile\" \n";
				}
			}
			elsif (-d $file2 && $file !~ /^\./)
			{
				if (! -d $file1)
				{
					# Old dir
					print "Old Dir : $offfile\n";
					print OUT "RMDir /r \"\$INSTDIR\\$offfile\" \n";
				}
			}
		}
	}
}