r3469 - scripts/trunk
Cyril Brulebois
kibi-guest at alioth.debian.org
Sat Jul 28 05:52:33 UTC 2007
Author: kibi-guest
Date: 2007-07-28 05:52:33 +0000 (Sat, 28 Jul 2007)
New Revision: 3469
Added:
scripts/trunk/XS-Vcs-fields-update.pl
Log:
Add XS-Vcs-fields-update.pl
Added: scripts/trunk/XS-Vcs-fields-update.pl
===================================================================
--- scripts/trunk/XS-Vcs-fields-update.pl (rev 0)
+++ scripts/trunk/XS-Vcs-fields-update.pl 2007-07-28 05:52:33 UTC (rev 3469)
@@ -0,0 +1,106 @@
+#!/usr/bin/perl -w
+#
+# Tiny script to add/check that the appopriate XS-Vcs-* fields are present
+# in the control file of some packages, eventually add or modify them.
+#
+# Cyril Brulebois <cyril.brulebois at enst-bretagne.fr>, 2007
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the same terms as Perl itself.
+#
+#
+
+use strict;
+
+# Our XS-* fields
+sub xs_vcs_svn { return "svn://svn.debian.org/pkg-games/packages/trunk/" . shift() . "/"; };
+sub xs_vcs_browser { return "http://svn.debian.org/wsvn/pkg-games/packages/trunk/" . shift () . "/?op=log"; };
+
+
+# Parameters handling
+my (@packages) = @ARGV;
+die << "END_OF_USAGE"
+Usage:
+ svn co svn://svn.debian.org/pkg-games/packages/trunk/
+ cd trunk
+ $0 package1 package2 [...] packageN # or: $0 *
+ svn diff
+ # edit debian/changelog
+ svn ci
+END_OF_USAGE
+ if not @packages;
+
+
+foreach my $package (@packages) {
+ # Check the file actually exists
+ if ( ! -f "$package/debian/control" ) {
+ warn "Unable to open $package/debian/control: SKIPPING";
+ next;
+ }
+
+ # Open it
+ open my $control_fh, '<', "$package/debian/control"
+ or die "Oops, unable to open $package/debian/control";
+
+ # Slurp it
+ my $control = join('', <$control_fh>);
+
+ # Close it
+ close $control_fh
+ or die "Oops, unable to close $package/debian/control";
+
+ # SVN: Already contains this field?
+ if ($control =~ /^XS-Vcs-Svn: (.*)$/ms ) {
+ my $svn = $1;
+ print "[$package] XS-Vcs-Svn already present: ";
+
+ # Matches the appropriate value?
+ if ($svn eq xs_vcs_svn($package)) {
+ print "ALREADY OK\n";
+ }
+ else {
+ print "NEEDS MODIFICATION\n";
+ my $replacement = xs_vcs_svn($package);
+ $control =~ s/^XS-Vcs-Svn.*?$/XS-Vcs-Svn: $replacement/ms;
+ }
+ }
+ else {
+ print "[$package] XS-Vcs-Svn absent: ADDING\n";
+ my $addition = xs_vcs_svn($package);
+ $control =~ s/^$/XS-Vcs-Svn: $addition\n/ms;
+ }
+
+ # BROWSER: Already contains this field?
+ if ($control =~ /^XS-Vcs-Browser: (.*)$/ms ) {
+ my $browser = $1;
+ print "[$package] XS-Vcs-Browser already present: ";
+
+ # Matches the appropriate value?
+ if ($browser eq xs_vcs_svn($package)) {
+ print "ALREADY OK\n";
+ }
+ else {
+ print "NEEDS MODIFICATION\n";
+ my $replacement = xs_vcs_browser($package);
+ $control =~ s/^XS-Vcs-Browser.*?$/XS-Vcs-Browser: $replacement/ms;
+ }
+ }
+ else {
+ print "[$package] XS-Vcs-Browser absent: ADDING\n";
+ my $addition = xs_vcs_browser($package);
+ $control =~ s/^$/XS-Vcs-Browser: $addition\n/ms;
+ }
+
+ # And now write back to the file
+ # Open it
+ open $control_fh, '>', "$package/debian/control"
+ or die "Oops, unable to open $package/debian/control";
+
+ # Slurp it
+ print $control_fh $control;
+
+ # Close it
+ close $control_fh
+ or die "Oops, unable to close $package/debian/control";
+
+}
Property changes on: scripts/trunk/XS-Vcs-fields-update.pl
___________________________________________________________________
Name: svn:executable
+ *
More information about the Pkg-games-commits
mailing list