diff --git a/default.nix b/default.nix new file mode 100644 index 0000000..817aa96 --- /dev/null +++ b/default.nix @@ -0,0 +1,60 @@ +{ pkgs ? import { }, ... }: + + let + lib = pkgs.lib; + haskellPkg = pkgName: pkgs.haskellPackages."${pkgName}"; + + mkDerivation = haskellPkg "mkDerivation"; + aeson = haskellPkg "aeson"; + ansi-terminal = haskellPkg "ansi-terminal"; + ansi-wl-pprint = haskellPkg "ansi-wl-pprint_0_6_9"; + async = haskellPkg "async"; + base = haskellPkg "base_4_21_0_0"; + boxes = haskellPkg "boxes"; + bytestring = haskellPkg "bytestring_0_12_2_0"; + containers = haskellPkg "containers_0_7"; + directory = haskellPkg "directory_1_3_9_0"; + filepath = haskellPkg "filepath_1_5_4_0"; + formatting = haskellPkg "formatting"; + Glob = haskellPkg "Glob"; + hspec = haskellPkg "hspec"; + hspec-core = haskellPkg "hspec-core"; + HUnit = haskellPkg "HUnit"; + language-javascript = haskellPkg "language-javascript"; + mtl = haskellPkg "mtl_2_3_1"; + optparse-applicative = haskellPkg "optparse-applicative"; + process = haskellPkg "process_1_6_25_0"; + purescript = haskellPkg "purescript"; + QuickCheck = haskellPkg "QuickCheck"; + safe = haskellPkg "safe"; + text = haskellPkg "text_2_1_2"; + transformers = haskellPkg "transformers_0_6_1_2"; + unordered-containers = haskellPkg "unordered-containers"; + utf8-string = haskellPkg "utf8-string"; + in mkDerivation rec { + pname = "zephyr"; + version = "5.3"; + src = ./.; + isLibrary = true; + isExecutable = true; + libraryHaskellDepends = [ + aeson ansi-terminal base boxes containers formatting language-javascript mtl purescript safe text unordered-containers + ]; + executableHaskellDepends = [ + aeson ansi-terminal ansi-wl-pprint async base bytestring containers + directory filepath formatting Glob language-javascript mtl + optparse-applicative purescript text transformers utf8-string + ]; + testHaskellDepends = [ + aeson base containers directory hspec hspec-core HUnit + language-javascript mtl optparse-applicative process purescript + QuickCheck text transformers + ]; + testToolDepends = [ purescript ]; + license = lib.licenses.mpl20; + description = "Zephyr, tree-shaking for the PureScript language"; + homepage = "https://github.com/MaybeJustJames/zephyr"; + maintainers = with pkgs.lib.maintainers; [ malik ]; + hydraPlatforms = lib.platforms.none; + mainProgram = pname; + } diff --git a/flake.lock b/flake.lock new file mode 100644 index 0000000..7e7f869 --- /dev/null +++ b/flake.lock @@ -0,0 +1,61 @@ +{ + "nodes": { + "flake-utils": { + "inputs": { + "systems": "systems" + }, + "locked": { + "lastModified": 1731533236, + "narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "11707dc2f618dd54ca8739b309ec4fc024de578b", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "nixpkgs": { + "locked": { + "lastModified": 1738142207, + "narHash": "sha256-NGqpVVxNAHwIicXpgaVqJEJWeyqzoQJ9oc8lnK9+WC4=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "9d3ae807ebd2981d593cddd0080856873139aa40", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "root": { + "inputs": { + "flake-utils": "flake-utils", + "nixpkgs": "nixpkgs" + } + }, + "systems": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "type": "github" + } + } + }, + "root": "root", + "version": 7 +} diff --git a/flake.nix b/flake.nix new file mode 100644 index 0000000..6b013a5 --- /dev/null +++ b/flake.nix @@ -0,0 +1,19 @@ +{ + description = "Flake utils demo"; + + inputs = { + nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable"; + flake-utils.url = "github:numtide/flake-utils"; + }; + + outputs = { self, nixpkgs, flake-utils }: + flake-utils.lib.eachDefaultSystem (system: + let pkgs = nixpkgs.legacyPackages.${system}; in + { + packages = rec { + default = zephyr; + zephyr = import ./default.nix { inherit pkgs; }; + }; + } + ); +} diff --git a/zephyr.cabal b/zephyr.cabal index 7156acb..4795c78 100644 --- a/zephyr.cabal +++ b/zephyr.cabal @@ -65,18 +65,18 @@ library , Language.PureScript.DCE.Eval , Language.PureScript.DCE.Utils build-depends: - aeson >=2.0.3.0 && <2.1 - , ansi-terminal >=0.11 && <0.12 - , base >=4.16.2 && <4.17 + aeson >=2.1.2.1 && <2.2 + , ansi-terminal >=1.0.2 && <1.1 + , base >=4.21.0.0 && <4.22 , boxes >=0.1.5 && <0.2 - , containers >=0.6.5.1 && <0.7 + , containers >=0.7 && <0.8 , formatting - , language-javascript ==0.7.0.0 - , mtl >=2.2.2 && <2.3 - , purescript >=0.15.4 && <0.16 - , safe >=0.3.19 && <0.4 - , text >=1.2.5.0 && <1.3 - , unordered-containers == 0.2.19.1 + , language-javascript ==0.7.1.0 + , mtl >=2.3.1 && <2.4 + , purescript >=0.15.15 && <0.16 + , safe >=0.3.21 && <0.4 + , text >=2.1.2 && <2.2 + , unordered-containers == 0.2.20 default-language: Haskell2010 executable zephyr @@ -106,23 +106,23 @@ executable zephyr -rtsopts -with-rtsopts -N2 build-depends: - aeson >=2.0.3.0 && <2.1 + aeson >=2.1.2.1 && <2.2 , async - , ansi-terminal >=0.11 && <0.12 + , ansi-terminal >=1.0.2 && <1.1 , ansi-wl-pprint >=0.6.9 && <0.7 - , base >=4.16.2 && <4.17 - , bytestring >=0.11.3.1 && <0.12 - , containers >=0.6.5.1 && <0.7 - , directory >=1.3.6.2 && <1.4 - , filepath >=1.4.2.2 && <1.5 + , base >=4.21.0.0 && <4.22 + , bytestring >=0.12.2.0 && <0.13 + , containers >=0.7 && <0.8 + , directory >=1.3.9.0 && <1.4 + , filepath >=1.5.4.0 && <1.6 , formatting , Glob >=0.10.2 && <0.11 - , language-javascript ==0.7.0.0 - , mtl >=2.2.2 && <2.3 - , optparse-applicative >=0.17.0.0 && <0.18 - , purescript >=0.15.4 && <0.16 - , text >=1.2.5.0 && <1.3 - , transformers >=0.5.6.2 && <0.6 + , language-javascript ==0.7.1.0 + , mtl >=2.3.1 && <2.4 + , optparse-applicative >=0.18.1.0 && <0.19 + , purescript >=0.15.15 && <0.16 + , text >=2.1.2 && <2.2 + , transformers >=0.6.1.2 && <0.7 , utf8-string >=1.0.2 && <1.1 , zephyr >=0.5 && <0.6 default-language: Haskell2010 @@ -147,21 +147,21 @@ test-suite zephyr-test , Test.Karma , Test.Utils build-depends: - aeson >=2.0.3.0 && <2.1 - , base >=4.16.2 && <4.17 - , containers >=0.6.5.1 && <0.7 - , directory >=1.3.6.2 && <1.4 + aeson >=2.1.2.1 && <2.2 + , base >=4.21.0.0 && <4.22 + , containers >=0.7 && <0.8 + , directory >=1.3.9.0 && <1.4 , hspec - , hspec-core <2.9.3 + , hspec-core , HUnit - , language-javascript ==0.7.0.0 - , mtl >=2.2.2 && <2.3 - , optparse-applicative ==0.17.0.0 - , process ==1.6.13.1 - , purescript >=0.15.4 && <0.16 - , QuickCheck >=2.12.1 - , text >=1.2.5.0 && <1.3 - , transformers >=0.5.6.2 && <0.6 + , language-javascript ==0.7.1.0 + , mtl >=2.3.1 && <2.4 + , optparse-applicative ==0.18.1.0 + , process ==1.6.25.0 + , purescript >=0.15.15 && <0.16 + , QuickCheck >=2.14.3 + , text >=2.1.2 && <2.2 + , transformers >=0.6.1.2 && <0.7 , zephyr >=0.5 && <0.6 build-tool-depends: purescript:purs