Rough structure of the program
ca-store is planned to work as follows: 1) A monad (currently IO) will generate the configuration, read the command line, parse the config files, and create the environment the program should run in. 2) This environment will be passed to the main monad (currently Program) to do the work. Currently everything will be directly coded with little to no abstraction. Once ca-store is up and running, we will begin regaining purity by pulling major features into small testable units.
This commit is contained in:
parent
7f2d095d2c
commit
c504f85a2d
13 changed files with 434 additions and 0 deletions
27
flake.nix
Normal file
27
flake.nix
Normal file
|
|
@ -0,0 +1,27 @@
|
|||
{
|
||||
description = "ca-store: A simple content-addressed store";
|
||||
|
||||
inputs.nixpkgs.url = "github:NixOS/nixpkgs/nixos-25.05";
|
||||
|
||||
outputs = { self, nixpkgs }:
|
||||
let
|
||||
forAllSystems = nixpkgs.lib.genAttrs [ "x86_64-linux" ];
|
||||
in {
|
||||
packages = forAllSystems (system:
|
||||
let
|
||||
np = import nixpkgs {
|
||||
inherit system;
|
||||
overlays = [ self.overlays.default ];
|
||||
};
|
||||
in { ca-store = np.ca-store; default = np.ca-store; }
|
||||
);
|
||||
|
||||
overlays.default = final: prev: {
|
||||
ca-store = final.haskellPackages.developPackage {
|
||||
root = ./.;
|
||||
name = "ca-store";
|
||||
withHoogle = false;
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue