funflow-nix: Utility functions for using funflow with nix

[ bsd3, library, unclassified ] [ Propose Tags ]

This library provides functions to create flows which run commands in environments created by nix commands. It is designed to be like the docker integration but the environments are created by nix rather than in a container.


[Skip to Readme]

Modules

[Index]

Flags

Manual Flags

NameDescriptionDefault
example

Build the example executable

Disabled

Use -f <flag> to enable a flag, or -f -<flag> to disable that flag. More info

Downloads

Maintainer's Corner

Package maintainers

For package maintainers and hackage trustees

Candidates

Versions [RSS] 0.1.0.0
Change log ChangeLog.md
Dependencies base (>=4.10 && <5), funflow (>=1.4), funflow-nix, modern-uri, path, path-io, text [details]
License BSD-3-Clause
Author Matthew Pickering
Maintainer matthewtpickering@gmail.com
Source repo head: git clone https://github.com/mpickering/funflow-nix.git
Uploaded by mpickering at 2018-11-17T08:53:54Z
Distributions
Executables example
Downloads 667 total (7 in the last 30 days)
Rating (no votes yet) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Docs uploaded by user [build log]
All reported builds failed as of 2018-11-17 [all 1 reports]

Readme for funflow-nix-0.1.0.0

[back to package description]

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"]))