adding initHaskellProject to bootstrap project
This commit is contained in:
@@ -11,17 +11,17 @@
|
|||||||
pkgs = nixpkgs.legacyPackages.${system};
|
pkgs = nixpkgs.legacyPackages.${system};
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
|
|
||||||
packages.default = pkgs.haskellPackages.callPackage ./project.nix {};
|
packages.default = pkgs.haskellPackages.callPackage ./project.nix {};
|
||||||
|
|
||||||
devShell = pkgs.mkShell {
|
devShell = pkgs.mkShell {
|
||||||
buildInputs = with pkgs; [
|
buildInputs = with pkgs; [
|
||||||
cabal2nix
|
cabal2nix
|
||||||
cabal-install
|
cabal-install
|
||||||
haskell.compiler.ghc98
|
ghc
|
||||||
zlib.dev
|
zlib.dev
|
||||||
p2prc-main.packages.${system}.default
|
p2prc-main.packages.${system}.default
|
||||||
];
|
];
|
||||||
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|||||||
21
flake.nix
21
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 = {
|
overlays = {
|
||||||
# TODO: merge all overlays into a single one
|
default = [coreOverlay bindingsOverlay];
|
||||||
default = coreOverlay;
|
core = coreOverlay;
|
||||||
bindings = bindingsOverlay;
|
bindings = bindingsOverlay;
|
||||||
};
|
};
|
||||||
templates.haskell = {
|
templates.haskell = {
|
||||||
|
|||||||
@@ -24,80 +24,31 @@
|
|||||||
inherit system;
|
inherit system;
|
||||||
|
|
||||||
# TODO: p2prc overlays into a single list
|
# TODO: p2prc overlays into a single list
|
||||||
overlays = [
|
overlays = p2prc-flake.overlays.default;
|
||||||
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
|
|
||||||
'';
|
|
||||||
};
|
};
|
||||||
|
|
||||||
in {
|
in {
|
||||||
|
|
||||||
packages = {
|
packages = {
|
||||||
# default = pkgs.haskellPackages.callPackage ./cabal.nix { };
|
default = pkgs.haskellPackages.callPackage ./cabal.nix { };
|
||||||
inherit initProject;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
devShells.default = pkgs.haskellPackages.shellFor {
|
devShells.default = pkgs.haskellPackages.shellFor {
|
||||||
|
|
||||||
packages = _: [];
|
packages = p: [
|
||||||
# packages = p: [
|
(p.callPackage ./cabal.nix { })
|
||||||
# (p.callPackage ./cabal.nix { })
|
];
|
||||||
# ];
|
|
||||||
|
|
||||||
buildInputs = with pkgs; [
|
buildInputs = with pkgs; [
|
||||||
p2prc-flake.packages.${system}.default
|
p2prc-flake.packages.${system}.default
|
||||||
ghc
|
ghc
|
||||||
cabal2nix
|
cabal2nix
|
||||||
cabal-install
|
cabal-install
|
||||||
initProject
|
|
||||||
];
|
];
|
||||||
|
|
||||||
# TODO: add cabal2nix shell command
|
# TODO: add cabal2nix shell command
|
||||||
shellHook = ''
|
shellHook = ''
|
||||||
# cabal2nix . > ./cabal.nix
|
cabal2nix . > ./cabal.nix
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user