diff --git a/Bindings/Haskell/flake.nix b/Bindings/Haskell/flake.nix index 6bfd4f0..97e725a 100644 --- a/Bindings/Haskell/flake.nix +++ b/Bindings/Haskell/flake.nix @@ -11,17 +11,17 @@ pkgs = nixpkgs.legacyPackages.${system}; in { + packages.default = pkgs.haskellPackages.callPackage ./project.nix {}; devShell = pkgs.mkShell { buildInputs = with pkgs; [ cabal2nix cabal-install - haskell.compiler.ghc98 + ghc zlib.dev p2prc-main.packages.${system}.default ]; - }; } ); diff --git a/flake.nix b/flake.nix index 6c6bb93..8529205 100644 --- a/flake.nix +++ b/flake.nix @@ -66,12 +66,29 @@ ]; }; + packages.initHaskellProject = pkgs.writeShellApplication { + name = "initHaskellProject"; + runtimeInputs = with pkgs; [ + # ghc + cabal2nix + cabal-install + ]; + text = + '' + cabal init -mnq + + # sed -i 's/base.*$/base, p2prc/' haskell.cabal + cabal2nix . > ./cabal.nix; + ''; + }; + + } )) // { overlays = { - # TODO: merge all overlays into a single one - default = coreOverlay; + default = [coreOverlay bindingsOverlay]; + core = coreOverlay; bindings = bindingsOverlay; }; templates.haskell = { diff --git a/nix/templates/haskell/flake.nix b/nix/templates/haskell/flake.nix index 127e30e..573adbc 100644 --- a/nix/templates/haskell/flake.nix +++ b/nix/templates/haskell/flake.nix @@ -24,80 +24,31 @@ inherit system; # TODO: p2prc overlays into a single list - overlays = [ - p2prc-flake.overlays.default - p2prc-flake.overlays.bindings - ]; - }; - - - # TODO: Add this to a p2prc-nix lib - initProject = pkgs.writeShellApplication { - name = "initProject"; - runtimeInputs = with pkgs; [ - ghc - cabal2nix - cabal-install - ]; - text = - let - - # TODO: finish script -# getMainFileContent = appName: ''"\ -# module Main where\ -# \ -# import P2PRC\ -# ( runP2PRC\ -# , MapPortRequest(MkMapPortRequest)\ -# )\ -# \ -# main :: IO ()\ -# main =\ -# runP2PRC\ -# ( MkMapPortRequest 8080 \"${appName}.akilan.io\"\ -# )\ -# "''; - # FOLDER_NAME=$(echo */ | sed 's/ /\n/' | head -n 1) - # cat ${getMainFileContent "file_name"} > "$FOLDER_NAME"/Main.hs - - in - '' - echo "RUNNING" - cabal init - - sed -i 's/base.*$/base, p2prc/' haskell.cabal - - cabal2nix . > ./cabal.nix; - - cabal run - ''; + overlays = p2prc-flake.overlays.default; }; in { packages = { - # default = pkgs.haskellPackages.callPackage ./cabal.nix { }; - inherit initProject; + default = pkgs.haskellPackages.callPackage ./cabal.nix { }; }; devShells.default = pkgs.haskellPackages.shellFor { - packages = _: []; - # packages = p: [ - # (p.callPackage ./cabal.nix { }) - # ]; + packages = p: [ + (p.callPackage ./cabal.nix { }) + ]; buildInputs = with pkgs; [ p2prc-flake.packages.${system}.default ghc cabal2nix cabal-install - initProject ]; # TODO: add cabal2nix shell command shellHook = '' - # cabal2nix . > ./cabal.nix + cabal2nix . > ./cabal.nix ''; }; }