@hackage funflow-nix0.1.0.0
Utility functions for using funflow with nix
Categories
License
BSD-3-Clause
Maintainer
matthewtpickering@gmail.com
Links
Versions
- 0.1.0.0 Sat, 17 Nov 2018
funflow-nix provides functions for creating flows which run in a nix
environment.
The library exposes the NixConfig data type which allows you to specify the
environment and command to run. This is then turned into a flow using nix.
A complete example can be seen in examples/Simple.hs.
We can pin the version of nixpkgs we want to use by specifying a tarball to use as the source.
tarballSource :: NixpkgsSource
tarballSource = NixpkgsTarball [uri|https://github.com/NixOS/nixpkgs/archive/a19357241973538212b5cb435dde84ad25cbe337.tar.gz|]
nixConfig :: Environment -> NixConfig
nixConfig senv =
NixShellConfig {
environment = senv
, command = "jq"
, args = [ParamText "--version"]
, env = []
, stdout = StdOutCapture
, nixpkgsSource = tarballSource
}
Once the config has been specified. It can be turned into a flow by using the
nix function.
jqVersionPkg :: SimpleFlow () String
jqVersionPkg = readString_ <<< nix (\() -> nixConfig (PackageList ["jq"]))