Monorepo for wisp.place. A static site hosting service built on top of the AT Protocol.
wisp.place
1{
2 inputs.nixpkgs.url = "github:nixos/nixpkgs/nixpkgs-unstable";
3 inputs.nci.url = "github:90-008/nix-cargo-integration";
4 inputs.nci.inputs.nixpkgs.follows = "nixpkgs";
5 inputs.parts.url = "github:hercules-ci/flake-parts";
6 inputs.parts.inputs.nixpkgs-lib.follows = "nixpkgs";
7 inputs.fenix = {
8 url = "github:nix-community/fenix";
9 inputs.nixpkgs.follows = "nixpkgs";
10 };
11
12 outputs = inputs @ {
13 parts,
14 nci,
15 ...
16 }:
17 parts.lib.mkFlake {inherit inputs;} {
18 systems = ["x86_64-linux" "aarch64-darwin"];
19 imports = [
20 nci.flakeModule
21 ./crates.nix
22 ];
23 perSystem = {
24 pkgs,
25 config,
26 ...
27 }: let
28 crateOutputs = config.nci.outputs."wisp-cli";
29 mkRenamedPackage = name: pkg: pkgs.runCommand name {} ''
30 mkdir -p $out/bin
31 cp ${pkg}/bin/wisp-cli $out/bin/${name}
32 '';
33 in {
34 devShells.default = crateOutputs.devShell;
35 packages.default = crateOutputs.packages.release;
36 packages.wisp-cli-x86_64-linux = mkRenamedPackage "wisp-cli-x86_64-linux" crateOutputs.packages.release;
37 packages.wisp-cli-aarch64-linux = mkRenamedPackage "wisp-cli-aarch64-linux" crateOutputs.allTargets."aarch64-unknown-linux-gnu".packages.release;
38 packages.wisp-cli-x86_64-windows = mkRenamedPackage "wisp-cli-x86_64-windows.exe" crateOutputs.allTargets."x86_64-pc-windows-gnu".packages.release;
39 packages.wisp-cli-aarch64-darwin = mkRenamedPackage "wisp-cli-aarch64-darwin" crateOutputs.allTargets."aarch64-apple-darwin".packages.release;
40 packages.all = pkgs.symlinkJoin {
41 name = "wisp-cli-all";
42 paths = [
43 config.packages.wisp-cli-x86_64-linux
44 config.packages.wisp-cli-aarch64-linux
45 config.packages.wisp-cli-x86_64-windows
46 config.packages.wisp-cli-aarch64-darwin
47 ];
48 };
49 };
50 };
51}