#template #git #merge #git-remote #conflict #repo #devenv

app devenvious

Apply & update git-based devenv templates

2 releases

0.1.1 Nov 21, 2024
0.1.0 Nov 20, 2024

#45 in Template engine

Download history 206/week @ 2024-11-15 63/week @ 2024-11-22 5/week @ 2024-11-29 3/week @ 2024-12-06

277 downloads per month

AGPL-3.0-or-later

50KB
1K SLoC

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

Dependencies

~17–31MB
~492K SLoC