{ description = "A Nix-flake-based Shell development environment"; inputs = { nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable"; }; outputs = { self, ... }@inputs: let supportedSystems = [ "x86_64-linux" "aarch64-linux" "x86_64-darwin" "aarch64-darwin" ]; forEachSupportedSystem = f: inputs.nixpkgs.lib.genAttrs supportedSystems ( system: f { pkgs = import inputs.nixpkgs { inherit system; }; } ); in { devShells = forEachSupportedSystem ( { pkgs }: { default = pkgs.mkShellNoCC { packages = with pkgs; [ (pkgs.wrapFish { pluginPkgs = with fishPlugins; [ fishtape_3 ]; completionDirs = [ ]; functionDirs = [ ./functions ]; confDirs = [ ]; }) script-directory # for comparison purposes ]; }; } ); packages = forEachSupportedSystem ( { pkgs }: rec { scriptura = pkgs.callPackage ./default.nix { inherit (pkgs.fishPlugins) buildFishPlugin fishtape_3; }; default = scriptura; } ); homeModules = { default = self.homeModules.scriptura; scriptura = import ./nix/home-manager; }; overlays = { default = final: prev: { scriptura = self.packages.${prev.system}.scriptura; }; }; }; }