Something went wrong. Try again.
relay filter/appview bootstrap
Something went wrong. Try again.
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166{ description = "Prism - ATProto AppView service for gmstn";
inputs = { nixpkgs.url = "github:nixos/nixpkgs/nixpkgs-unstable"; rust-overlay = { url = "github:oxalica/rust-overlay"; inputs.nixpkgs.follows = "nixpkgs"; }; crane.url = "github:ipetkov/crane"; };
outputs = { self, nixpkgs, rust-overlay, crane, }: let supportedSystems = [ "x86_64-linux" "aarch64-linux" "x86_64-darwin" "aarch64-darwin" ]; forAllSystems = nixpkgs.lib.genAttrs supportedSystems;
mkSystem = system: let pkgs = import nixpkgs { inherit system; overlays = [ rust-overlay.overlays.default ]; };
rustToolchain = pkgs.rust-bin.stable.latest.default; craneLib = (crane.mkLib pkgs).overrideToolchain rustToolchain;
inherit (craneLib.crateNameFromCargoToml { src = ./.; }) pname version;
extraFilter = path: _type: (builtins.match ".*\\.sqlx.*" path != null) || (builtins.match ".*migrations.*" path != null); src = pkgs.lib.cleanSourceWith { src = ./.; filter = path: type: (extraFilter path type) || (craneLib.filterCargoSources path type); };
commonArgs = { inherit src pname version; strictDeps = true;
buildInputs = [ pkgs.openssl ] ++ pkgs.lib.optionals pkgs.stdenv.isDarwin [ pkgs.apple-sdk ];
nativeBuildInputs = [ pkgs.pkg-config ];
SQLX_OFFLINE = "true"; };
cargoArtifacts = craneLib.buildDepsOnly commonArgs;
prism = craneLib.buildPackage ( commonArgs // { inherit cargoArtifacts; __darwinAllowLocalNetworking = true; } ); in { inherit pkgs pname version rustToolchain craneLib commonArgs cargoArtifacts prism ; }; in { packages = forAllSystems ( system: let s = mkSystem system; in { prism = s.prism; default = s.prism; } );
checks = forAllSystems ( system: let s = mkSystem system; in { inherit (s) prism;
prism-clippy = s.craneLib.cargoClippy ( s.commonArgs // { inherit (s) cargoArtifacts; cargoClippyExtraArgs = "--all-targets -- --deny warnings"; } );
prism-fmt = s.craneLib.cargoFmt { inherit (s) pname; src = s.commonArgs.src; };
prism-nextest = s.craneLib.cargoNextest ( s.commonArgs // { inherit (s) cargoArtifacts; __darwinAllowLocalNetworking = true; } ); } );
devShells = forAllSystems ( system: let s = mkSystem system; devToolchain = s.rustToolchain.override { extensions = [ "rust-src" "rust-analyzer" ]; }; in { default = s.pkgs.mkShell { buildInputs = [ devToolchain s.pkgs.pkg-config s.pkgs.openssl ] ++ s.pkgs.lib.optionals s.pkgs.stdenv.isDarwin [ s.pkgs.apple-sdk ];
SQLX_OFFLINE = "true"; }; } );
overlays.default = final: _prev: { prism = self.packages.${final.stdenv.hostPlatform.system}.prism; }; };}