{ description = "A very basic flake"; inputs = { en = { url = "https://www.gutenberg.org/cache/epub/29765/pg29765.txt"; flake = false; }; }; outputs = { self, en, nixpkgs }: let supportedSystems = [ "x86_64-linux" "aarch64-darwin" "x86_64-darwin" ]; forAllSystems = nixpkgs.lib.genAttrs supportedSystems; nixpkgsFor = forAllSystems (system: import nixpkgs { inherit system; overlays = [ self.overlays.default ]; }); in { overlays.default = final: prev: { dict = let pname = "dict"; packageMeta = (final.lib.importTOML ./Cargo.toml).package; in final.rustPlatform.buildRustPackage { inherit pname; inherit (packageMeta) version; preUnpack = '' mkdir assets sed "1,27d;973899,$ d" ${en} > assets/en.txt ${final.dos2unix}/bin/dos2unix assets/en.txt ls -alh assets/en.txt ''; src = self; cargoLock.lockFile = ./Cargo.lock; }; }; packages = forAllSystems (system: { inherit (nixpkgsFor."${system}") dict; }); defaultPackage = forAllSystems (system: self.packages."${system}".dict); devShell = forAllSystems (system: let pkgs = nixpkgsFor."${ system}"; in pkgs.mkShell { nativeBuildInputs = [ pkgs.rustc pkgs.cargo pkgs.rustfmt pkgs.rust-analyzer pkgs.cargo-watch ]; RUST_BACKTRACE = 1; } ); }; }