feat(dev): add enableGlobally opt
I only need the envvars set. All my development environments are in shell.nix's and global installations are usually unneeded.
This commit is contained in:
		
							parent
							
								
									233297ae71
								
							
						
					
					
						commit
						3afaee991c
					
				|  | @ -8,33 +8,40 @@ | ||||||
| with lib; | with lib; | ||||||
| with lib.my; | with lib.my; | ||||||
| let cfg = config.modules.dev.node; | let cfg = config.modules.dev.node; | ||||||
|  |     node = pkgs.nodejs_latest; | ||||||
| in { | in { | ||||||
|   options.modules.dev.node = { |   options.modules.dev.node = { | ||||||
|     enable = mkBoolOpt false; |     enable = mkBoolOpt false; | ||||||
|  |     enableGlobally = mkBoolOpt false; | ||||||
|   }; |   }; | ||||||
| 
 | 
 | ||||||
|   config = mkIf cfg.enable { |   config = mkIf cfg.enable (mkMerge [ | ||||||
|     user.packages = with pkgs; [ |     (mkIf cfg.enableGlobally { | ||||||
|       nodejs |       user.packages = with pkgs; [ | ||||||
|       yarn |         node | ||||||
|     ]; |         yarn | ||||||
|  |       ]; | ||||||
| 
 | 
 | ||||||
|     env.NPM_CONFIG_USERCONFIG = "$XDG_CONFIG_HOME/npm/config"; |       # Run locally installed bin-script, e.g. n coffee file.coffee | ||||||
|     env.NPM_CONFIG_CACHE      = "$XDG_CACHE_HOME/npm"; |       environment.shellAliases = { | ||||||
|     env.NPM_CONFIG_TMP        = "$XDG_RUNTIME_DIR/npm"; |         n  = "PATH=\"$(${node}/bin/npm bin):$PATH\""; | ||||||
|     env.NPM_CONFIG_PREFIX     = "$XDG_CACHE_HOME/npm"; |         ya = "yarn"; | ||||||
|     env.NODE_REPL_HISTORY     = "$XDG_CACHE_HOME/node/repl_history"; |       }; | ||||||
|     env.PATH = [ "$(${pkgs.yarn}/bin/yarn global bin)" ]; |  | ||||||
| 
 | 
 | ||||||
|     # Run locally installed bin-script, e.g. n coffee file.coffee |       env.PATH = [ "$(${pkgs.yarn}/bin/yarn global bin)" ]; | ||||||
|     environment.shellAliases = { |     }) | ||||||
|       n  = "PATH=\"$(${pkgs.nodejs}/bin/npm bin):$PATH\""; |  | ||||||
|       ya = "yarn"; |  | ||||||
|     }; |  | ||||||
| 
 | 
 | ||||||
|     home.configFile."npm/config".text = '' |     { | ||||||
|       cache=$XDG_CACHE_HOME/npm |       env.NPM_CONFIG_USERCONFIG = "$XDG_CONFIG_HOME/npm/config"; | ||||||
|       prefix=$XDG_DATA_HOME/npm |       env.NPM_CONFIG_CACHE      = "$XDG_CACHE_HOME/npm"; | ||||||
|     ''; |       env.NPM_CONFIG_TMP        = "$XDG_RUNTIME_DIR/npm"; | ||||||
|   }; |       env.NPM_CONFIG_PREFIX     = "$XDG_CACHE_HOME/npm"; | ||||||
|  |       env.NODE_REPL_HISTORY     = "$XDG_CACHE_HOME/node/repl_history"; | ||||||
|  | 
 | ||||||
|  |       home.configFile."npm/config".text = '' | ||||||
|  |         cache=$XDG_CACHE_HOME/npm | ||||||
|  |         prefix=$XDG_DATA_HOME/npm | ||||||
|  |       ''; | ||||||
|  |     } | ||||||
|  |   ]); | ||||||
| } | } | ||||||
|  |  | ||||||
|  | @ -12,35 +12,40 @@ let cfg = config.modules.dev.python; | ||||||
| in { | in { | ||||||
|   options.modules.dev.python = { |   options.modules.dev.python = { | ||||||
|     enable = mkBoolOpt false; |     enable = mkBoolOpt false; | ||||||
|  |     enableGlobally = mkBoolOpt false; | ||||||
|   }; |   }; | ||||||
| 
 | 
 | ||||||
|   config = mkIf cfg.enable { |   config = mkIf cfg.enable (mkMerge [ | ||||||
|     user.packages = with pkgs; [ |     (mkIf cfg.enableGlobally { | ||||||
|       python37 |       user.packages = with pkgs; [ | ||||||
|       python37Packages.pip |         python37 | ||||||
|       python37Packages.ipython |         python37Packages.pip | ||||||
|       python37Packages.black |         python37Packages.ipython | ||||||
|       python37Packages.setuptools |         python37Packages.black | ||||||
|       python37Packages.pylint |         python37Packages.setuptools | ||||||
|       python37Packages.poetry |         python37Packages.pylint | ||||||
|     ]; |         python37Packages.poetry | ||||||
|  |       ]; | ||||||
| 
 | 
 | ||||||
|     env.IPYTHONDIR      = "$XDG_CONFIG_HOME/ipython"; |       environment.shellAliases = { | ||||||
|     env.PIP_CONFIG_FILE = "$XDG_CONFIG_HOME/pip/pip.conf"; |         py     = "python"; | ||||||
|     env.PIP_LOG_FILE    = "$XDG_DATA_HOME/pip/log"; |         py2    = "python2"; | ||||||
|     env.PYLINTHOME      = "$XDG_DATA_HOME/pylint"; |         py3    = "python3"; | ||||||
|     env.PYLINTRC        = "$XDG_CONFIG_HOME/pylint/pylintrc"; |         po     = "poetry"; | ||||||
|     env.PYTHONSTARTUP   = "$XDG_CONFIG_HOME/python/pythonrc"; |         ipy    = "ipython --no-banner"; | ||||||
|     env.PYTHON_EGG_CACHE = "$XDG_CACHE_HOME/python-eggs"; |         ipylab = "ipython --pylab=qt5 --no-banner"; | ||||||
|     env.JUPYTER_CONFIG_DIR = "$XDG_CONFIG_HOME/jupyter"; |       }; | ||||||
|  |     }) | ||||||
| 
 | 
 | ||||||
|     environment.shellAliases = { |     { | ||||||
|       py     = "python"; |       env.IPYTHONDIR      = "$XDG_CONFIG_HOME/ipython"; | ||||||
|       py2    = "python2"; |       env.PIP_CONFIG_FILE = "$XDG_CONFIG_HOME/pip/pip.conf"; | ||||||
|       py3    = "python3"; |       env.PIP_LOG_FILE    = "$XDG_DATA_HOME/pip/log"; | ||||||
|       po     = "poetry"; |       env.PYLINTHOME      = "$XDG_DATA_HOME/pylint"; | ||||||
|       ipy    = "ipython --no-banner"; |       env.PYLINTRC        = "$XDG_CONFIG_HOME/pylint/pylintrc"; | ||||||
|       ipylab = "ipython --pylab=qt5 --no-banner"; |       env.PYTHONSTARTUP   = "$XDG_CONFIG_HOME/python/pythonrc"; | ||||||
|     }; |       env.PYTHON_EGG_CACHE = "$XDG_CACHE_HOME/python-eggs"; | ||||||
|   }; |       env.JUPYTER_CONFIG_DIR = "$XDG_CONFIG_HOME/jupyter"; | ||||||
|  |     } | ||||||
|  |   ]); | ||||||
| } | } | ||||||
|  |  | ||||||
|  | @ -15,21 +15,26 @@ let cfg = config.modules.dev.rust; | ||||||
| in { | in { | ||||||
|   options.modules.dev.rust = { |   options.modules.dev.rust = { | ||||||
|     enable = mkBoolOpt false; |     enable = mkBoolOpt false; | ||||||
|  |     enableGlobally = mkBoolOpt false; | ||||||
|   }; |   }; | ||||||
| 
 | 
 | ||||||
|   config = mkIf cfg.enable { |   config = mkIf cfg.enable (mkMerge [ | ||||||
|     user.packages = with pkgs; [ |     (mkIf cfg.enableGlobally { | ||||||
|       rustup |       user.packages = [ pkgs.rustup ]; | ||||||
|     ]; |  | ||||||
| 
 | 
 | ||||||
|     env.RUSTUP_HOME = "$XDG_DATA_HOME/rustup"; |       env.PATH = [ "$(${pkgs.yarn}/bin/yarn global bin)" ]; | ||||||
|     env.CARGO_HOME = "$XDG_DATA_HOME/cargo"; |     }) | ||||||
|     env.PATH = [ "$CARGO_HOME/bin" ]; |  | ||||||
| 
 | 
 | ||||||
|     environment.shellAliases = { |     { | ||||||
|       rs  = "rustc"; |       env.RUSTUP_HOME = "$XDG_DATA_HOME/rustup"; | ||||||
|       rsp = "rustup"; |       env.CARGO_HOME = "$XDG_DATA_HOME/cargo"; | ||||||
|       ca  = "cargo"; |       env.PATH = [ "$CARGO_HOME/bin" ]; | ||||||
|     }; | 
 | ||||||
|   }; |       environment.shellAliases = { | ||||||
|  |         rs  = "rustc"; | ||||||
|  |         rsp = "rustup"; | ||||||
|  |         ca  = "cargo"; | ||||||
|  |       }; | ||||||
|  |     } | ||||||
|  |   ]); | ||||||
| } | } | ||||||
|  |  | ||||||
		Loading…
	
		Reference in a new issue