{ description = "Mpris control utility that keeps track of the last playing player"; inputs = { nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable"; }; outputs = { self, nixpkgs }: let cargoToml = (builtins.fromTOML (builtins.readFile ./Cargo.toml)); supportedSystems = ["x86_64-linux"]; forAllSystems = f: nixpkgs.lib.genAttrs supportedSystems (system: f system); in { overlay = final: prev: { "${cargoToml.package.name}" = final.callPackage ./. {}; }; packages = forAllSystems (system: let pkgs = import nixpkgs { inherit system; overlays = [ self.overlay ]; }; in { "${cargoToml.package.name}" = pkgs."${cargoToml.package.name}"; }); defaultPackage = forAllSystems (system: self.packages."${system}"."${cargoToml.package.name}" ); devShell = forAllSystems (system: let pkgs = import nixpkgs { inherit system; overlays = [ self.overlay ]; }; in pkgs.mkShell { inputsFrom = [ pkgs."${cargoToml.package.name}" ]; buildInputs = [ pkgs.rustfmt pkgs.nixpkgs-fmt ]; }); }; }