diff options
-rw-r--r-- | .gitignore | 5 | ||||
-rw-r--r-- | Makefile | 36 | ||||
-rw-r--r-- | shell.nix | 34 |
3 files changed, 41 insertions, 34 deletions
diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..c9d712d --- /dev/null +++ b/.gitignore @@ -0,0 +1,5 @@ +*.hi +*.o +.graveyard +/dist +/shell.nix diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..869ee4f --- /dev/null +++ b/Makefile @@ -0,0 +1,36 @@ + +define newline + + +endef + +shell-quote = '$(subst $(newline),'\$(newline)',$(subst ','\'',$(1)))' + + +ifdef nixpkgs + override nixpkgs := $(call shell-quote,$(nixpkgs)) +else + nixpkgs = 'import <stockholm>' +endif + +.PHONY: _default +_default: ghci + +.PHONY: clean +clean: + @find * -type f \( -name \*.o -o -name \*.hi \) -exec rm -v \{\} \; + +.PHONY: ghci +ghci: shell.nix + nix-shell --arg nixpkgs $(nixpkgs) --command 'exec ghci -Wall -fobject-code' + +.PHONY: install +install: + $(error to install run "make result && nix-env -i ./result") + +.PHONY: result +result: shell.nix + nix-build --arg nixpkgs $(nixpkgs) ./shell.nix + +shell.nix: $(wildcard *.cabal) + cabal2nix --shell . > $@ diff --git a/shell.nix b/shell.nix deleted file mode 100644 index 1e27f23..0000000 --- a/shell.nix +++ /dev/null @@ -1,34 +0,0 @@ - -let - pname = "news"; - version = "1"; - - pkgs = nixpkgs // extrapkgs; - nixpkgs = import <nixpkgs> {}; - extrapkgs = { - }; - hsPkgs = pkgs.haskellPackages; - hsEnv = hsPkgs.ghcWithPackages (_hsPkgs: with _hsPkgs; - [ - irc - irc-client - feed - split - warp - wai-util - ]); -in - -pkgs.myEnvFun { - name = "${pname}-${version}"; - - buildInputs = with pkgs; [ - hsEnv - ]; - - extraCmds = with pkgs; '' - $(grep export ${hsEnv.outPath}/bin/ghc) - ''; -} - -# vim: set fdm=marker : |