Skip to content

Instantly share code, notes, and snippets.

@YellowOnion
Created August 6, 2024 12:48
Show Gist options
  • Save YellowOnion/b860866d2ecda4dd5414ba66989d1ebd to your computer and use it in GitHub Desktop.
Save YellowOnion/b860866d2ecda4dd5414ba66989d1ebd to your computer and use it in GitHub Desktop.
{
description = "hal-game";
inputs = {
nixpkgs.url = "nixpkgs/nixos-unstable";
typed-systems = {
url = "github:YellowOnion/nix-typed-systems";
flake = false;
};
};
outputs = { self, typed-systems, nixpkgs }:
let
pkgName = "hal-game";
inherit (import typed-systems) id genAttrsMapBy systems';
systems = [ systems'.x86_64-linux systems'.aarch64-linux ];
eachSystem = genAttrsMapBy id (system:
let pkgs = import nixpkgs {
inherit system;
};
in {
inherit system pkgs;
haskellPkgs = pkgs.haskellPackages.override {
overrides = _: super: {
GPipe-Core = pkgs.haskell.lib.overrideSrc {
src = pkgs.fetchFromGithub {
owner = "tobbebex";
repo = "GPipe-Core";
rev = "4f512f1ea6e6c32bbefaae1be38a68508337b1fa";
hash = "sha256-zk3patORx/vZbgnvDgsLnRnO07L8Ot2cMCCsGmnGzzg=";
};
} super.GPipe-Core;
};
};}) systems;
in {
packages = eachSystem ({ pkgs, haskellPkgs, ... }:
let
pkg = haskellPkgs.callCabal2nix pkgName self {};
in {
${pkgName} = pkg;
default = pkg;
});
devShells = eachSystem ({ pkgs, haskellPkgs, system }: {
default = haskellPkgs.shellFor {
withHoogle = true;
packages = p: [ self.packages.${system}.default ];
buildInputs = builtins.attrValues {
inherit (pkgs) cabal-install cabal2nix;
inherit (haskellPkgs) ghc haskell-language-server lambdabot hlint;
};
};});
formatter = eachSystem ({ pkgs, ... }: pkgs.nixfmt);
};
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment