summary refs log tree commit diff
path: root/pkgs/development/haskell-modules/generic-builder.nix
diff options
context:
space:
mode:
authorKosyrev Serge <_deepfire@feelingofgreen.ru>2019-01-30 04:50:56 +0300
committerPeter Simons <simons@cryp.to>2019-02-02 13:13:18 +0100
commite505891a5c8feafd272a1d372829df69f2a15035 (patch)
treee53d493b265b0ad2b0135f0c9fae55b07020a56c /pkgs/development/haskell-modules/generic-builder.nix
parentd8260d6af069cb886452080abd52944735aed9fa (diff)
downloadnixpkgs-e505891a5c8feafd272a1d372829df69f2a15035.tar
nixpkgs-e505891a5c8feafd272a1d372829df69f2a15035.tar.gz
nixpkgs-e505891a5c8feafd272a1d372829df69f2a15035.tar.bz2
nixpkgs-e505891a5c8feafd272a1d372829df69f2a15035.tar.lz
nixpkgs-e505891a5c8feafd272a1d372829df69f2a15035.tar.xz
nixpkgs-e505891a5c8feafd272a1d372829df69f2a15035.tar.zst
nixpkgs-e505891a5c8feafd272a1d372829df69f2a15035.zip
haskell/generic-buidler: make installPhase handle Cabal 2.5's lax fields
Diffstat (limited to 'pkgs/development/haskell-modules/generic-builder.nix')
-rw-r--r--pkgs/development/haskell-modules/generic-builder.nix6
1 files changed, 5 insertions, 1 deletions
diff --git a/pkgs/development/haskell-modules/generic-builder.nix b/pkgs/development/haskell-modules/generic-builder.nix
index 2a71e7e92d1..2724ff5d622 100644
--- a/pkgs/development/haskell-modules/generic-builder.nix
+++ b/pkgs/development/haskell-modules/generic-builder.nix
@@ -377,6 +377,10 @@ stdenv.mkDerivation ({
     runHook postHaddock
   '';
 
+  # The scary sed expression handles two cases in v2.5 Cabal's package configs:
+  # 1. 'id:    short-name-0.0.1-9yvw8HF06tiAXuxm5U8KjO'
+  # 2. 'id:\n
+  #         very-long-descriptive-useful-name-0.0.1-9yvw8HF06tiAXuxm5U8KjO'
   installPhase = ''
     runHook preInstall
 
@@ -391,7 +395,7 @@ stdenv.mkDerivation ({
         rmdir "$packageConfFile"
       fi
       for packageConfFile in "$packageConfDir/"*; do
-        local pkgId=$( ${gnused}/bin/sed -n -e 's|^id:[ ]\+||p' $packageConfFile )
+        local pkgId=$( ${gnused}/bin/sed -n -e ':a' -e '/^id:$/N; s/id:\n[ ]*\([^\n]*\).*$/\1/p; s/id:[ ]*\([^\n]*\)$/\1/p; ta' $packageConfFile )
         mv $packageConfFile $packageConfDir/$pkgId.conf
       done