I had a spare fifteen minutes and decided that I should tidy up my monorepo. The work of tidying up is not finished; this is a small step in the right direction. TL;DR - Created a tools directory - Created a scratch directory (see README.md for more information) - Added README.md to third_party - Renamed delete_dotfile_symlinks -> symlinkManager - Packaged symlinkManager as an executable symlink-mgr using buildGo
		
			
				
	
	
		
			40 lines
		
	
	
	
		
			1 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
			
		
		
	
	
			40 lines
		
	
	
	
		
			1 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
| # At the time of this writing, this configuration was taken from @tazjin's
 | |
| # default.nix from his depot. I've added, changed, and removed that parts that I
 | |
| # don't need, and this is what remains.
 | |
| { ... }@args:
 | |
| 
 | |
| with builtins;
 | |
| 
 | |
| let
 | |
|   fix = f: let x = f x; in x;
 | |
| 
 | |
|   # Global configuration that all packages are called with.
 | |
|   config = pkgs: {
 | |
|     inherit pkgs;
 | |
|   };
 | |
| 
 | |
|   readTree' = import ~/depot/nix/readTree {};
 | |
| 
 | |
|   # TODO: Find a better way to expose entire monorepo without introducing
 | |
|   # "infinite recursion".
 | |
|   localPkgs = readTree: {
 | |
|     blog = readTree ./blog;
 | |
|     lisp = readTree ./lisp;
 | |
|     gopkgs = readTree ./gopkgs;
 | |
|     monzo_ynab = readTree ./monzo_ynab;
 | |
|     third_party = readTree ./third_party;
 | |
|     tools = readTree ./tools;
 | |
|   };
 | |
| in fix(self: {
 | |
|   config = config self;
 | |
| 
 | |
|   # Expose readTree for downstream repo consumers.
 | |
|   readTree = {
 | |
|     __functor = x: (readTree' x.config);
 | |
|     config = self.config;
 | |
|   };
 | |
| }
 | |
| 
 | |
| # Add local packages as structured by readTree
 | |
| // (localPkgs (readTree' (self.config // { inherit (self) lib; })))
 | |
| )
 |