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}