[Pkg-haskell-commits] darcs: tools: Run cabal in a sandboxed configuration directory

Joachim Breitner mail at joachim-breitner.de
Fri Jun 14 22:09:15 UTC 2013


Fri Jun 14 21:41:46 UTC 2013  Joachim Breitner <mail at joachim-breitner.de>
  * Run cabal in a sandboxed configuration directory

    M ./all-packages/test-packages.pl -1 +24

Fri Jun 14 21:41:46 UTC 2013  Joachim Breitner <mail at joachim-breitner.de>
  * Run cabal in a sandboxed configuration directory
diff -rN -u old-tools/all-packages/test-packages.pl new-tools/all-packages/test-packages.pl
--- old-tools/all-packages/test-packages.pl	2013-06-14 22:09:15.763118254 +0000
+++ new-tools/all-packages/test-packages.pl	2013-06-14 22:09:15.825806579 +0000
@@ -4,6 +4,8 @@
 use warnings;
 
 use Dpkg::Version;
+use Cwd;
+use File::Copy;
 
 my %packages;
 my %versions;
@@ -59,6 +61,27 @@
  	}
 }
 
+print "Creating local hackage \"repository\"...\n";
+system("rm -rf cabal-sandbox");
+my $sandboxdir = cwd() . "/cabal-sandbox";
+mkdir "$sandboxdir" or die $!;
+mkdir "$sandboxdir/packages" or die $!;
+mkdir "$sandboxdir/packages/debian" or die $!;
+open CABALCONFIG, ">", "cabal-sandbox/config" or die $!;
+print CABALCONFIG <<__END__;
+remote-repo: debian:http://does-not-exist.example/packages/archive
+remote-repo-cache: $sandboxdir/packages
+world-file: $sandboxdir/world
+install-dirs user
+  prefix: /does-not-exist
+
+install-dirs global
+  prefix: /does-not-exist
+__END__
+close CABALCONFIG or die $!;
+copy($ENV{HOME}."/.cabal/packages/hackage.haskell.org/00-index.tar", "$sandboxdir/packages/debian/00-index.tar") or die $!;
+
+
 print "Creating all-packages.cabal...\n";
 unlink "all-packages.cabal";
 open CABAL, ">", "all-packages.cabal" or die $!;
@@ -83,7 +106,7 @@
 close CABAL;
 chmod 0444, "all-packages.cabal";
 
-my @params = ("cabal", "install", "--dry-run", "--force-reinstall", "--enable-tests");
+my @params = ("cabal", "--config-file", "$sandboxdir/config", "install", "--dry-run", "--force-reinstall", "--enable-tests");
 
 for my $pkg (sort keys %versions) {
 	next if (exists $comments{$pkg});




More information about the Pkg-haskell-commits mailing list