examples: add readme for packages examples

This commit is contained in:
DavHau 2024-01-02 16:19:58 +07:00 committed by mergify[bot]
parent 62f9486535
commit 0f2d06b43e
2 changed files with 38 additions and 1 deletions

View File

@ -0,0 +1,34 @@
# package examples
This directory contains examples for modules defining packages.
All modules can be used as templates to create new packages.
Each package module is defined by a directory containing a `default.nix`.
## How to use
All examples are self contained via their own `flake.nix`.
To use multiple packages in a repository, keep only each packages' `default.nix` and put them under a top-level `flake.nix` instead, as shown in the `repo examples` in [/examples](../../examples).
## Usage example
For example, in order to initialize a php-package from `packages/single-language/php-package/`:
```shellSession
# create new single package repo for php
$ mkdir my-dream2nix-package
$ cd my-dream2nix-package
$ nix flake init -t github:nix-community/dream2nix#templates.php-package
wrote: /tmp/my-dream2nix-package/flake.nix
wrote: /tmp/my-dream2nix-package/default.nix
# git add (in case git is used)
git add .
# interact with the package
$ nix flake show
[...]
$ nix build
[...]
```

View File

@ -20,7 +20,10 @@
dream2nixFlake = import ../../. {};
packageCategories = readDir ../../examples/packages;
packageCategories =
lib.filterAttrs
(name: type: type == "directory")
(readDir ../../examples/packages);
readExamples = dirName: let
examplesPath = ../../examples/packages + "/${dirName}";