qutebrowser profile manager

drop flake-utils dependency

Changed files
+65 -87
-34
flake.lock
··· 1 { 2 "nodes": { 3 - "flake-utils": { 4 - "inputs": { 5 - "systems": "systems" 6 - }, 7 - "locked": { 8 - "lastModified": 1731533236, 9 - "narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=", 10 - "owner": "numtide", 11 - "repo": "flake-utils", 12 - "rev": "11707dc2f618dd54ca8739b309ec4fc024de578b", 13 - "type": "github" 14 - }, 15 - "original": { 16 - "owner": "numtide", 17 - "repo": "flake-utils", 18 - "type": "github" 19 - } 20 - }, 21 "nixpkgs": { 22 "locked": { 23 "lastModified": 1752950548, ··· 56 }, 57 "root": { 58 "inputs": { 59 - "flake-utils": "flake-utils", 60 "nixpkgs": "nixpkgs", 61 "pyproject-nix": "pyproject-nix" 62 - } 63 - }, 64 - "systems": { 65 - "locked": { 66 - "lastModified": 1681028828, 67 - "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", 68 - "owner": "nix-systems", 69 - "repo": "default", 70 - "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", 71 - "type": "github" 72 - }, 73 - "original": { 74 - "owner": "nix-systems", 75 - "repo": "default", 76 - "type": "github" 77 } 78 } 79 },
··· 1 { 2 "nodes": { 3 "nixpkgs": { 4 "locked": { 5 "lastModified": 1752950548, ··· 38 }, 39 "root": { 40 "inputs": { 41 "nixpkgs": "nixpkgs", 42 "pyproject-nix": "pyproject-nix" 43 } 44 } 45 },
+65 -53
flake.nix
··· 4 inputs.nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable"; 5 inputs.pyproject-nix.url = "github:nix-community/pyproject.nix"; 6 inputs.pyproject-nix.inputs.nixpkgs.follows = "nixpkgs"; 7 - inputs.flake-utils.url = "github:numtide/flake-utils"; 8 9 outputs = 10 { 11 self, 12 nixpkgs, 13 pyproject-nix, 14 - flake-utils, 15 }: 16 - flake-utils.lib.eachDefaultSystem ( 17 - system: 18 - let 19 - pkgs = nixpkgs.legacyPackages.${system}; 20 - pyproject = pyproject-nix.lib.project.loadPyproject { projectRoot = ./.; }; 21 - python = pkgs.python3; 22 - pyprojectPackage = 23 - args: 24 - python.pkgs.buildPythonApplication ( 25 - args // pyproject.renderers.buildPythonPackage { inherit python; } 26 - ); 27 - pyprojectEnv = 28 - extraPackages: 29 - python.withPackages (pyproject.renderers.withPackages { inherit python extraPackages; }); 30 - in 31 - { 32 - packages.qbpm = pyprojectPackage { 33 - nativeBuildInputs = [ 34 - pkgs.scdoc 35 - pkgs.installShellFiles 36 - ]; 37 - nativeCheckInputs = [ python.pkgs.pytestCheckHook ]; 38 - postInstallCheck = "$out/bin/qbpm --help"; 39 - postInstall = '' 40 - _QBPM_COMPLETE=bash_source $out/bin/qbpm > completions/qbpm.bash 41 - _QBPM_COMPLETE=zsh_source $out/bin/qbpm > completions/qbpm.zsh 42 - installShellCompletion completions/qbpm.{bash,zsh,fish} 43 - scdoc < qbpm.1.scd > qbpm.1 44 - installManPage qbpm.1 45 - ''; 46 47 - meta = { 48 - homepage = "https://github.com/pvsr/qbpm"; 49 - changelog = "https://github.com/pvsr/qbpm/blob/main/CHANGELOG.md"; 50 - description = "A profile manager for qutebrowser"; 51 - license = pkgs.lib.licenses.gpl3Plus; 52 - }; 53 }; 54 - packages.default = self.packages.${system}.qbpm; 55 - apps.qbpm = flake-utils.lib.mkApp { drv = self.packages.${system}.qbpm; }; 56 - apps.default = self.apps.${system}.qbpm; 57 58 - devShells.default = pkgs.mkShell { 59 packages = [ 60 pkgs.ruff 61 - (pyprojectEnv ( 62 - ps: with ps; [ 63 - flit 64 - pytest 65 - mypy 66 - pylsp-mypy 67 - ] 68 )) 69 ]; 70 }; 71 72 - formatter = pkgs.nixfmt-tree.override { 73 runtimeInputs = [ pkgs.ruff ]; 74 settings = { 75 tree-root-file = "flake.nix"; ··· 79 includes = [ "*.py" ]; 80 }; 81 }; 82 - }; 83 - } 84 - ); 85 }
··· 4 inputs.nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable"; 5 inputs.pyproject-nix.url = "github:nix-community/pyproject.nix"; 6 inputs.pyproject-nix.inputs.nixpkgs.follows = "nixpkgs"; 7 8 outputs = 9 { 10 self, 11 nixpkgs, 12 pyproject-nix, 13 }: 14 + let 15 + pyproject = pyproject-nix.lib.project.loadPyproject { projectRoot = ./.; }; 16 + forAllSystems = 17 + mkOutputs: 18 + nixpkgs.lib.genAttrs [ 19 + "aarch64-linux" 20 + "aarch64-darwin" 21 + "x86_64-darwin" 22 + "x86_64-linux" 23 + ] (system: mkOutputs nixpkgs.legacyPackages.${system}); 24 + in 25 + { 26 + packages = forAllSystems (pkgs: { 27 + qbpm = pkgs.python3.pkgs.buildPythonApplication ( 28 + pyproject.renderers.buildPythonPackage { python = pkgs.python3; } 29 + // { 30 + nativeBuildInputs = [ 31 + pkgs.scdoc 32 + pkgs.installShellFiles 33 + ]; 34 + nativeCheckInputs = [ pkgs.python3.pkgs.pytestCheckHook ]; 35 + postInstallCheck = "$out/bin/qbpm --help"; 36 + postInstall = '' 37 + _QBPM_COMPLETE=bash_source $out/bin/qbpm > completions/qbpm.bash 38 + _QBPM_COMPLETE=zsh_source $out/bin/qbpm > completions/qbpm.zsh 39 + installShellCompletion completions/qbpm.{bash,zsh,fish} 40 + scdoc < qbpm.1.scd > qbpm.1 41 + installManPage qbpm.1 42 + ''; 43 44 + meta = { 45 + homepage = "https://github.com/pvsr/qbpm"; 46 + changelog = "https://github.com/pvsr/qbpm/blob/main/CHANGELOG.md"; 47 + description = "A profile manager for qutebrowser"; 48 + license = pkgs.lib.licenses.gpl3Plus; 49 + }; 50 + } 51 + ); 52 + default = self.packages.${pkgs.system}.qbpm; 53 + }); 54 + 55 + apps = forAllSystems (pkgs: { 56 + qbpm = { 57 + type = "app"; 58 + program = pkgs.lib.getExe self.packages.${pkgs.system}.qbpm; 59 }; 60 + default = self.apps.${pkgs.system}.qbpm; 61 + }); 62 63 + devShells = forAllSystems (pkgs: { 64 + default = pkgs.mkShell { 65 packages = [ 66 pkgs.ruff 67 + (pkgs.python3.withPackages ( 68 + pyproject.renderers.withPackages { 69 + python = pkgs.python3; 70 + extraPackages = ps: [ 71 + ps.flit 72 + ps.pytest 73 + ps.mypy 74 + ps.pylsp-mypy 75 + ]; 76 + } 77 )) 78 ]; 79 }; 80 + }); 81 82 + formatter = forAllSystems ( 83 + pkgs: 84 + pkgs.nixfmt-tree.override { 85 runtimeInputs = [ pkgs.ruff ]; 86 settings = { 87 tree-root-file = "flake.nix"; ··· 91 includes = [ "*.py" ]; 92 }; 93 }; 94 + } 95 + ); 96 + }; 97 }