71 lines
2.0 KiB
Nix
71 lines
2.0 KiB
Nix
{
|
|
description = "Unicode toy";
|
|
|
|
inputs.nixpkgs.url = "github:nixos/nixpkgs/nixpkgs-unstable";
|
|
|
|
outputs = { self, nixpkgs }:
|
|
let
|
|
overlay = import ./nix/overlay.nix;
|
|
settings = import ./nix/settings.nix;
|
|
haskellDeps = import ./nix/haskell-deps.nix;
|
|
|
|
pkgs = nixpkgs.legacyPackages.x86_64-linux.extend overlay;
|
|
haskellPackages = pkgs.haskell.packages."${settings.ghc}";
|
|
|
|
stack = pkgs.stdenv.mkDerivation {
|
|
pname = "stack";
|
|
version = "0";
|
|
dontUnpack = true;
|
|
dontConfigure = true;
|
|
dontBuild = true;
|
|
nativeBuildInputs = [ pkgs.makeWrapper ];
|
|
installPhase = ''
|
|
makeWrapper ${pkgs.stack}/bin/stack $out/bin/stack \
|
|
--add-flags '--no-nix --no-install-ghc'
|
|
'';
|
|
};
|
|
in {
|
|
packages.x86_64-linux.stack = stack;
|
|
packages.x86_64-linux.utoy =
|
|
let
|
|
utoy =
|
|
{ mkDerivation }:
|
|
mkDerivation {
|
|
version = "0.5";
|
|
pname = "utoy";
|
|
license = pkgs.lib.licenses.mit;
|
|
src =
|
|
let
|
|
buildFiles = [
|
|
./LICENSE
|
|
./utoy.cabal
|
|
./Setup.hs
|
|
./app
|
|
./src
|
|
./static
|
|
./test
|
|
];
|
|
in
|
|
pkgs.lib.sources.cleanSourceWith {
|
|
src = ./.;
|
|
filter = path: _type: pkgs.lib.any (prefix: pkgs.lib.hasPrefix (toString prefix) path) buildFiles;
|
|
};
|
|
|
|
libraryHaskellDepends = haskellDeps haskellPackages;
|
|
};
|
|
in
|
|
pkgs.haskell.lib.justStaticExecutables (haskellPackages.callPackage utoy {});
|
|
|
|
packages.x86_64-linux.default = self.packages.x86_64-linux.utoy;
|
|
|
|
devShells.default = pkgs.mkShell {
|
|
buildInputs = [
|
|
stack
|
|
];
|
|
shellHook = ''
|
|
PS1+=" (utoy)";
|
|
'';
|
|
};
|
|
};
|
|
}
|