mirror of
https://gitlab.com/rensa-nix/devshell.git
synced 2025-12-11 22:00:08 +01:00
docs: write docs
This commit is contained in:
parent
1ecf4d461d
commit
312b725620
5 changed files with 112 additions and 1 deletions
9
docs/examples.md
Normal file
9
docs/examples.md
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
# Examples
|
||||
|
||||
DevShell is used in these projects, feel free to take inspiration from them:
|
||||
|
||||
- [nix-gitlab-ci (only V3)](https://gitlab.com/TECHNOFAB/nix-gitlab-ci)
|
||||
- [soonix](https://gitlab.com/TECHNOFAB/soonix)
|
||||
- [rensa-core](https://gitlab.com/rensa-nix/core)
|
||||
- [rensa-devtools](https://gitlab.com/rensa-nix/devtools)
|
||||
|
||||
|
|
@ -1 +1,15 @@
|
|||
# Hello world!
|
||||
# Rensa DevShell
|
||||
|
||||
Minimal devshell implementation using Modules.
|
||||
Inspired by [numtide/devshell](https://github.com/numtide/devshell).
|
||||
|
||||
It features the absolute basics, like env variables (dynamic values/eval supported),
|
||||
programs and shell hooks ([`enterShellCommands`](./options.md#entershellcommands)).
|
||||
Additional functionality can be added with modules, like [Rensa DevTools](https://devtools.rensa.projects.tf).
|
||||
|
||||
## Features
|
||||
|
||||
- **fast**: due to the NixOS module system it's a bit slower than `pkgs.mkShell`, but only about 10% (still in the tens of milliseconds range)
|
||||
- **minimal**: only contains the bare minimum, the rest should be added with imported modules
|
||||
- **straight forward**: no toml (like numtide/devshell), no abstractions over Nix (like devenv), just a straight forward Nix lib
|
||||
|
||||
|
|
|
|||
5
docs/integrations.md
Normal file
5
docs/integrations.md
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
# Integrations / Modules
|
||||
|
||||
- [soonix](https://soonix.projects.tf/usage/#with-devshell)
|
||||
- [rensa devtools](https://devtools.rensa.projects.tf)
|
||||
|
||||
80
docs/usage.md
Normal file
80
docs/usage.md
Normal file
|
|
@ -0,0 +1,80 @@
|
|||
# Usage
|
||||
|
||||
## Basic Shell
|
||||
|
||||
The absolute minimum to get started:
|
||||
|
||||
```nix
|
||||
devshell.mkShell {}
|
||||
```
|
||||
|
||||
That's it. You've got yourself a shell. Not very exciting, but it works.
|
||||
|
||||
## Adding Packages
|
||||
|
||||
Want some tools? Throw them in:
|
||||
|
||||
```nix
|
||||
devshell.mkShell {
|
||||
packages = [ pkgs.hello pkgs.git pkgs.nodejs ];
|
||||
}
|
||||
```
|
||||
|
||||
## Environment Variables
|
||||
|
||||
Set some env vars (because who doesn't love those):
|
||||
|
||||
```nix
|
||||
devshell.mkShell {
|
||||
env = {
|
||||
HELLO.value = "world";
|
||||
};
|
||||
}
|
||||
```
|
||||
|
||||
## Shell Hooks
|
||||
|
||||
Run stuff when entering the shell:
|
||||
|
||||
```nix
|
||||
devshell.mkShell {
|
||||
enterShellCommands."hello".text = ''
|
||||
echo "Welcome to the devshell!"
|
||||
echo "Current directory: $PWD"
|
||||
'';
|
||||
}
|
||||
```
|
||||
|
||||
## Putting It All Together
|
||||
|
||||
A more realistic example:
|
||||
|
||||
```nix
|
||||
devshell.mkShell {
|
||||
packages = [ pkgs.nodejs pkgs.yarn pkgs.git ];
|
||||
|
||||
env = {
|
||||
NODE_ENV.value = "development";
|
||||
API_URL.value = "http://localhost:3000";
|
||||
};
|
||||
|
||||
enterShellCommands."enter".text = ''
|
||||
echo "🚀 Development environment ready!"
|
||||
node --version
|
||||
'';
|
||||
}
|
||||
```
|
||||
|
||||
## Need More Features?
|
||||
|
||||
For additional functionality, import modules:
|
||||
|
||||
```nix
|
||||
devshell.mkShell {
|
||||
imports = [ some-module.devshellModule ];
|
||||
# your config...
|
||||
}
|
||||
```
|
||||
|
||||
Check out [available modules](./integrations.md) for things like automatic file
|
||||
generation, dev tools and more.
|
||||
|
|
@ -47,6 +47,9 @@ in
|
|||
};
|
||||
nav = [
|
||||
{"Introduction" = "index.md";}
|
||||
{"Usage" = "usage.md";}
|
||||
{"Integrations" = "integrations.md";}
|
||||
{"Examples" = "examples.md";}
|
||||
{"Options" = "options.md";}
|
||||
];
|
||||
markdown_extensions = [
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue