devenv.sh - 快速、声明式、可复现和可组合的开发者环境
运行 devenv init
生成 devenv.nix
:
{ pkgs, ... }:
{
# https://devenv.sh/basics/
env.GREET = "devenv";
# https://devenv.sh/packages/
packages = [ pkgs.git ];
enterShell = ''
hello
'';
# https://devenv.sh/tests/
enterTest = ''
echo "正在运行测试"
git --version | grep --color=auto "${pkgs.git.version}"
'';
# https://devenv.sh/languages/
languages.nix.enable = true;
# https://devenv.sh/scripts/
scripts.hello.exec = "echo 来自 $GREET 的问候";
# https://devenv.sh/services/
services.postgres.enable = true;
# https://devenv.sh/pre-commit-hooks/
pre-commit.hooks.shellcheck.enable = true;
# https://devenv.sh/processes/
processes.ping.exec = "ping localhost";
}
然后运行 devenv shell
激活环境。
命令
$ devenv
https://devenv.sh 1.0.1: 快速、声明式、可复现和可组合的开发者环境
用法: devenv [选项] <命令>
命令:
init 搭建 devenv.yaml、devenv.nix、.gitignore 和 .envrc。
shell 激活开发者环境。https://devenv.sh/basics/
update 从 devenv.yaml 输入更新 devenv.lock。http://devenv.sh/inputs/
search 在 nixpkgs 中搜索包和选项。https://devenv.sh/packages/#searching-for-a-file
info 打印此开发者环境的信息。
up 在前台启动进程。https://devenv.sh/processes/
processes 启动或停止进程。
test 运行测试。http://devenv.sh/tests/
container 构建、复制或运行容器。https://devenv.sh/containers/
inputs 向 devenv.yaml 添加输入。https://devenv.sh/inputs/
gc 删除先前的 shell 生成。参见 http://devenv.sh/garbage-collection
build 构建 devenv.nix 中的任何属性。
version 打印 devenv 的版本。
help 打印此消息或给定子命令的帮助
选项:
-v, --verbose
启用调试日志级别。
-j, --max-jobs <MAX_JOBS>
任何时候的最大 Nix 构建数。[默认值: 8]
-j, --cores <CORES>
单个构建使用的最大 CPU 核心数。[默认值: 2]
-s, --system <SYSTEM>
[默认值: x86_64-linux]
-i, --impure
放宽环境的严格性。
-c, --clean [<CLEAN>...]
进入 shell 时忽略现有环境变量。传递逗号分隔的环境变量列表以允许通过。
-d, --nix-debugger
失败时进入 Nix 调试器。
-n, --nix-option <NIX_OPTION> <NIX_OPTION>
向 nix 命令传递额外选项,完整列表参见 `man nix.conf`。
-o, --override-input <OVERRIDE_INPUT> <OVERRIDE_INPUT>
覆盖 devenv.yaml 中的输入。
-h, --help
打印帮助