# 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 ]; ```