diff --git a/default.nix b/default.nix deleted file mode 100644 index e40c708..0000000 --- a/default.nix +++ /dev/null @@ -1,27 +0,0 @@ -{ ... }: -let - sources = import nix/sources.nix; - pkgs = import sources.nixpkgs { }; - gitignore = import sources.gitignore { }; -in pkgs.stdenv.mkDerivation { - name = "elo-anything"; - src = gitignore.gitignoreSource ./.; - - buildInputs = [ pkgs.elmPackages.elm pkgs.elmPackages.elm-test ]; - buildPhase = pkgs.elmPackages.fetchElmDeps { - elmPackages = import ./nix/elm-srcs.nix; - elmVersion = "0.19.1"; - registryDat = ./nix/registry.dat; - }; - - doCheck = true; - checkPhase = '' - env ELM_HOME=.elm elm-test - ''; - - installPhase = '' - make dist - mkdir -p $out/share/ - mv dist $out/share/elo-anything - ''; -} diff --git a/flake.lock b/flake.lock new file mode 100644 index 0000000..f2ceea5 --- /dev/null +++ b/flake.lock @@ -0,0 +1,43 @@ +{ + "nodes": { + "flake-utils": { + "locked": { + "lastModified": 1631561581, + "narHash": "sha256-3VQMV5zvxaVLvqqUrNz3iJelLw30mIVSfZmAaauM3dA=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "7e5bf3925f6fbdfaf50a2a7ca0be2879c4261d19", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "nixpkgs": { + "locked": { + "lastModified": 1631562492, + "narHash": "sha256-RMXh3Ol04TOdes/gl8GI0Q+8PH7kEeXbHzL0e957/Vc=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "f789739acc4baf042c85f2f7382f4b0af5c5e049", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "release-21.05", + "repo": "nixpkgs", + "type": "github" + } + }, + "root": { + "inputs": { + "flake-utils": "flake-utils", + "nixpkgs": "nixpkgs" + } + } + }, + "root": "root", + "version": 7 +} diff --git a/flake.nix b/flake.nix new file mode 100644 index 0000000..adb8fff --- /dev/null +++ b/flake.nix @@ -0,0 +1,56 @@ +{ + inputs = { + flake-utils.url = "github:numtide/flake-utils"; + nixpkgs.url = "github:NixOS/nixpkgs/release-21.05"; + }; + + outputs = { self, nixpkgs, flake-utils }: + flake-utils.lib.eachDefaultSystem (system: + let pkgs = nixpkgs.legacyPackages.${system}; + in rec { + # `nix build` + packages.elo-anything = pkgs.stdenv.mkDerivation { + name = "elo-anything"; + src = ./.; + + buildInputs = [ pkgs.elmPackages.elm pkgs.elmPackages.elm-test ]; + buildPhase = pkgs.elmPackages.fetchElmDeps { + elmPackages = import ./nix/elm-srcs.nix; + elmVersion = "0.19.1"; + registryDat = ./nix/registry.dat; + }; + + doCheck = true; + checkPhase = '' + env ELM_HOME=.elm elm-test + ''; + + installPhase = '' + make dist + mkdir -p $out/share/ + mv dist $out/share/elo-anything + ''; + }; + defaultPackage = packages.elo-anything; + overlay = final: prev: { elo-anything = packages.elo-anything; }; + + # `nix shell` + devShell = pkgs.mkShell { + buildInputs = with pkgs; [ + git + + # Elm + elmPackages.elm + elmPackages.elm-format + elmPackages.elm-json + elmPackages.elm-test + elm2nix + + # Build Stuff + gnumake + modd + devd + ]; + }; + }); +} diff --git a/shell.nix b/shell.nix index 194c92c..db84e3d 100644 --- a/shell.nix +++ b/shell.nix @@ -1,26 +1,3 @@ -{ ... }: -let - sources = import ./nix/sources.nix; - - nixpkgs = import sources.nixpkgs { }; - - niv = import sources.niv { }; -in with nixpkgs; -mkShell { - buildInputs = [ - niv.niv - git - - # Elm - elmPackages.elm - elmPackages.elm-format - elmPackages.elm-json - elmPackages.elm-test - elm2nix - - # Build Stuff - gnumake - modd - devd - ]; -} +(import (fetchTarball https://github.com/edolstra/flake-compat/archive/master.tar.gz) { + src = builtins.fetchGit ./.; +}).shellNix diff --git a/shell.nix.bak b/shell.nix.bak new file mode 100644 index 0000000..194c92c --- /dev/null +++ b/shell.nix.bak @@ -0,0 +1,26 @@ +{ ... }: +let + sources = import ./nix/sources.nix; + + nixpkgs = import sources.nixpkgs { }; + + niv = import sources.niv { }; +in with nixpkgs; +mkShell { + buildInputs = [ + niv.niv + git + + # Elm + elmPackages.elm + elmPackages.elm-format + elmPackages.elm-json + elmPackages.elm-test + elm2nix + + # Build Stuff + gnumake + modd + devd + ]; +}