This isn't 100% usable, but it works. You can build it with `nix-env` and then run it with `wpcarros-fish`.
		
			
				
	
	
		
			52 lines
		
	
	
	
		
			1.3 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
			
		
		
	
	
			52 lines
		
	
	
	
		
			1.3 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
| { pkgs ? import <nixpkgs> {} , ... }:
 | |
| 
 | |
| # TODO: Is it appropriate to put programming language dependencies here? Should
 | |
| # I have a bin dependency for every fish `abbr` and `alias` that I use? What
 | |
| # makes the most sense?
 | |
| 
 | |
| # TODO: Some of the abbreviations / aliases depend on binaries and some depend
 | |
| # on files (e.g. ~/.config/nvim/init.vim). How should I handle the file
 | |
| # dependencies?
 | |
| 
 | |
| # TODO: Support symlinking config.fish to ~/.config/fish/config.fish using Nix.
 | |
| 
 | |
| let
 | |
|   fishBinPath = pkgs.lib.strings.makeBinPath (with pkgs; [
 | |
|     # TODO: Support fasd instead of autojump.
 | |
|     # fasd
 | |
|     direnv
 | |
|     autojump
 | |
|     fzf
 | |
|     fd
 | |
|     xclip
 | |
|     bat
 | |
|     neovim
 | |
|     ripgrep
 | |
|     sdcv
 | |
|     exa
 | |
|     pass
 | |
|     networkmanager
 | |
|     google-chrome
 | |
|     docker
 | |
|     elixir
 | |
|     clojure
 | |
|     gnupg
 | |
|     git
 | |
|     tmux
 | |
|     # This is not that same as `hub`.
 | |
|     # git-hub
 | |
|     mercurial
 | |
|     stack
 | |
|     kubernetes
 | |
|     circleci-cli
 | |
|     nix # Really?
 | |
|     apt # Really?
 | |
|     pacman # Really?
 | |
|   ]);
 | |
| # TODO: It's difficult to test if the `--init-command` is working since fish
 | |
| # persists functions, abbreviations, aliases between sessions so it's easy to
 | |
| # get tricked by false-positives.
 | |
| in pkgs.writeShellScriptBin "wpcarros-fish" ''
 | |
|   export PATH="${fishBinPath}:$PATH"
 | |
|   exec ${pkgs.fish}/bin/fish --init-command 'source ${ ./functions.fish }'
 | |
| ''
 |