Add README.md
This commit is contained in:
parent
0c5d27a013
commit
e5a1d5aa68
81
README.md
Normal file
81
README.md
Normal file
|
@ -0,0 +1,81 @@
|
||||||
|
# Development environments
|
||||||
|
|
||||||
|
Powered with [Nix ❄️ ](https://nixos.org/), [Nix Flakes](https://nixos.wiki/wiki/Flakes), and [direnv](https://direnv.net/). Only usefull if you have Nix installed.
|
||||||
|
|
||||||
|
## Shells
|
||||||
|
A few custom development shells are available. Use with
|
||||||
|
|
||||||
|
### direnv
|
||||||
|
Create a .envrc file with the following contents to use a generic `nix`-shell
|
||||||
|
```text
|
||||||
|
use flake git+https://git.tammena.me/megamanmalte/dev?ref=main#nix
|
||||||
|
```
|
||||||
|
*See below for other shell options.*
|
||||||
|
|
||||||
|
### nix develop
|
||||||
|
Simply run the following to enter a generic nix shell
|
||||||
|
```shell
|
||||||
|
nix develop git+https://git.tammena.me/megamanmalte/dev?ref=main#nix
|
||||||
|
```
|
||||||
|
*See below for other shell options.*
|
||||||
|
|
||||||
|
## Templates
|
||||||
|
|
||||||
|
### Rust 🦀
|
||||||
|
Initialize a new [Rust](https://www.rust-lang.org/) project with either
|
||||||
|
```shell
|
||||||
|
nix flake new NEW_PROJECT_DIR -t git+https://git.tammena.me/megamanmalte/dev?ref=main#rust
|
||||||
|
```
|
||||||
|
to create a new directory NEW_PROJECT_DIR.
|
||||||
|
Or run
|
||||||
|
```shell
|
||||||
|
nix flake init -t git+https://git.tammena.me/megamanmalte/dev?ref=main#rust
|
||||||
|
```
|
||||||
|
to create the template inside the current directory
|
||||||
|
|
||||||
|
The layout is as follows
|
||||||
|
```text
|
||||||
|
.
|
||||||
|
├── .envrc
|
||||||
|
│ To load the defined shell, in case you run direnv
|
||||||
|
├── .gitignore
|
||||||
|
├── Cargo.lock
|
||||||
|
├── Cargo.toml
|
||||||
|
├── flake.lock
|
||||||
|
├── flake.nix
|
||||||
|
│ Heart of the repo, defines a development shell and a package, try `nix flake show`
|
||||||
|
├── nix
|
||||||
|
│ └── packages
|
||||||
|
│ └── change-my-name.nix
|
||||||
|
│ The package definitions, try `nix run`, it will build this package
|
||||||
|
└── src
|
||||||
|
│ YOUR future code lives here
|
||||||
|
└── main.rs
|
||||||
|
```
|
||||||
|
|
||||||
|
After running either of the above commands, you will probably want to rename your project
|
||||||
|
```shell
|
||||||
|
rename YOUR_NEW_COOL_PROJECT_NAME
|
||||||
|
```
|
||||||
|
|
||||||
|
## Output Tree
|
||||||
|
`nix flake show`:
|
||||||
|
```text
|
||||||
|
dev
|
||||||
|
├───devShells
|
||||||
|
│ └───x86_64-linux
|
||||||
|
│ ├───beste-schule: development environment 'beste.schule'
|
||||||
|
│ ├───markdown: development environment 'generic-markdown'
|
||||||
|
│ ├───nix: development environment 'generic-nix'
|
||||||
|
│ ├───node: development environment 'generic-node'
|
||||||
|
│ ├───nodeIonic: development environment 'generic-node-+-ionic'
|
||||||
|
│ ├───nodePhp: development environment 'generic-node-+-php'
|
||||||
|
│ ├───php: development environment 'generic-php'
|
||||||
|
│ └───python: development environment 'generic-python'
|
||||||
|
├───hydraJobs [omitted]
|
||||||
|
├───packages
|
||||||
|
│ └───x86_64-linux
|
||||||
|
│ └───mdpls: package 'mdpls-30761508593d85b5743ae39c4209947740eec92d'
|
||||||
|
└───templates
|
||||||
|
└───rust: template: Simple Rust + Nix template
|
||||||
|
```
|
Loading…
Reference in a new issue