31 lines
		
	
	
	
		
			759 B
		
	
	
	
		
			Nix
		
	
	
	
	
	
			
		
		
	
	
			31 lines
		
	
	
	
		
			759 B
		
	
	
	
		
			Nix
		
	
	
	
	
	
| {
 | |
|   self,
 | |
|   pkgs,
 | |
|   ...
 | |
| }: let
 | |
|   # get devshell names from flake
 | |
|   devShellNames = builtins.concatStringsSep " " (builtins.attrNames self.devShells.${pkgs.system});
 | |
| in {
 | |
|   programs.fish = {
 | |
|     # add devshells completions to init script
 | |
|     interactiveShellInit = ''
 | |
|       complete -c develop -f -a "${devShellNames}"
 | |
|     '';
 | |
|     functions.develop = {
 | |
|       description = "Easily jump into any of the ooknet devshells";
 | |
|       body =
 | |
|         #fish
 | |
|         ''
 | |
|           if test -n "$argv[1]"
 | |
|             if test -n "$FLAKE"
 | |
|               nix develop $FLAKE#$argv[1]
 | |
|             else
 | |
|               echo "error: FLAKE variable is not set";
 | |
|             end
 | |
|           else
 | |
|             echo "error: No argument was provided";
 | |
|           end
 | |
|         '';
 | |
|     };
 | |
|   };
 | |
| }
 |