2026-03-04 08:21:20 +01:00
2026-03-04 07:57:14 +01:00
2026-03-04 05:32:21 +01:00
2026-03-04 07:25:31 +01:00
2026-03-04 05:07:26 +01:00
2026-03-04 04:58:55 +01:00
2026-03-04 08:21:20 +01:00
2026-03-04 07:57:14 +01:00
2026-03-04 07:57:14 +01:00

repo-lib

Simple Nix flake library for:

  • a shared development shell (mkDevShell)
  • an optional release command (mkRelease)
  • a starter template (template/)

Prerequisites

  • Nix with flakes enabled
  • direnv (recommended)

Use the template (new repo)

From your new project folder:

nix flake new myapp -t 'git+https://git.dgren.dev/eric/nix-flake-lib?ref=v1.0.1#default' --refresh

Use the library (existing repo)

Add this flake input:

inputs.devshell-lib.url = "git+https://git.dgren.dev/eric/nix-flake-lib?ref=v1.0.1";
inputs.devshell-lib.inputs.nixpkgs.follows = "nixpkgs";

Create your shell from mkDevShell:

env = devshell-lib.lib.mkDevShell {
  inherit system;
  extraPackages = [ ];
  tools = [ ];
  additionalHooks = { };
};

Expose it in devShells as default and run:

nix develop

Common commands

nix fmt           # format files

Optional: release command

If your flake defines:

packages.${system}.release = devshell-lib.lib.mkRelease { inherit system; };

Run releases with:

release
release patch
release minor beta
release stable
release set 1.2.3

The release script uses ./VERSION as the source of truth and creates tags like v1.2.3.

Description
Personal lib for bootstrapping repositories
Readme 16 MiB
Languages
Go 60.9%
Nix 32.7%
Shell 6.4%