# devenvious
This tool emerged from my [devenv template efforts](https://gitlab.com/txlab/dx/devenv-templates),
and the realization that copying files from a template is not sustainable solution (versions & requirements change, best-practices emerge, ..),
so **I've come up with the wish to manage devenv templates as a git remote**.
This has several advantages:
- in case of template updates, you can merge it into your repo easily and using well-known workflows (instead of having repos with stale boilerplate)
- use familiar tools for merging conflicts
- have a clearly defined commit history & origin for the template
- try & compare templates and forks
[![asciicast](https://asciinema.org/a/691159.svg)](https://asciinema.org/a/691159)
## Usage
Basic command: `devenvious` (alias: `dvnv`)
### **Init** a repo with a devenv template
If not given a URL, uses a template from [our repo](https://gitlab.com/txlab/dx/templates) (default: basic)
```shell
dvnv init [template_name | git_url]
```
## Try
```shell
nix shell git+https://gitlab.com/txlab/dx/devenvious.git
```
*Sidenote: git+https scheme as workaround for https://github.com/NixOS/nix/issues/6435#issuecomment-2386419383*
## Install
### Nix profile
```
nix profile install git+https://gitlab.com/txlab/dx/devenvious.git # git+https scheme as workaround for https://github.com/NixOS/nix/issues/6435#issuecomment-2386419383
```
### NixOS / Home-Manager
#### `flake.nix`
```nix
inputs = {
devenvious = {
type = "gitlab";
owner = "txlab";
repo = "dx%2Fdevenvious"; # https://github.com/NixOS/nix/issues/6435#issuecomment-1902178999
};
};
```
#### home-manager config
```nix
home.packages = with pkgs; [
inputs.devenvious.packages.${pkgs.system}.default
];
```