diff --git a/.plan.nix/avh4-lib.nix b/.plan.nix/avh4-lib.nix new file mode 100644 index 000000000..be80b457b --- /dev/null +++ b/.plan.nix/avh4-lib.nix @@ -0,0 +1,74 @@ +{ system + , compiler + , flags + , pkgs + , hsPkgs + , pkgconfPkgs + , errorHandler + , config + , ... }: + { + flags = {}; + package = { + specVersion = "2.4"; + identifier = { name = "avh4-lib"; version = "0.0.0.1"; }; + license = "BSD-3-Clause"; + copyright = "See https://github.com/avh4/elm-format/blob/master/LICENSE"; + maintainer = "gruen0aermel@gmail.com"; + author = "Aaron VonderHaar"; + homepage = ""; + url = ""; + synopsis = "Common code for haskell projects"; + description = ""; + buildType = "Simple"; + isLocal = true; + }; + components = { + "library" = { + depends = [ + (hsPkgs."ansi-terminal" or (errorHandler.buildDepError "ansi-terminal")) + (hsPkgs."ansi-wl-pprint" or (errorHandler.buildDepError "ansi-wl-pprint")) + (hsPkgs."array" or (errorHandler.buildDepError "array")) + (hsPkgs."base" or (errorHandler.buildDepError "base")) + (hsPkgs."bimap" or (errorHandler.buildDepError "bimap")) + (hsPkgs."binary" or (errorHandler.buildDepError "binary")) + (hsPkgs."bytestring" or (errorHandler.buildDepError "bytestring")) + (hsPkgs."containers" or (errorHandler.buildDepError "containers")) + (hsPkgs."directory" or (errorHandler.buildDepError "directory")) + (hsPkgs."filepath" or (errorHandler.buildDepError "filepath")) + (hsPkgs."mtl" or (errorHandler.buildDepError "mtl")) + (hsPkgs."process" or (errorHandler.buildDepError "process")) + (hsPkgs."relude" or (errorHandler.buildDepError "relude")) + (hsPkgs."text" or (errorHandler.buildDepError "text")) + ]; + buildable = true; + }; + tests = { + "al-tests" = { + depends = [ + (hsPkgs."ansi-terminal" or (errorHandler.buildDepError "ansi-terminal")) + (hsPkgs."ansi-wl-pprint" or (errorHandler.buildDepError "ansi-wl-pprint")) + (hsPkgs."array" or (errorHandler.buildDepError "array")) + (hsPkgs."base" or (errorHandler.buildDepError "base")) + (hsPkgs."bimap" or (errorHandler.buildDepError "bimap")) + (hsPkgs."binary" or (errorHandler.buildDepError "binary")) + (hsPkgs."bytestring" or (errorHandler.buildDepError "bytestring")) + (hsPkgs."containers" or (errorHandler.buildDepError "containers")) + (hsPkgs."directory" or (errorHandler.buildDepError "directory")) + (hsPkgs."filepath" or (errorHandler.buildDepError "filepath")) + (hsPkgs."mtl" or (errorHandler.buildDepError "mtl")) + (hsPkgs."process" or (errorHandler.buildDepError "process")) + (hsPkgs."relude" or (errorHandler.buildDepError "relude")) + (hsPkgs."text" or (errorHandler.buildDepError "text")) + (hsPkgs."tasty" or (errorHandler.buildDepError "tasty")) + (hsPkgs."tasty-hspec" or (errorHandler.buildDepError "tasty-hspec")) + (hsPkgs."tasty-hunit" or (errorHandler.buildDepError "tasty-hunit")) + ]; + build-tools = [ + (hsPkgs.buildPackages.tasty-discover.components.exes.tasty-discover or (pkgs.buildPackages.tasty-discover or (errorHandler.buildToolDepError "tasty-discover:tasty-discover"))) + ]; + buildable = true; + }; + }; + }; + } // rec { src = (pkgs.lib).mkDefault ../avh4-lib; } diff --git a/.plan.nix/elm-format-lib.nix b/.plan.nix/elm-format-lib.nix new file mode 100644 index 000000000..fec2929e7 --- /dev/null +++ b/.plan.nix/elm-format-lib.nix @@ -0,0 +1,86 @@ +{ system + , compiler + , flags + , pkgs + , hsPkgs + , pkgconfPkgs + , errorHandler + , config + , ... }: + { + flags = {}; + package = { + specVersion = "2.4"; + identifier = { name = "elm-format-lib"; version = "0.0.0.1"; }; + license = "BSD-3-Clause"; + copyright = "See https://github.com/avh4/elm-format/blob/master/LICENSE"; + maintainer = "gruen0aermel@gmail.com"; + author = "Aaron VonderHaar"; + homepage = ""; + url = ""; + synopsis = "Common code used by elm-format and elm-refactor"; + description = ""; + buildType = "Simple"; + isLocal = true; + }; + components = { + "library" = { + depends = [ + (hsPkgs."aeson" or (errorHandler.buildDepError "aeson")) + (hsPkgs."ansi-terminal" or (errorHandler.buildDepError "ansi-terminal")) + (hsPkgs."ansi-wl-pprint" or (errorHandler.buildDepError "ansi-wl-pprint")) + (hsPkgs."array" or (errorHandler.buildDepError "array")) + (hsPkgs."base" or (errorHandler.buildDepError "base")) + (hsPkgs."bimap" or (errorHandler.buildDepError "bimap")) + (hsPkgs."binary" or (errorHandler.buildDepError "binary")) + (hsPkgs."bytestring" or (errorHandler.buildDepError "bytestring")) + (hsPkgs."containers" or (errorHandler.buildDepError "containers")) + (hsPkgs."directory" or (errorHandler.buildDepError "directory")) + (hsPkgs."filepath" or (errorHandler.buildDepError "filepath")) + (hsPkgs."ghc-prim" or (errorHandler.buildDepError "ghc-prim")) + (hsPkgs."mtl" or (errorHandler.buildDepError "mtl")) + (hsPkgs."optparse-applicative" or (errorHandler.buildDepError "optparse-applicative")) + (hsPkgs."process" or (errorHandler.buildDepError "process")) + (hsPkgs."relude" or (errorHandler.buildDepError "relude")) + (hsPkgs."text" or (errorHandler.buildDepError "text")) + (hsPkgs."avh4-lib" or (errorHandler.buildDepError "avh4-lib")) + (hsPkgs."elm-format-markdown" or (errorHandler.buildDepError "elm-format-markdown")) + ]; + buildable = true; + }; + tests = { + "efl-tests" = { + depends = [ + (hsPkgs."aeson" or (errorHandler.buildDepError "aeson")) + (hsPkgs."ansi-terminal" or (errorHandler.buildDepError "ansi-terminal")) + (hsPkgs."ansi-wl-pprint" or (errorHandler.buildDepError "ansi-wl-pprint")) + (hsPkgs."array" or (errorHandler.buildDepError "array")) + (hsPkgs."base" or (errorHandler.buildDepError "base")) + (hsPkgs."bimap" or (errorHandler.buildDepError "bimap")) + (hsPkgs."binary" or (errorHandler.buildDepError "binary")) + (hsPkgs."bytestring" or (errorHandler.buildDepError "bytestring")) + (hsPkgs."containers" or (errorHandler.buildDepError "containers")) + (hsPkgs."directory" or (errorHandler.buildDepError "directory")) + (hsPkgs."filepath" or (errorHandler.buildDepError "filepath")) + (hsPkgs."ghc-prim" or (errorHandler.buildDepError "ghc-prim")) + (hsPkgs."mtl" or (errorHandler.buildDepError "mtl")) + (hsPkgs."optparse-applicative" or (errorHandler.buildDepError "optparse-applicative")) + (hsPkgs."process" or (errorHandler.buildDepError "process")) + (hsPkgs."relude" or (errorHandler.buildDepError "relude")) + (hsPkgs."text" or (errorHandler.buildDepError "text")) + (hsPkgs."avh4-lib" or (errorHandler.buildDepError "avh4-lib")) + (hsPkgs."elm-format-markdown" or (errorHandler.buildDepError "elm-format-markdown")) + (hsPkgs."split" or (errorHandler.buildDepError "split")) + (hsPkgs."tasty" or (errorHandler.buildDepError "tasty")) + (hsPkgs."tasty-hspec" or (errorHandler.buildDepError "tasty-hspec")) + (hsPkgs."tasty-hunit" or (errorHandler.buildDepError "tasty-hunit")) + (hsPkgs."elm-format-test-lib" or (errorHandler.buildDepError "elm-format-test-lib")) + ]; + build-tools = [ + (hsPkgs.buildPackages.tasty-discover.components.exes.tasty-discover or (pkgs.buildPackages.tasty-discover or (errorHandler.buildToolDepError "tasty-discover:tasty-discover"))) + ]; + buildable = true; + }; + }; + }; + } // rec { src = (pkgs.lib).mkDefault ../elm-format-lib; } diff --git a/.plan.nix/elm-format-markdown.nix b/.plan.nix/elm-format-markdown.nix new file mode 100644 index 000000000..5c4e3ff0d --- /dev/null +++ b/.plan.nix/elm-format-markdown.nix @@ -0,0 +1,37 @@ +{ system + , compiler + , flags + , pkgs + , hsPkgs + , pkgconfPkgs + , errorHandler + , config + , ... }: + { + flags = {}; + package = { + specVersion = "2.4"; + identifier = { name = "elm-format-markdown"; version = "0.0.0.1"; }; + license = "BSD-3-Clause"; + copyright = "See https://github.com/avh4/elm-format/blob/master/LICENSE"; + maintainer = "gruen0aermel@gmail.com"; + author = "Aaron VonderHaar"; + homepage = ""; + url = ""; + synopsis = "Markdown parsing for Elm documentation comments"; + description = ""; + buildType = "Simple"; + isLocal = true; + }; + components = { + "library" = { + depends = [ + (hsPkgs."base" or (errorHandler.buildDepError "base")) + (hsPkgs."containers" or (errorHandler.buildDepError "containers")) + (hsPkgs."mtl" or (errorHandler.buildDepError "mtl")) + (hsPkgs."text" or (errorHandler.buildDepError "text")) + ]; + buildable = true; + }; + }; + } // rec { src = (pkgs.lib).mkDefault ../elm-format-markdown; } diff --git a/.plan.nix/elm-format-test-lib.nix b/.plan.nix/elm-format-test-lib.nix new file mode 100644 index 000000000..d716a4e41 --- /dev/null +++ b/.plan.nix/elm-format-test-lib.nix @@ -0,0 +1,67 @@ +{ system + , compiler + , flags + , pkgs + , hsPkgs + , pkgconfPkgs + , errorHandler + , config + , ... }: + { + flags = {}; + package = { + specVersion = "2.4"; + identifier = { name = "elm-format-test-lib"; version = "0.0.0.1"; }; + license = "BSD-3-Clause"; + copyright = "See https://github.com/avh4/elm-format/blob/master/LICENSE"; + maintainer = "gruen0aermel@gmail.com"; + author = "Aaron VonderHaar"; + homepage = ""; + url = ""; + synopsis = "Test helpers used by elm-format-tests and elm-refactor-tests"; + description = ""; + buildType = "Simple"; + isLocal = true; + }; + components = { + "library" = { + depends = [ + (hsPkgs."base" or (errorHandler.buildDepError "base")) + (hsPkgs."containers" or (errorHandler.buildDepError "containers")) + (hsPkgs."filepath" or (errorHandler.buildDepError "filepath")) + (hsPkgs."hspec-core" or (errorHandler.buildDepError "hspec-core")) + (hsPkgs."hspec-golden" or (errorHandler.buildDepError "hspec-golden")) + (hsPkgs."mtl" or (errorHandler.buildDepError "mtl")) + (hsPkgs."split" or (errorHandler.buildDepError "split")) + (hsPkgs."tasty" or (errorHandler.buildDepError "tasty")) + (hsPkgs."tasty-hspec" or (errorHandler.buildDepError "tasty-hspec")) + (hsPkgs."tasty-hunit" or (errorHandler.buildDepError "tasty-hunit")) + (hsPkgs."text" or (errorHandler.buildDepError "text")) + (hsPkgs."avh4-lib" or (errorHandler.buildDepError "avh4-lib")) + ]; + buildable = true; + }; + tests = { + "elm-format-test-lib-tests" = { + depends = [ + (hsPkgs."base" or (errorHandler.buildDepError "base")) + (hsPkgs."containers" or (errorHandler.buildDepError "containers")) + (hsPkgs."filepath" or (errorHandler.buildDepError "filepath")) + (hsPkgs."hspec-core" or (errorHandler.buildDepError "hspec-core")) + (hsPkgs."hspec-golden" or (errorHandler.buildDepError "hspec-golden")) + (hsPkgs."mtl" or (errorHandler.buildDepError "mtl")) + (hsPkgs."split" or (errorHandler.buildDepError "split")) + (hsPkgs."tasty" or (errorHandler.buildDepError "tasty")) + (hsPkgs."tasty-hspec" or (errorHandler.buildDepError "tasty-hspec")) + (hsPkgs."tasty-hunit" or (errorHandler.buildDepError "tasty-hunit")) + (hsPkgs."text" or (errorHandler.buildDepError "text")) + (hsPkgs."avh4-lib" or (errorHandler.buildDepError "avh4-lib")) + ]; + build-tools = [ + (hsPkgs.buildPackages.tasty-discover.components.exes.tasty-discover or (pkgs.buildPackages.tasty-discover or (errorHandler.buildToolDepError "tasty-discover:tasty-discover"))) + ]; + buildable = true; + }; + }; + }; + } // rec { src = (pkgs.lib).mkDefault .././.././elm-format-test-lib; } \ No newline at end of file diff --git a/.plan.nix/elm-format.nix b/.plan.nix/elm-format.nix new file mode 100644 index 000000000..8e1eea5fd --- /dev/null +++ b/.plan.nix/elm-format.nix @@ -0,0 +1,72 @@ +{ system + , compiler + , flags + , pkgs + , hsPkgs + , pkgconfPkgs + , errorHandler + , config + , ... }: + { + flags = {}; + package = { + specVersion = "2.4"; + identifier = { name = "elm-format"; version = "0.8.5"; }; + license = "BSD-3-Clause"; + copyright = "See https://github.com/avh4/elm-format/blob/master/LICENSE"; + maintainer = "gruen0aermel@gmail.com"; + author = "Aaron VonderHaar"; + homepage = "https://elm-lang.org"; + url = ""; + synopsis = "A source code formatter for Elm"; + description = "A simple way to format your Elm code according to the official\nstyle guide."; + buildType = "Simple"; + isLocal = true; + }; + components = { + exes = { + "elm-format" = { + depends = [ + (hsPkgs."aeson" or (errorHandler.buildDepError "aeson")) + (hsPkgs."ansi-wl-pprint" or (errorHandler.buildDepError "ansi-wl-pprint")) + (hsPkgs."base" or (errorHandler.buildDepError "base")) + (hsPkgs."bytestring" or (errorHandler.buildDepError "bytestring")) + (hsPkgs."containers" or (errorHandler.buildDepError "containers")) + (hsPkgs."optparse-applicative" or (errorHandler.buildDepError "optparse-applicative")) + (hsPkgs."relude" or (errorHandler.buildDepError "relude")) + (hsPkgs."text" or (errorHandler.buildDepError "text")) + (hsPkgs."avh4-lib" or (errorHandler.buildDepError "avh4-lib")) + (hsPkgs."elm-format-lib" or (errorHandler.buildDepError "elm-format-lib")) + ]; + buildable = true; + }; + }; + tests = { + "elm-format-tests" = { + depends = [ + (hsPkgs."aeson" or (errorHandler.buildDepError "aeson")) + (hsPkgs."ansi-wl-pprint" or (errorHandler.buildDepError "ansi-wl-pprint")) + (hsPkgs."base" or (errorHandler.buildDepError "base")) + (hsPkgs."bytestring" or (errorHandler.buildDepError "bytestring")) + (hsPkgs."containers" or (errorHandler.buildDepError "containers")) + (hsPkgs."optparse-applicative" or (errorHandler.buildDepError "optparse-applicative")) + (hsPkgs."relude" or (errorHandler.buildDepError "relude")) + (hsPkgs."text" or (errorHandler.buildDepError "text")) + (hsPkgs."avh4-lib" or (errorHandler.buildDepError "avh4-lib")) + (hsPkgs."elm-format-lib" or (errorHandler.buildDepError "elm-format-lib")) + (hsPkgs."mtl" or (errorHandler.buildDepError "mtl")) + (hsPkgs."tasty" or (errorHandler.buildDepError "tasty")) + (hsPkgs."tasty-hspec" or (errorHandler.buildDepError "tasty-hspec")) + (hsPkgs."tasty-hunit" or (errorHandler.buildDepError "tasty-hunit")) + (hsPkgs."tasty-quickcheck" or (errorHandler.buildDepError "tasty-quickcheck")) + (hsPkgs."QuickCheck" or (errorHandler.buildDepError "QuickCheck")) + (hsPkgs."quickcheck-io" or (errorHandler.buildDepError "quickcheck-io")) + (hsPkgs."bimap" or (errorHandler.buildDepError "bimap")) + (hsPkgs."cmark" or (errorHandler.buildDepError "cmark")) + (hsPkgs."elm-format-test-lib" or (errorHandler.buildDepError "elm-format-test-lib")) + ]; + buildable = true; + }; + }; + }; + } // rec { src = (pkgs.lib).mkDefault ../.; } diff --git a/avh4-lib/LICENSE b/avh4-lib/LICENSE new file mode 100644 index 000000000..afffc9b91 --- /dev/null +++ b/avh4-lib/LICENSE @@ -0,0 +1,46 @@ +Copyright (c) 2015-2019, Aaron VonderHaar +Copyright (c) 2012-2015, Evan Czaplicki (Elm parser forked from elm-lang/elm-compiler) +Copyright (c) 2015, Martin Janiczek +Copyright (c) 2015, Noah Hall +Copyright (c) 2016, Marica Odagaki +Copyright (c) 2016, Max Goldstein +Copyright (c) 2016, Daniel Bachler +Copyright (c) 2016, Fedor Nezhivoi +Copyright (c) 2013, John MacFarlane (Markdown parser forked from jgm/cheapskate) +Copyright (c) 2017, Michael Maloney +Copyright (c) 1999-2000, Daan Leijen. (part of Text.Parsec.Token) +Copyright (c) 2007, Paolo Martini. (part of Text.Parsec.Token) +Copyright (c) 2018, Andreas Scharf +Copyright (c) 2018, Matthias Devlamynck +Copyright (c) 2018, Juliano Bortolozzo Solanho +Copyright (c) 2020, Flavio Corpa + + +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + + * Neither the name of the copyright holder nor the names of other + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/avh4-lib/avh4-lib.cabal b/avh4-lib/avh4-lib.cabal index ed6c388b1..e45217034 100644 --- a/avh4-lib/avh4-lib.cabal +++ b/avh4-lib/avh4-lib.cabal @@ -7,7 +7,7 @@ Synopsis: Common code for haskell projects License: BSD-3-Clause -License-file: ../LICENSE +License-file: LICENSE Author: Aaron VonderHaar Maintainer: gruen0aermel@gmail.com diff --git a/default.nix b/default.nix new file mode 100644 index 000000000..97ab8e8be --- /dev/null +++ b/default.nix @@ -0,0 +1,21 @@ +{ sources ? import ./nix/sources.nix { }, pkgs ? null }: + +let + haskell-nix = if pkgs == null then + let + haskellNix = import sources.haskellNix { }; + finalPkgs = + import haskellNix.sources.nixpkgs-unstable haskellNix.nixpkgsArgs; + in finalPkgs.haskell-nix + + else + let haskellNix = import sources.haskellNix { inherit pkgs; }; + in haskellNix.pkgs.haskell-nix; + + pkgSet = haskell-nix.mkCabalProjectPkgSet { + plan-pkgs = import ./pkgs.nix; + pkg-def-extras = [ ]; + modules = [ ]; + }; + +in pkgSet.config.hsPkgs diff --git a/elm-format-lib/LICENSE b/elm-format-lib/LICENSE new file mode 100644 index 000000000..afffc9b91 --- /dev/null +++ b/elm-format-lib/LICENSE @@ -0,0 +1,46 @@ +Copyright (c) 2015-2019, Aaron VonderHaar +Copyright (c) 2012-2015, Evan Czaplicki (Elm parser forked from elm-lang/elm-compiler) +Copyright (c) 2015, Martin Janiczek +Copyright (c) 2015, Noah Hall +Copyright (c) 2016, Marica Odagaki +Copyright (c) 2016, Max Goldstein +Copyright (c) 2016, Daniel Bachler +Copyright (c) 2016, Fedor Nezhivoi +Copyright (c) 2013, John MacFarlane (Markdown parser forked from jgm/cheapskate) +Copyright (c) 2017, Michael Maloney +Copyright (c) 1999-2000, Daan Leijen. (part of Text.Parsec.Token) +Copyright (c) 2007, Paolo Martini. (part of Text.Parsec.Token) +Copyright (c) 2018, Andreas Scharf +Copyright (c) 2018, Matthias Devlamynck +Copyright (c) 2018, Juliano Bortolozzo Solanho +Copyright (c) 2020, Flavio Corpa + + +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + + * Neither the name of the copyright holder nor the names of other + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/elm-format-lib/elm-format-lib.cabal b/elm-format-lib/elm-format-lib.cabal index 2be21921c..a3aa96241 100644 --- a/elm-format-lib/elm-format-lib.cabal +++ b/elm-format-lib/elm-format-lib.cabal @@ -7,7 +7,7 @@ Synopsis: Common code used by elm-format and elm-refactor License: BSD-3-Clause -License-file: ../LICENSE +License-file: LICENSE Author: Aaron VonderHaar Maintainer: gruen0aermel@gmail.com diff --git a/elm-format-test-lib/LICENSE b/elm-format-test-lib/LICENSE new file mode 100644 index 000000000..afffc9b91 --- /dev/null +++ b/elm-format-test-lib/LICENSE @@ -0,0 +1,46 @@ +Copyright (c) 2015-2019, Aaron VonderHaar +Copyright (c) 2012-2015, Evan Czaplicki (Elm parser forked from elm-lang/elm-compiler) +Copyright (c) 2015, Martin Janiczek +Copyright (c) 2015, Noah Hall +Copyright (c) 2016, Marica Odagaki +Copyright (c) 2016, Max Goldstein +Copyright (c) 2016, Daniel Bachler +Copyright (c) 2016, Fedor Nezhivoi +Copyright (c) 2013, John MacFarlane (Markdown parser forked from jgm/cheapskate) +Copyright (c) 2017, Michael Maloney +Copyright (c) 1999-2000, Daan Leijen. (part of Text.Parsec.Token) +Copyright (c) 2007, Paolo Martini. (part of Text.Parsec.Token) +Copyright (c) 2018, Andreas Scharf +Copyright (c) 2018, Matthias Devlamynck +Copyright (c) 2018, Juliano Bortolozzo Solanho +Copyright (c) 2020, Flavio Corpa + + +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + + * Neither the name of the copyright holder nor the names of other + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/elm-format-test-lib/elm-format-test-lib.cabal b/elm-format-test-lib/elm-format-test-lib.cabal index 8a3c31eb2..15a0ea095 100644 --- a/elm-format-test-lib/elm-format-test-lib.cabal +++ b/elm-format-test-lib/elm-format-test-lib.cabal @@ -7,7 +7,7 @@ Synopsis: Test helpers used by elm-format-tests and elm-refactor-tests License: BSD-3-Clause -License-file: ../LICENSE +License-file: LICENSE Author: Aaron VonderHaar Maintainer: gruen0aermel@gmail.com diff --git a/nix/sources.json b/nix/sources.json index 92664088e..efb0e573e 100644 --- a/nix/sources.json +++ b/nix/sources.json @@ -1,4 +1,16 @@ { + "haskellNix": { + "branch": "master", + "description": "Alternative Haskell Infrastructure for Nixpkgs", + "homepage": "https://input-output-hk.github.io/haskell.nix", + "owner": "input-output-hk", + "repo": "haskell.nix", + "rev": "b87bc95b041e322ab00e136bb34ac526839536fc", + "sha256": "1c7rj110anz69110mygx5xr9g5rx93xwgn9yx1ak5755i9hpxj6p", + "type": "tarball", + "url": "https://github.com/input-output-hk/haskell.nix/archive/b87bc95b041e322ab00e136bb34ac526839536fc.tar.gz", + "url_template": "https://github.com///archive/.tar.gz" + }, "niv": { "branch": "master", "description": "Easy dependency management for Nix projects", diff --git a/nix/sources.nix b/nix/sources.nix index 1938409dd..feb353843 100644 --- a/nix/sources.nix +++ b/nix/sources.nix @@ -31,8 +31,10 @@ let if spec ? branch then "refs/heads/${spec.branch}" else if spec ? tag then "refs/tags/${spec.tag}" else abort "In git source '${name}': Please specify `ref`, `tag` or `branch`!"; + submodules = if spec ? submodules then spec.submodules else false; in - builtins.fetchGit { url = spec.repo; inherit (spec) rev; inherit ref; }; + builtins.fetchGit { url = spec.repo; inherit (spec) rev; inherit ref; } + // (if builtins.compareVersions builtins.nixVersion "2.4" >= 0 then { inherit submodules; } else { }); fetch_local = spec: spec.path; diff --git a/pkgs.nix b/pkgs.nix new file mode 100644 index 000000000..ea75476f5 --- /dev/null +++ b/pkgs.nix @@ -0,0 +1,289 @@ +{ + pkgs = hackage: + { + packages = { + "wcwidth".revision = (((hackage."wcwidth")."0.0.2").revisions).default; + "wcwidth".flags.split-base = true; + "wcwidth".flags.cli = false; + "tasty-smallcheck".revision = (((hackage."tasty-smallcheck")."0.8.2").revisions).default; + "tf-random".revision = (((hackage."tf-random")."0.5").revisions).default; + "pretty".revision = (((hackage."pretty")."1.1.3.6").revisions).default; + "unordered-containers".revision = (((hackage."unordered-containers")."0.2.16.0").revisions).default; + "unordered-containers".flags.debug = false; + "integer-logarithms".revision = (((hackage."integer-logarithms")."1.0.3.1").revisions).default; + "HUnit".revision = (((hackage."HUnit")."1.6.2.0").revisions).default; + "dlist".revision = (((hackage."dlist")."1.0").revisions).default; + "text".revision = (((hackage."text")."1.2.5.0").revisions).default; + "text".flags.developer = false; + "array".revision = (((hackage."array")."0.5.4.0").revisions).default; + "vector".revision = (((hackage."vector")."0.12.3.1").revisions).default; + "comonad".revision = (((hackage."comonad")."5.0.8").revisions).default; + "comonad".flags.containers = true; + "comonad".flags.distributive = true; + "comonad".flags.indexed-traversable = true; + "base-compat".revision = (((hackage."base-compat")."0.12.1").revisions).default; + "contravariant".revision = (((hackage."contravariant")."1.5.5").revisions).default; + "base-compat-batteries".revision = (((hackage."base-compat-batteries")."0.12.1").revisions).default; + "tasty-quickcheck".revision = (((hackage."tasty-quickcheck")."0.10.2").revisions).default; + "assoc".revision = (((hackage."assoc")."1.0.2").revisions).default; + "data-fix".revision = (((hackage."data-fix")."0.3.2").revisions).default; + "quickcheck-io".revision = (((hackage."quickcheck-io")."0.2.0").revisions).default; + "smallcheck".revision = (((hackage."smallcheck")."1.2.1").revisions).default; + "tasty".revision = (((hackage."tasty")."1.4.2.1").revisions).default; + "tasty".flags.clock = true; + "tasty".flags.unix = true; + "mtl".revision = (((hackage."mtl")."2.2.2").revisions).default; + "OneTuple".revision = (((hackage."OneTuple")."0.3.1").revisions).default; + "bytestring".revision = (((hackage."bytestring")."0.11.1.0").revisions).default; + "bytestring".flags.integer-simple = false; + "hspec-discover".revision = (((hackage."hspec-discover")."2.7.10").revisions).default; + "strict".revision = (((hackage."strict")."0.4.0.1").revisions).default; + "strict".flags.assoc = true; + "aeson".revision = (((hackage."aeson")."2.0.2.0").revisions).default; + "aeson".flags.bytestring-builder = false; + "aeson".flags.ordered-keymap = true; + "aeson".flags.cffi = false; + "tagged".revision = (((hackage."tagged")."0.8.6.1").revisions).default; + "splitmix".revision = (((hackage."splitmix")."0.1.0.4").revisions).default; + "attoparsec".revision = (((hackage."attoparsec")."0.14.3").revisions).default; + "attoparsec".flags.developer = false; + "filepath".revision = (((hackage."filepath")."1.4.2.1").revisions).default; + "stm".revision = (((hackage."stm")."2.5.0.0").revisions).default; + "tasty-hspec".revision = (((hackage."tasty-hspec")."1.1.6").revisions).default; + "call-stack".revision = (((hackage."call-stack")."0.4.0").revisions).default; + "hspec-golden".revision = (((hackage."hspec-golden")."0.1.0.3").revisions).default; + "ghc-prim".revision = (((hackage."ghc-prim")."0.7.0").revisions).default; + "ghc-boot-th".revision = (((hackage."ghc-boot-th")."9.0.1").revisions).default; + "indexed-traversable".revision = (((hackage."indexed-traversable")."0.1.2").revisions).default; + "distributive".revision = (((hackage."distributive")."0.6.2.1").revisions).default; + "text-short".revision = (((hackage."text-short")."0.1.4").revisions).default; + "text-short".flags.asserts = false; + "bifunctors".revision = (((hackage."bifunctors")."5.5.11").revisions).default; + "bifunctors".flags.tagged = true; + "bifunctors".flags.semigroups = true; + "base".revision = (((hackage."base")."4.15.0.0").revisions).default; + "time".revision = (((hackage."time")."1.9.3").revisions).default; + "random".revision = (((hackage."random")."1.2.1").revisions).default; + "process".revision = (((hackage."process")."1.6.13.2").revisions).default; + "unbounded-delays".revision = (((hackage."unbounded-delays")."0.1.1.1").revisions).default; + "th-abstraction".revision = (((hackage."th-abstraction")."0.4.3.0").revisions).default; + "semigroupoids".revision = (((hackage."semigroupoids")."5.3.6").revisions).default; + "semigroupoids".flags.tagged = true; + "semigroupoids".flags.containers = true; + "semigroupoids".flags.distributive = true; + "semigroupoids".flags.unordered-containers = true; + "semigroupoids".flags.contravariant = true; + "semigroupoids".flags.comonad = true; + "bimap".revision = (((hackage."bimap")."0.4.0").revisions).default; + "logict".revision = (((hackage."logict")."0.7.0.3").revisions).default; + "these".revision = (((hackage."these")."1.1.1.1").revisions).default; + "these".flags.assoc = true; + "split".revision = (((hackage."split")."0.2.3.4").revisions).default; + "base-orphans".revision = (((hackage."base-orphans")."0.8.6").revisions).default; + "ghc-bignum".revision = (((hackage."ghc-bignum")."1.0").revisions).default; + "hspec-core".revision = (((hackage."hspec-core")."2.7.10").revisions).default; + "time-compat".revision = (((hackage."time-compat")."1.9.6.1").revisions).default; + "time-compat".flags.old-locale = false; + "setenv".revision = (((hackage."setenv")."0.1.1.3").revisions).default; + "hspec".revision = (((hackage."hspec")."2.7.10").revisions).default; + "primitive".revision = (((hackage."primitive")."0.7.3.0").revisions).default; + "directory".revision = (((hackage."directory")."1.3.7.0").revisions).default; + "exceptions".revision = (((hackage."exceptions")."0.10.4").revisions).default; + "optparse-applicative".revision = (((hackage."optparse-applicative")."0.16.1.0").revisions).default; + "optparse-applicative".flags.process = true; + "clock".revision = (((hackage."clock")."0.8.2").revisions).default; + "hspec-expectations".revision = (((hackage."hspec-expectations")."0.8.2").revisions).default; + "rts".revision = (((hackage."rts")."1.0").revisions).default; + "semialign".revision = (((hackage."semialign")."1.2.0.1").revisions).default; + "semialign".flags.semigroupoids = true; + "transformers".revision = (((hackage."transformers")."0.5.6.2").revisions).default; + "template-haskell".revision = (((hackage."template-haskell")."2.17.0.0").revisions).default; + "witherable".revision = (((hackage."witherable")."0.4.2").revisions).default; + "tasty-hunit".revision = (((hackage."tasty-hunit")."0.10.0.3").revisions).default; + "deepseq".revision = (((hackage."deepseq")."1.4.5.0").revisions).default; + "unix".revision = (((hackage."unix")."2.7.2.2").revisions).default; + "ansi-terminal".revision = (((hackage."ansi-terminal")."0.11").revisions).default; + "hashable".revision = (((hackage."hashable")."1.3.5.0").revisions).default; + "hashable".flags.random-initial-seed = false; + "hashable".flags.integer-gmp = true; + "transformers-compat".revision = (((hackage."transformers-compat")."0.7.1").revisions).default; + "indexed-traversable-instances".revision = (((hackage."indexed-traversable-instances")."0.1.1").revisions).default; + "relude".revision = (((hackage."relude")."1.0.0.1").revisions).default; + "scientific".revision = (((hackage."scientific")."0.3.7.0").revisions).default; + "scientific".flags.bytestring-builder = false; + "scientific".flags.integer-simple = false; + "binary".revision = (((hackage."binary")."0.8.9.0").revisions).default; + "ansi-wl-pprint".revision = (((hackage."ansi-wl-pprint")."0.6.9").revisions).default; + "QuickCheck".revision = (((hackage."QuickCheck")."2.14.2").revisions).default; + "QuickCheck".flags.old-random = false; + "QuickCheck".flags.templatehaskell = true; + "uuid-types".revision = (((hackage."uuid-types")."1.0.5").revisions).default; + "containers".revision = (((hackage."containers")."0.6.5.1").revisions).default; + "StateVar".revision = (((hackage."StateVar")."1.2.2").revisions).default; + "colour".revision = (((hackage."colour")."2.3.6").revisions).default; + }; + compiler = { + version = "9.0.1"; + nix-name = "ghc901"; + packages = { + "pretty" = "1.1.3.6"; + "integer-logarithms" = "1.0.3.1"; + "HUnit" = "1.6.2.0"; + "dlist" = "1.0"; + "array" = "0.5.4.0"; + "vector" = "0.12.3.1"; + "contravariant" = "1.5.5"; + "smallcheck" = "1.2.1"; + "mtl" = "2.2.2"; + "OneTuple" = "0.3.1"; + "tagged" = "0.8.6.1"; + "splitmix" = "0.1.0.4"; + "filepath" = "1.4.2.1"; + "stm" = "2.5.0.0"; + "call-stack" = "0.4.0"; + "ghc-prim" = "0.7.0"; + "ghc-boot-th" = "9.0.1"; + "distributive" = "0.6.2.1"; + "base" = "4.15.0.0"; + "time" = "1.9.3"; + "unbounded-delays" = "0.1.1.1"; + "logict" = "0.7.0.3"; + "split" = "0.2.3.4"; + "base-orphans" = "0.8.6"; + "ghc-bignum" = "1.0"; + "primitive" = "0.7.3.0"; + "exceptions" = "0.10.4"; + "clock" = "0.8.2"; + "hspec-expectations" = "0.8.2"; + "rts" = "1.0"; + "transformers" = "0.5.6.2"; + "template-haskell" = "2.17.0.0"; + "deepseq" = "1.4.5.0"; + "ansi-terminal" = "0.11"; + "transformers-compat" = "0.7.1"; + "ansi-wl-pprint" = "0.6.9"; + "StateVar" = "1.2.2"; + "colour" = "2.3.6"; + }; + }; + }; + extras = hackage: + { + packages = { + elm-format-markdown = ./.plan.nix/elm-format-markdown.nix; + elm-format-test-lib = ./.plan.nix/elm-format-test-lib.nix; + elm-format-lib = ./.plan.nix/elm-format-lib.nix; + avh4-lib = ./.plan.nix/avh4-lib.nix; + elm-format = ./.plan.nix/elm-format.nix; + }; + }; + modules = [ + ({ lib, ... }: + { + packages = { + "elm-format-markdown" = { flags = {}; }; + "elm-format-test-lib" = { flags = {}; }; + "elm-format-lib" = { flags = {}; }; + "avh4-lib" = { flags = {}; }; + "elm-format" = { flags = {}; }; + }; + }) + ({ lib, ... }: + { + packages = { + "hspec-core".components.library.planned = lib.mkOverride 900 true; + "ansi-terminal".components.library.planned = lib.mkOverride 900 true; + "tasty-quickcheck".components.library.planned = lib.mkOverride 900 true; + "base-orphans".components.library.planned = lib.mkOverride 900 true; + "bimap".components.library.planned = lib.mkOverride 900 true; + "these".components.library.planned = lib.mkOverride 900 true; + "filepath".components.library.planned = lib.mkOverride 900 true; + "distributive".components.library.planned = lib.mkOverride 900 true; + "pretty".components.library.planned = lib.mkOverride 900 true; + "hspec-golden".components.exes."hgold".planned = lib.mkOverride 900 true; + "quickcheck-io".components.library.planned = lib.mkOverride 900 true; + "bytestring".components.library.planned = lib.mkOverride 900 true; + "strict".components.library.planned = lib.mkOverride 900 true; + "comonad".components.library.planned = lib.mkOverride 900 true; + "data-fix".components.library.planned = lib.mkOverride 900 true; + "exceptions".components.library.planned = lib.mkOverride 900 true; + "call-stack".components.library.planned = lib.mkOverride 900 true; + "tasty-smallcheck".components.library.planned = lib.mkOverride 900 true; + "dlist".components.library.planned = lib.mkOverride 900 true; + "hspec-golden".components.library.planned = lib.mkOverride 900 true; + "ghc-prim".components.library.planned = lib.mkOverride 900 true; + "HUnit".components.library.planned = lib.mkOverride 900 true; + "elm-format-test-lib".components.library.planned = lib.mkOverride 900 true; + "array".components.library.planned = lib.mkOverride 900 true; + "binary".components.library.planned = lib.mkOverride 900 true; + "ghc-boot-th".components.library.planned = lib.mkOverride 900 true; + "scientific".components.library.planned = lib.mkOverride 900 true; + "relude".components.library.planned = lib.mkOverride 900 true; + "hspec-discover".components.exes."hspec-discover".planned = lib.mkOverride 900 true; + "splitmix".components.library.planned = lib.mkOverride 900 true; + "rts".components.library.planned = lib.mkOverride 900 true; + "tagged".components.library.planned = lib.mkOverride 900 true; + "unix".components.library.planned = lib.mkOverride 900 true; + "vector".components.library.planned = lib.mkOverride 900 true; + "indexed-traversable-instances".components.library.planned = lib.mkOverride 900 true; + "elm-format-markdown".components.library.planned = lib.mkOverride 900 true; + "directory".components.library.planned = lib.mkOverride 900 true; + "time".components.library.planned = lib.mkOverride 900 true; + "StateVar".components.library.planned = lib.mkOverride 900 true; + "smallcheck".components.library.planned = lib.mkOverride 900 true; + "setenv".components.library.planned = lib.mkOverride 900 true; + "ghc-bignum".components.library.planned = lib.mkOverride 900 true; + "indexed-traversable".components.library.planned = lib.mkOverride 900 true; + "base-compat-batteries".components.library.planned = lib.mkOverride 900 true; + "tasty-hunit".components.library.planned = lib.mkOverride 900 true; + "split".components.library.planned = lib.mkOverride 900 true; + "contravariant".components.library.planned = lib.mkOverride 900 true; + "hspec".components.library.planned = lib.mkOverride 900 true; + "text-short".components.library.planned = lib.mkOverride 900 true; + "assoc".components.library.planned = lib.mkOverride 900 true; + "process".components.library.planned = lib.mkOverride 900 true; + "hspec-discover".components.library.planned = lib.mkOverride 900 true; + "tf-random".components.library.planned = lib.mkOverride 900 true; + "clock".components.library.planned = lib.mkOverride 900 true; + "template-haskell".components.library.planned = lib.mkOverride 900 true; + "stm".components.library.planned = lib.mkOverride 900 true; + "witherable".components.library.planned = lib.mkOverride 900 true; + "elm-format-lib".components.library.planned = lib.mkOverride 900 true; + "semialign".components.library.planned = lib.mkOverride 900 true; + "logict".components.library.planned = lib.mkOverride 900 true; + "wcwidth".components.library.planned = lib.mkOverride 900 true; + "QuickCheck".components.library.planned = lib.mkOverride 900 true; + "ansi-wl-pprint".components.library.planned = lib.mkOverride 900 true; + "uuid-types".components.library.planned = lib.mkOverride 900 true; + "semigroupoids".components.library.planned = lib.mkOverride 900 true; + "attoparsec".components.library.planned = lib.mkOverride 900 true; + "elm-format".components.exes."elm-format".planned = lib.mkOverride 900 true; + "mtl".components.library.planned = lib.mkOverride 900 true; + "unbounded-delays".components.library.planned = lib.mkOverride 900 true; + "th-abstraction".components.library.planned = lib.mkOverride 900 true; + "transformers".components.library.planned = lib.mkOverride 900 true; + "OneTuple".components.library.planned = lib.mkOverride 900 true; + "deepseq".components.library.planned = lib.mkOverride 900 true; + "primitive".components.library.planned = lib.mkOverride 900 true; + "text".components.library.planned = lib.mkOverride 900 true; + "avh4-lib".components.library.planned = lib.mkOverride 900 true; + "bifunctors".components.library.planned = lib.mkOverride 900 true; + "unordered-containers".components.library.planned = lib.mkOverride 900 true; + "random".components.library.planned = lib.mkOverride 900 true; + "base".components.library.planned = lib.mkOverride 900 true; + "integer-logarithms".components.library.planned = lib.mkOverride 900 true; + "tasty".components.library.planned = lib.mkOverride 900 true; + "transformers-compat".components.library.planned = lib.mkOverride 900 true; + "colour".components.library.planned = lib.mkOverride 900 true; + "containers".components.library.planned = lib.mkOverride 900 true; + "time-compat".components.library.planned = lib.mkOverride 900 true; + "optparse-applicative".components.library.planned = lib.mkOverride 900 true; + "aeson".components.library.planned = lib.mkOverride 900 true; + "hspec-expectations".components.library.planned = lib.mkOverride 900 true; + "base-compat".components.library.planned = lib.mkOverride 900 true; + "hashable".components.library.planned = lib.mkOverride 900 true; + "tasty-hspec".components.library.planned = lib.mkOverride 900 true; + }; + }) + ]; + } \ No newline at end of file diff --git a/release.nix b/release.nix new file mode 100644 index 000000000..f1958245d --- /dev/null +++ b/release.nix @@ -0,0 +1,27 @@ +{ sources ? import ./nix/sources.nix { } }: +let + project = import ./default.nix; + pkgsNative = import sources.nixpkgs { }; + + pkgsLinux = pkgsNative; + pkgsMac = import sources.nixpkgs { + crossSystem = pkgsNative.lib.systems.examples.x86_64-darwin; + }; + pkgsWin = import sources.nixpkgs { + crossSystem = pkgsNative.lib.systems.examples.mingw32; + }; + + pkgsTest = import sources.nixpkgs { + crossSystem = pkgsNative.lib.systems.examples.aarch64-multiplatform; + }; + + linux = project { pkgs = pkgsLinux; }; + mac = project { pkgs = pkgsMac; }; + win = project { pkgs = pkgsWin; }; + test = project { pkgs = pkgsTest; }; +in { + elm-format-linux = linux.elm-format.components.exes.elm-format; + #elm-format-mac = mac.elm-format.components.exes.elm-format; + #elm-format-win = win.elm-format.components.exes.elm-format; + elm-format-test = test.elm-format.components.exes.elm-format; +} diff --git a/shell.nix b/shell.nix index 6ea788c34..bd583a4cd 100644 --- a/shell.nix +++ b/shell.nix @@ -1,13 +1,16 @@ { sources ? import nix/sources.nix, pkgs ? import sources.nixpkgs { } }: let + project = import ./default.nix { sources = sources; }; niv = import sources.niv { }; + haskellNix = import sources.haskellNix { }; +in project.shellFor { + # packages = p: [ ]; + + tools = { cabal = "latest"; }; + #exactDeps = true; - haskellPackages = pkgs.haskell.packages.ghc901; -in haskellPackages.shellFor { - packages = p: [ ]; buildInputs = with pkgs; [ # Tools required to build elm-format - cabal-install git python3 jq @@ -17,5 +20,6 @@ in haskellPackages.shellFor { cabal2nix niv.niv nixfmt + haskellNix.pkgs.haskell-nix.nix-tools.ghc901 ]; }