Files
my-pkgs/README.md
2026-02-06 16:13:02 +01:00

2.3 KiB

my-pkgs

A Nix flake exposing custom packages, a development shell, checks, and a nixpkgs overlay.

Packages

Package Version Description
example-a 0.1.0 Example package A
example-b 0.1.0 Example package B
pyzotero 1.6.11 Python API client for the Zotero API
pyzotero-cli 0.1.6 CLI wrapper for pyzotero -- use Zotero from the command line

Usage

Build a package

# Build the default package
nix build

# Build a specific package
nix build .#example-a
nix build .#pyzotero-cli

Run pyzotero-cli

# Run directly
nix run .#pyzotero-cli -- --help

# Or build and use
nix build .#pyzotero-cli
./result/bin/zot --help

Use the overlay

Add this flake as an input and apply the overlay to your nixpkgs:

{
  inputs = {
    nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable";
    my-pkgs.url = "";
  };

  outputs = { nixpkgs, my-pkgs, ... }: {
    # Example: use in a NixOS configuration
    nixosConfigurations.myhost = nixpkgs.lib.nixosSystem {
      modules = [
        {
          nixpkgs.overlays = [ my-pkgs.overlays.default ];
          environment.systemPackages = [ pkgs.pyzotero-cli ];
        }
      ];
    };
  };
}

Enter the development shell

nix develop

The dev shell provides nixfmt, nil (Nix LSP), and nix-tree.

Checks

Formatting is enforced via nixfmt-rfc-style:

# Run all checks
nix flake check

# Format all files
nixfmt flake.nix pkgs checks devshells overlays

Repository structure

flake.nix              # Main flake entry point
flake.lock             # Pinned flake inputs
pkgs/
  default.nix          # Package set aggregator
  example-a/default.nix
  example-b/default.nix
  pyzotero/default.nix
  pyzotero-cli/default.nix
checks/
  default.nix          # Formatting check
devshells/
  default.nix          # Development shell
overlays/
  default.nix          # Nixpkgs overlay

License

Packages carry their own licenses (see individual meta.license attributes).