1- # devshell - like virtualenv, but for all the languages.
1+ # devshell - like virtualenv, but for all the languages
22
3- ** STATUS: unstable**
3+ < h3 > STATUS: unstable</ h3 >
44
55[ ![ Devshell Dev Environment] ( https://img.shields.io/badge/nix-devshell-blue?logo=NixOS&labelColor=ccc )] ( https://github.com/numtide/devshell ) [ ![ Support room on Matrix] ( https://img.shields.io/matrix/devshell:numtide.com.svg?label=%23devshell%3Anumtide.com&logo=matrix&server_fqdn=matrix.numtide.com )] ( https://matrix.to/#/#devshell:numtide.com )
66
@@ -37,16 +37,20 @@ compiler.
3737This is why ` mkShell ` builds its environment from a ` builtins.derivation ` .
3838
3939direnv loads will change from:
40- ```
40+
41+ ``` sh
4142direnv: export +AR +AS +CC +CONFIG_SHELL +CXX +HOST_PATH +IN_NIX_SHELL +LD +NIX_BINTOOLS +NIX_BINTOOLS_WRAPPER_TARGET_HOST_x86_64_unknown_linux_gnu +NIX_BUILD_CORES +NIX_BUILD_TOP +NIX_CC +NIX_CC_WRAPPER_TARGET_HOST_x86_64_unknown_linux_gnu +NIX_CFLAGS_COMPILE +NIX_ENFORCE_NO_NATIVE +NIX_HARDENING_ENABLE +NIX_INDENT_MAKE +NIX_LDFLAGS +NIX_STORE +NM +OBJCOPY +OBJDUMP +RANLIB +READELF +RUSTC +SIZE +SOURCE_DATE_EPOCH +STRINGS +STRIP +TEMP +TEMPDIR +TMP +TMPDIR +buildInputs +buildPhase +builder +builtDependencies +cargo_bins_jq_filter +cargo_build_options +cargo_options +cargo_release +cargo_test_options +cargoconfig +checkPhase +configureFlags +configurePhase +cratePaths +crate_sources +depsBuildBuild +depsBuildBuildPropagated +depsBuildTarget +depsBuildTargetPropagated +depsHostHost +depsHostHostPropagated +depsTargetTarget +depsTargetTargetPropagated +doCheck +doInstallCheck +docPhase +dontAddDisableDepTrack +dontUseCmakeConfigure +installPhase +name +nativeBuildInputs +out +outputs +patches +preInstallPhases +propagatedBuildInputs +propagatedNativeBuildInputs +remapPathPrefix +shell +src +stdenv +strictDeps +system +version ~PATH
4243```
44+
4345to:
44- ```
46+
47+ ``` sh
4548direnv: export +DEVSHELL_DIR +PRJ_DATA_DIR +PRJ_ROOT +IN_NIX_SHELL +NIXPKGS_PATH ~ PATH
4649```
4750
4851There are new environment variables useful to support the day-to-day
4952activities:
53+
5054* ` DEVSHELL_DIR ` : contains all the programs.
5155* ` PRJ_ROOT ` : points to the project root.
5256* ` PRJ_DATA_DIR ` : points to ` $PRJ_ROOT/.data ` by default. Is used to store runtime data.
@@ -57,8 +61,7 @@ activities:
5761The shell comes pre-loaded with some utility functions. I'm not 100% sure if
5862those are useful yet:
5963
60- * ` devshell-menu ` - list all the programs available
61- * ` devshell-root ` - ` cd ` back to the project root.
64+ * ` menu ` - list all the programs available
6265
6366### MOTD
6467
@@ -67,15 +70,27 @@ commands are available.
6770
6871When running ` nix-shell ` or ` nix develop ` , ` mkShell ` prints a welcome message:
6972
70- ```
73+ ``` sh
7174🔨 Welcome to devshell
7275
73- # Commands
76+ [[general commands]]
77+
78+ hello - prints hello
79+ menu - prints this menu
80+
81+ [formatters]
82+
83+ nixpkgs-fmt - Nix code formatter for nixpkgs
84+
85+ [linters]
86+
87+ golangci-lint - golang linter
88+
89+ [utilites]
7490
75- devshell-menu - print this menu
76- devshell-root - change directory to root
77- hello - prints hello
78- nixpkgs-fmt - used to format Nix code
91+ hub - github utility
92+
93+ [devshell]$
7994```
8095
8196### Configurable with a TOML file
@@ -113,7 +128,6 @@ nix run '.#<myapp>' -- <devshell-command> <and-args>
113128
114129This project itself exposes a Nix application; you can try it out with:
115130
116-
117131``` sh
118132nix run ' github:numtide/devshell' -- hello
119133```
@@ -124,41 +138,35 @@ See [here](docs/flake-app.md) for how to export your devshell as a flake app.
124138
125139A lot of things!
126140
127- ### Documentation
128-
129- Explain how all of this works and all the use-cases.
130-
131- ### Testing
132-
133- Write integration tests for all of the use-cases.
134-
135- ### Lazy dependencies
136-
137- This requires some coordination with the repository structure. To keep the
138- dev closure small, it would be nice to be able to load some of the
139- dependencies on demand.
140-
141- ### Doctor / nix version check
142-
143- Not everything can be nicely sandboxed. Is it possible to get a fast doctor
144- script that checks that everything is in good shape?
145-
146- ### Support other shells
147-
148- What? Not everyone is using bash? Right now, support is already available in
149- direnv mode.
150-
151- # Contributing
152-
153- ## Dev Setup
141+ * ** Documentation**
142+ * Explain how all of this works and all the use-cases.
143+ * ** Testing**
144+ * Write integration tests for all of the use-cases.
145+ * ** Lazy dependencies**
146+ * This requires some coordination with the repository structure. To keep the
147+ dev closure small, it would be nice to be able to load some of the
148+ dependencies on demand.
149+ * ** Doctor / nix version check**
150+ * Not everything can be nicely sandboxed. Is it possible to get a fast doctor
151+ script that checks that everything is in good shape?
152+ * ** Support other shells**
153+ * What? Not everyone is using bash? Right now, support is already available in
154+ direnv mode.
155+
156+ ## Contributing
154157
155158### Docs
156159
1571601 . Change files in ` docs/ `
158- 2 . Run ` docs/serve.sh ` (or the task in VSCode)
159- 3 . Visit [ ` localhost:8000 ` ] ( http://localhost:8000 )
161+ 1 . Run ` nix run .#docs `
162+ 1 . Open [ ` docs ` ] ( http://localhost:3000/index.html )
163+
164+ ### Benchmark
165+
166+ 1 . See [ benchmark/README.md] ( ./benchmark/README.md )
167+ 1 . Run ` nix run .#bench `
160168
161- # Commercial support
169+ ## Commercial support
162170
163171Looking for help or customization?
164172
0 commit comments