devenvious 0.1.0

Apply & update git-based devenv templates
devenvious-0.1.0 is not a library.

devenvious

This tool emerged from my devenv template efforts, 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

Usage

Basic command: devenvious (alias: dvnv)

Init a repo with a devenv template

If not given a URL, uses a template from our repo (default: basic)

dvnv init [template_name | git_url]

Try

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

inputs = {
  devenvious = {
    type = "gitlab";
    owner = "txlab";
    repo = "dx%2Fdevenvious"; # https://github.com/NixOS/nix/issues/6435#issuecomment-1902178999
  };
};

home-manager config

home.packages = with pkgs; [
  inputs.devenvious.packages.${pkgs.system}.default
];