Use Nix and Briefcase to easily create Haskell executables. I'd eventually like to support something like: briefcase.buildHaskell.project that let me define a few top-level values (e.g. ghcExtensions) and would give me a ghci environment with the proper `.ghci` settings so that my development environment mirrored my build environment... baby steps, though.
		
			
				
	
	
		
			36 lines
		
	
	
	
		
			1 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
			
		
		
	
	
			36 lines
		
	
	
	
		
			1 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
| { ... }:
 | |
| 
 | |
| let
 | |
|   depot = import (builtins.fetchGit {
 | |
|     url = "https://cl.tvl.fyi/depot";
 | |
|     rev = "a2e86152401c7c531801c79347c3f15e1806aabc";
 | |
|   }) {};
 | |
|   readTree = depot.nix.readTree {
 | |
|     pkgs = import (builtins.fetchGit {
 | |
|       url = "https://github.com/NixOS/nixpkgs-channels";
 | |
|       ref = "nixos-20.03";
 | |
|       rev = "afa9ca61924f05aacfe495a7ad0fd84709d236cc";
 | |
|     }) {};
 | |
|     unstable = import (builtins.fetchGit {
 | |
|       url = "https://github.com/NixOS/nixpkgs-channels";
 | |
|       ref = "nixos-unstable";
 | |
|       rev = "dc80d7bc4a244120b3d766746c41c0d9c5f81dfa";
 | |
|     }) {};
 | |
|     briefcase = import (builtins.path {
 | |
|       path = ./.;
 | |
|       name = "briefcase";
 | |
|     }) {};
 | |
|     depot = depot;
 | |
|   };
 | |
| in {
 | |
|   nixos        = readTree ./nixos;
 | |
|   utils        = readTree ./utils;
 | |
|   emacs        = readTree ./emacs;
 | |
|   website      = readTree ./website;
 | |
|   lisp         = readTree ./lisp;
 | |
|   gopkgs       = readTree ./gopkgs;
 | |
|   monzo_ynab   = readTree ./monzo_ynab;
 | |
|   third_party  = readTree ./third_party;
 | |
|   tools        = readTree ./tools;
 | |
|   buildHaskell = readTree ./buildHaskell;
 | |
| }
 |