Automatically spin up and spin down local daemons.
Gargoyle is a framework for managing daemons from Haskell. In the current release the only requirement is that the daemon be able to communicate over a Unix domain socket. See gargoyle-postgresql for a fully worked out example.
To use Gargoyle the client must:
Define a value of the
Gargoyletype which specifies how to administer the daemon.Create an executable whose
mainisgargoyleMain. The name of this executable should match the executable name specified in the_gargoyle_execfield of theGargoyle.The client will run their code with
withGargoyleto gain access to the daemon.
gargoyle
Gargoyle is a framework for managing daemons from Haskell. Currently, the only requirement is that the daemon be able to communicate over a Unix domain socket. See gargoyle-postgresql for an example that uses gargoyle to manage postgresql.
To use Gargoyle the client must:
- Define a value of the 'Gargoyle' type which specifies how to administer the daemon.
- Create an executable whose
mainisgargoyleMain. The name of this executable should match the executable name specified in the_gargoyle_execfield of theGargoyle. - The client will run their code with
withGargoyleto gain access to the daemon.
Importing into Haskell package set
haskellPackages.override {
overrides = self: super:
let gargoylePkgs = import ./path/to/gargoyle-repo { haskellPackages = self; };
in gargoylePkgs // {
# .. your overrides
};
}
By default gargoyle-postgresql-nix will use the postgresql of the pkgs used by your haskellPackages. To override this, pass postgresql by changing the above line to look more like
gargoylePkgs = import ./path/to/gargoyle-repo { haskellPackages = self; postgresql = myCustomVersion; }
Hacking
Do something like this:
nix-shell -A gargoyle-postgresql.env --run 'cd gargoyle-postgresql && cabal new-repl'