Command-line and Emacs Calendar Client
1{ 2 inputs = { 3 nixpkgs.url = "github:nixos/nixpkgs"; 4 # https://github.com/tweag/opam-nix/issues/117#issuecomment-2781330570 5 opam-nix.url = "github:RyanGibb/opam-nix/timere"; 6 flake-utils.url = "github:numtide/flake-utils"; 7 # we pin opam-nix's nixpkgs to follow the flakes, avoiding using two different instances 8 opam-nix.inputs.nixpkgs.follows = "nixpkgs"; 9 # deduplicate flakes 10 opam-nix.inputs.flake-utils.follows = "flake-utils"; 11 }; 12 outputs = { self, nixpkgs, flake-utils, opam-nix, ... }@inputs: 13 flake-utils.lib.eachDefaultSystem (system: 14 let 15 package = "caledonia"; 16 pkgs = nixpkgs.legacyPackages.${system}; 17 opam-nix-lib = opam-nix.lib.${system}; 18 devPackagesQuery = { 19 ocaml-lsp-server = "*"; 20 ocamlformat = "*"; 21 utop = "*"; 22 }; 23 query = { 24 ocaml-base-compiler = "*"; 25 }; 26 scope = 27 opam-nix-lib.buildOpamProject' { } ./. (query // devPackagesQuery); 28 in { 29 packages.default = scope.${package}; 30 defaultPackage = scope.${package}; 31 32 devShells.default = let 33 devPackages = builtins.attrValues 34 (pkgs.lib.getAttrs (builtins.attrNames devPackagesQuery) scope); 35 in pkgs.mkShell { 36 inputsFrom = [ scope.${package} ]; 37 buildInputs = devPackages; 38 }; 39 }); 40}