@@ -102,7 +102,17 @@ _devenv_watches() {
102
102
use_devenv() {
103
103
_nix_direnv_preflight
104
104
105
+ # First parameter is the flake expression, defaults to .
105
106
flake_expr="${1:-.}"
107
+ shift 2>/dev/null || true
108
+
109
+ # Remaining parameters are passed as flags to devenv
110
+ local devenv_cmd=("${DEVENV_BIN}")
111
+ # Add all arguments passed to use_devenv after the flake_expr
112
+ if (( $# > 0 )); then
113
+ devenv_cmd+=("$@")
114
+ fi
115
+
106
116
flake_dir="${flake_expr%#*}"
107
117
env_deps_path="$flake_dir/.devenv/input-paths.txt"
108
118
@@ -113,8 +123,8 @@ use_devenv() {
113
123
default_watches+=("$flake_dir/devenv.nix" "$flake_dir/devenv.lock" "$flake_dir/devenv.yaml" "$flake_dir/devenv.local.nix")
114
124
115
125
if [[ -f "$flake_dir/devenv.yaml" ]]; then
116
- if ! devenv assemble; then
117
- log_error "$(devenv version) failed to parse devenv.yaml, make sure to use version 0.6 or newer and fix the errors above."
126
+ if ! "${devenv_cmd[@]}" assemble; then
127
+ log_error "$("${DEVENV_BIN}" version) failed to parse devenv.yaml, make sure to use version 0.6 or newer and fix the errors above."
118
128
exit 0
119
129
fi
120
130
fi
@@ -129,9 +139,10 @@ use_devenv() {
129
139
_devenv_watches "$env_deps_path" env_watches
130
140
watch_file "${env_watches[@]}"
131
141
132
- # Build the environment
142
+ # Build the environment with all flags passed through
133
143
local env
134
- if ! env=$("${DEVENV_BIN}" print-dev-env); then
144
+ local print_cmd=("${devenv_cmd[@]}" "print-dev-env")
145
+ if ! env=$("${print_cmd[@]}"); then
135
146
log_error "failed to build the devenv environment. devenv.nix may contain errors. see above."
136
147
exit 0
137
148
fi
0 commit comments