[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