Skip to content

Commit 9f1bcd2

Browse files
committed
Restore nix-tools support for GHC 9.2
1 parent 70d5eef commit 9f1bcd2

File tree

1 file changed

+19
-12
lines changed
  • nix-tools/nix-tools/hackage2nix

1 file changed

+19
-12
lines changed

nix-tools/nix-tools/hackage2nix/Main.hs

Lines changed: 19 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
{-# LANGUAGE CPP #-}
12
{-# LANGUAGE OverloadedStrings #-}
23
{-# LANGUAGE NamedFieldPuns #-}
34
{-# LANGUAGE LambdaCase #-}
@@ -6,10 +7,14 @@ module Main (main) where
67

78
import Cabal2Nix
89
import Cabal2Nix.Util ( quoted )
10+
#if !MIN_VERSION_base(4, 17, 0)
11+
import Control.Applicative ( liftA2 )
12+
#endif
913
import Control.Monad.Trans.State.Strict
1014
import Crypto.Hash.SHA256 ( hash )
1115
import qualified Data.ByteString.Base16 as Base16
1216
import qualified Data.ByteString.Char8 as BS
17+
import Data.Char ( isUpper )
1318
import Data.Foldable ( toList
1419
, for_
1520
)
@@ -49,7 +54,6 @@ import System.Environment ( getArgs )
4954
import System.FilePath ( (</>)
5055
, (<.>)
5156
)
52-
import Data.Char (isUpper)
5357

5458
-- Avoid issues with case insensitive file systems by escaping upper case
5559
-- characters with a leading _ character.
@@ -74,17 +78,20 @@ main = do
7478
let (nixFiles, cabalFiles) =
7579
runState (fmap (toList . (Seq.sortOn fst)) $ foldMapWithKeyA package2nix db) mempty
7680
createDirectoryIfMissing False out
77-
writeFile (out </> "default.nix") $
78-
"with builtins; mapAttrs (_: mapAttrs (_: data: rec {\n\
79-
\ inherit (data) sha256;\n\
80-
\ revisions = data.revisions // {\n\
81-
\ default = revisions.\"${data.revisions.default}\";\n\
82-
\ };\n\
83-
\})) {\n"
84-
-- Import all the per package nix files
85-
<> mconcat (map (\(pname, _) ->
86-
" " <> quoted pname <> " = import ./nix/" <> escapeUpperCase pname <> ".nix;\n") nixFiles)
87-
<> "}\n"
81+
writeFile (out </> "default.nix") $ unlines [
82+
"with builtins; mapAttrs (_: mapAttrs (_: data: rec {",
83+
" inherit (data) sha256;",
84+
" revisions = data.revisions // {",
85+
" default = revisions.\"${data.revisions.default}\";",
86+
" };",
87+
"})) {",
88+
-- Import all the per package nix files
89+
unlines [
90+
" " <> quoted pname <> " = import ./nix/" <> escapeUpperCase pname <> ".nix;"
91+
| (pname, _) <- nixFiles
92+
],
93+
"}"
94+
]
8895

8996
createDirectoryIfMissing False (out </> "nix")
9097
for_ nixFiles $ \(pname, nix) ->

0 commit comments

Comments
 (0)