public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
* [gentoo-commits] proj/gentoolkit:gentoolkit-dev commit in: src/echangelog/test/, src/echangelog/
@ 2013-05-10 17:15 Christian Ruppert
  0 siblings, 0 replies; only message in thread
From: Christian Ruppert @ 2013-05-10 17:15 UTC (permalink / raw
  To: gentoo-commits

commit:     16b7f5c64f149a8009626f75198c3e65e7456e59
Author:     Christian Ruppert <idl0r <AT> gentoo <DOT> org>
AuthorDate: Fri May 10 17:12:45 2013 +0000
Commit:     Christian Ruppert <idl0r <AT> gentoo <DOT> org>
CommitDate: Fri May 10 17:14:38 2013 +0000
URL:        http://git.overlays.gentoo.org/gitweb/?p=proj/gentoolkit.git;a=commit;h=16b7f5c6

Fix Copyright check, bug 454782 and some cleanup

---
 src/echangelog/echangelog   |   50 +++++++++++++++++++++++-------------------
 src/echangelog/test/test.sh |    8 +++---
 2 files changed, 31 insertions(+), 27 deletions(-)

diff --git a/src/echangelog/echangelog b/src/echangelog/echangelog
index bf25af7..48007d1 100755
--- a/src/echangelog/echangelog
+++ b/src/echangelog/echangelog
@@ -518,29 +518,28 @@ sub sortfunc($$) {
 @ebuilds = grep(/\.ebuild$/, @files);
 @files = grep(!/\.ebuild$/, @files);
 
+my $fh;
 if (@ebuilds) {
 	if ($vcs eq "git") {
-		open C, $vcs{$vcs}{diff}." HEAD -- @ebuilds 2>&1 |" or die "Can't run: ".$vcs{$vcs}{diff}."$!\n";
+		open($fh, $vcs{$vcs}{diff}." HEAD -- @ebuilds 2>&1 |") or die "Can't run: ".$vcs{$vcs}{diff}."$!\n";
 	} else {
-		open C, $vcs{$vcs}{diff}." @ebuilds 2>&1 |" or die "Can't run: ".$vcs{$vcs}{diff}."$!\n";
+		open($fh, $vcs{$vcs}{diff}." @ebuilds 2>&1 |") or die "Can't run: ".$vcs{$vcs}{diff}."$!\n";
 	}
 
-	$_ = <C>;
-
-	while (defined $_) {
+	while (defined(my $line = <$fh>)) {
 		# only possible with cvs
-		if (/^$vcs diff: (([^\/]*?)\.ebuild) was removed/) {
+		if ($line =~ m/^$vcs diff: (([^\/]*?)\.ebuild) was removed/) {
 			mypush(@ebuilds, $1);
 		}
 		# We assume GNU diff output format here.
 		# git format: diff --git a/app-doc/repodoc/metadata.xml b/app-doc/repodoc/metadata.xml
-		elsif (/$vcs{$vcs}{regex}/) {
+		elsif ($line =~ m/$vcs{$vcs}{regex}/) {
 			my ($file, $version) = ($1, $2);
 
 			if ($vcs eq "git") {
-				while (<C>) {
-					last if /^deleted file mode|^index/;
-					if (/^new file mode/) {
+				while (defined($line = <$fh>)) {
+					last if $line =~ m/^deleted file mode|^index/;
+					if ($line =~ m/^new file mode/) {
 						mypush(@ebuilds, $file);
 						mypush(@new_versions, $version);
 						last;
@@ -549,12 +548,12 @@ if (@ebuilds) {
 			}
 
 			if ($vcs eq "bzr") {
-				if (/^=== added file/) {
+				if ($line =~ m/^=== added file/) {
 					mypush(@ebuilds, $file);
 					mypush(@new_versions, $version);
 					last;
 				}
-				elsif(/^=== renamed file '.+\/([^\/]+\.ebuild)' => '.+\/(([^\/]+)\.ebuild)'/) {
+				elsif($line =~ /^=== renamed file '.+\/([^\/]+\.ebuild)' => '.+\/(([^\/]+)\.ebuild)'/) {
 					mypush(@ebuilds, $1, $2);
 					mypush(@new_versions, $3);
 					last;
@@ -564,31 +563,36 @@ if (@ebuilds) {
 			# check if more than just copyright date changed.
 			# skip some lines (vcs dependent)
 			foreach(1..$vcs{$vcs}{skip}) {
-				$_ = <C>;
+				$line = <$fh>;
 			}
 
-			while (<C>) {
-				last if /^[A-Za-z]/;
-				if (/^[-+](?!# Copyright)/) {
+
+			my $copy_only = 1;
+			while(defined($line = <$fh>)) {
+				# We just want to check/compare the differences so anything beginning with +/-
+				if ($line =~ m/^[-+](?!# Copyright)/m) {
 					mypush(@ebuilds, $file);
+					$copy_only = 0;
 					last;
 				}
 			}
 
-			# at this point we've either added $f to @ebuilds or not,
-			# and we have the next line in $_ for processing
+			# Only the Copyright has been changed so lets remove the file from the array
+			if ($copy_only) {
+				@ebuilds = grep(!/\Q${file}\E/, @ebuilds);
+			}
+
+			# At this point all ebuilds where more than just the copyright has been changed have been added to @ebuilds.
+			# So lets go ahead with the next diff.
 			next;
 		}
-		elsif (/^$vcs.*?: (([^\/]*?)\.ebuild) is a new entry/) {
+		elsif ($line =~ m/^$vcs.*?: (([^\/]*?)\.ebuild) is a new entry/) {
 			mypush(@ebuilds, $1);
 			mypush(@new_versions, $2);
 		}
-
-		# other cvs output is ignored
-		$_ = <C>;
 	}
 }
-close C;
+close($fh);
 
 # Subversion diff doesn't identify new versions. So use the status command
 if (($vcs eq "svn" or $vcs eq "hg") and (@ebuilds)) {

diff --git a/src/echangelog/test/test.sh b/src/echangelog/test/test.sh
index 4157d72..74d815f 100755
--- a/src/echangelog/test/test.sh
+++ b/src/echangelog/test/test.sh
@@ -17,9 +17,9 @@ export ECHANGELOG_USER="Just a test <echangelogtest@gentoo.org>"
 MD5_INIT="21ac109c53cf02378593a4f613b2bb55"
 MD5_PATCH="f3fa1cacae3bf51d6188278e6a5fd0c6"
 MD5_REVBUMP="e474aa136f06e2a001320240b2ae92bd"
-MD5_COPYRIGHT="17e3e9a3ec855f5229815cbfd327b634"
-MD5_OBSOLETE="9424da75f53c5212f58cf11a614a97c5"
-MD5_FINAL="3f770e0c13a31653fd0f4ff71598ba6f"
+MD5_COPYRIGHT="9ce45576db5489c4f109ed9ef9ffe05e"
+MD5_OBSOLETE="f0079450e03e69741502776a6b8138dc"
+MD5_FINAL="a3954786368fd92d8466bc65cbf689fc"
 
 UPDATE_MD5=0
 
@@ -138,7 +138,7 @@ make_test() {
 		eerror "WRONG MD5_OBSOLETE!"
 	fi
 
-	echo>>vcstest-0.0.1.ebuild
+	echo "foobar" >> vcstest-0.0.1.ebuild
 	ech ${echangelog} --vcs $vcs "Revbump...; Just copyright changed; Removed obsolete patch; Modified more then just the copyright."
 
 	if [ "${MD5_FINAL}" != "$(md5 ChangeLog MD5_FINAL)" ]; then


^ permalink raw reply related	[flat|nested] only message in thread

only message in thread, other threads:[~2013-05-10 17:15 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-05-10 17:15 [gentoo-commits] proj/gentoolkit:gentoolkit-dev commit in: src/echangelog/test/, src/echangelog/ Christian Ruppert

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox