Skip to content
Snippets Groups Projects
flake.nix 1.31 KiB
Newer Older
Jens Nolte's avatar
Jens Nolte committed
{
  inputs = {
Jens Nolte's avatar
Jens Nolte committed
    quasar = {
Jens Nolte's avatar
Jens Nolte committed
      url = github:queezle42/quasar;
Jens Nolte's avatar
Jens Nolte committed
      inputs.nixpkgs.follows = "nixpkgs";
    };

    nixpkgs.url = github:NixOS/nixpkgs/nixos-unstable;
Jens Nolte's avatar
Jens Nolte committed
  };

Jens Nolte's avatar
Jens Nolte committed
  outputs = { self, nixpkgs, quasar }:
Jens Nolte's avatar
Jens Nolte committed
  let
    lib = nixpkgs.lib;
    systems = lib.platforms.unix;
    forAllSystems = lib.genAttrs systems;
  in {
    packages = forAllSystems (system:
    let pkgs = import nixpkgs { inherit system; overlays = [
Jens Nolte's avatar
Jens Nolte committed
        self.overlays.default
        quasar.overlays.default
Jens Nolte's avatar
Jens Nolte committed
      ]; };
    in rec {
      default = quasar-wayland;
Jens Nolte's avatar
Jens Nolte committed
      quasar-wayland = pkgs.haskell.packages.ghc924.quasar-wayland;
Jens Nolte's avatar
Jens Nolte committed
    );

Jens Nolte's avatar
Jens Nolte committed
    overlays = {
      default = final: prev: {
        haskell = prev.haskell // {
          packageOverrides = hfinal: hprev: prev.haskell.packageOverrides hfinal hprev // {
            quasar-wayland = hfinal.callCabal2nix "quasar-wayland" ./. {};
          };
Jens Nolte's avatar
Jens Nolte committed
        };
      };

Jens Nolte's avatar
Jens Nolte committed
      quasar = quasar.overlay;
Jens Nolte's avatar
Jens Nolte committed
    };

    devShell = forAllSystems (system:
      let
        pkgs = nixpkgs.legacyPackages.${system};
      in pkgs.mkShell {
        inputsFrom = [ self.packages.${system}.quasar-wayland.env ];
        packages = [
          pkgs.cabal-install
          pkgs.zsh
          pkgs.entr
          pkgs.ghcid
          pkgs.haskell-language-server
Jens Nolte's avatar
Jens Nolte committed
          pkgs.hlint
Jens Nolte's avatar
Jens Nolte committed
  };
}