@@ -39,14 +39,23 @@ data Pkg = Pkg PkgName
39 PkgMaintainers
39 PkgMaintainers
40 deriving (Show)
40 deriving (Show)
42+prepunctuate :: Doc -> [Doc] -> [Doc]
43+prepunctuate _ [] = []
44+prepunctuate p (d:ds) = d : map (p <>) ds
42showNixPkg :: Pkg -> String
47showNixPkg :: Pkg -> String
43showNixPkg (Pkg name ver sha256 url desc lic deps tools libs platforms maintainers) = render doc
48showNixPkg (Pkg name ver sha256 url desc lic deps tools libs platforms maintainers) = render doc
45− doc = braces (fsep $ punctuate comma $
50+ doc = sep [
51+ lbrace <+> (fcat $ prepunctuate (comma <> text " ") $
46− map text ("cabal" : pkgBuildTools ++ pkgDeps)) <+>
53+ ("cabal" : pkgBuildTools ++ pkgDeps)),
47− colon $$ text "" $$
54+ rbrace <> colon
49− text "cabal.mkDerivation" <+> lparen <> text "self" <+>
58+ text "cabal.mkDerivation" <+> lparen <> text "self" <>
50 colon <+> lbrace,
59 colon <+> lbrace,
51 nest 2 $ vcat [
60 nest 2 $ vcat [
52 attr "pname" $ doubleQuotes (text name),
61 attr "pname" $ doubleQuotes (text name),