diff options
-rw-r--r-- | .gitignore | 1 | ||||
-rw-r--r-- | default.nix | 42 | ||||
-rw-r--r-- | nix/sources.json | 12 | ||||
-rw-r--r-- | stack.yaml | 3 | ||||
-rw-r--r-- | stack.yaml.lock | 3 |
5 files changed, 57 insertions, 4 deletions
@@ -1,3 +1,4 @@ dist-newstyle/* .stack-work walint.cabal +result* diff --git a/default.nix b/default.nix new file mode 100644 index 0000000..deea282 --- /dev/null +++ b/default.nix @@ -0,0 +1,42 @@ +let + sources = import ./nix/sources.nix {}; + haskellNix = import sources.haskellNix {}; + + # Import nixpkgs and pass the haskell.nix provided nixpkgsArgs + pkgs = import + # use haskell.nix's nixpkgs, which may (?) have more substitutes available + haskellNix.sources.nixpkgs-unstable + # args for nixpkgs; includes the haskell.nix overlay + (haskellNix.nixpkgsArgs // { system = "x86_64-linux"; }); + + drvs = pkgs.haskell-nix.project { + # 'cleanGit' cleans a source directory based on the files known by git + src = pkgs.haskell-nix.haskellLib.cleanGit { + src = ./.; + name = "walint"; + }; + modules = [{ + packages.walint.components.exes = { + # don't include gcc or ghc in the dependency closure … + walint-server.dontStrip = false; + walint.dontStrip = false; + }; + }]; + stack-sha256 = "16ilij2cygmwbdmjdzj6yl4yv7zi4qzwg7rxkxgp0hbjpkz6n42y"; + }; +in +{ + walint = drvs.walint.components.exes.walint; + walint-server = pkgs.stdenvNoCC.mkDerivation { + name = "walint-server-with-assets"; + src = drvs.walint.components.exes.walint-server; + phases = [ "buildPhase" ]; + buildPhase = '' + mkdir -p $out + cp -r $src/* $out + cp -r ${pkgs.copyPathToStore ./static} $out/static + cp ${pkgs.copyPathToStore ./config.json} $out/config.json + cp ${pkgs.copyPathToStore ./config.toml} $out/config.toml + ''; + }; +} diff --git a/nix/sources.json b/nix/sources.json index 991e777..f9b2708 100644 --- a/nix/sources.json +++ b/nix/sources.json @@ -1,4 +1,16 @@ { + "haskellNix": { + "branch": "master", + "description": "Alternative Haskell Infrastructure for Nixpkgs", + "homepage": "https://input-output-hk.github.io/haskell.nix", + "owner": "input-output-hk", + "repo": "haskell.nix", + "rev": "c2677deef14f2772110f56b60d74dee25f19902f", + "sha256": "0pa5n8lgq2hmsskyd7m4xsfiinq8mfpgw7g7ll3j77l5z4shi264", + "type": "tarball", + "url": "https://github.com/input-output-hk/haskell.nix/archive/c2677deef14f2772110f56b60d74dee25f19902f.tar.gz", + "url_template": "https://github.com/<owner>/<repo>/archive/<rev>.tar.gz" + }, "niv": { "branch": "master", "description": "Easy dependency management for Nix projects", @@ -1,5 +1,4 @@ -resolver: - url: https://raw.githubusercontent.com/commercialhaskell/stackage-snapshots/master/lts/18/16.yaml +resolver: lts-18.16 # User packages to be built. # Various formats can be used as shown in the example below. diff --git a/stack.yaml.lock b/stack.yaml.lock index 93443e4..9f568e8 100644 --- a/stack.yaml.lock +++ b/stack.yaml.lock @@ -86,5 +86,4 @@ snapshots: size: 586286 url: https://raw.githubusercontent.com/commercialhaskell/stackage-snapshots/master/lts/18/16.yaml sha256: cdead65fca0323144b346c94286186f4969bf85594d649c49c7557295675d8a5 - original: - url: https://raw.githubusercontent.com/commercialhaskell/stackage-snapshots/master/lts/18/16.yaml + original: lts-18.16 |