diff --git a/default.nix b/default.nix index 85cb538..d5f20a5 100644 --- a/default.nix +++ b/default.nix @@ -1,13 +1,21 @@ -(import - ( - let - lock = builtins.fromJSON (builtins.readFile ./flake.lock); - nodeName = lock.nodes.root.inputs.flake-compat; - in - fetchTarball { - url = lock.nodes.${nodeName}.locked.url or "https://github.com/edolstra/flake-compat/archive/${lock.nodes.${nodeName}.locked.rev}.tar.gz"; - sha256 = lock.nodes.${nodeName}.locked.narHash; - } - ) - { src = ./.; } -).defaultNix +{ pkgs ? null, fenix ? null }: (args: let + pkgs = if (builtins.tryEval args.pkgs).success && args.pkgs != null + then args.pkgs + else import (import ./flake-compat.nix).inputs.nixpkgs { }; + fenix = if (builtins.tryEval args.fenix).success && args.fenix != null + then args.fenix + else import (import ./flake-compat.nix).inputs.fenix { }; +in rec { + # The `lib`, `modules`, and `overlays` names are special + lib = import ./lib { inherit pkgs; }; # functions + modules = import ./modules; # NixOS modules + overlays = import ./overlays; # nixpkgs overlays + + auditok = pkgs.callPackage ./pkgs/auditok { }; + bip39 = pkgs.callPackage ./pkgs/bip39 { }; + ffsubsync = pkgs.callPackage ./pkgs/ffsubsync { inherit auditok pysubs2; }; + my-bookmarks-pl = pkgs.callPackage ./pkgs/my-bookmarks-pl { }; + neocities-deploy = pkgs.callPackage ./pkgs/neocities-deploy { inherit fenix; }; + pysubs2 = pkgs.callPackage ./pkgs/pysubs2 { }; + subtitlecomposer = pkgs.callPackage ./pkgs/subtitlecomposer { }; +}) { inherit pkgs fenix; } diff --git a/flake-compat.nix b/flake-compat.nix new file mode 100644 index 0000000..85cb538 --- /dev/null +++ b/flake-compat.nix @@ -0,0 +1,13 @@ +(import + ( + let + lock = builtins.fromJSON (builtins.readFile ./flake.lock); + nodeName = lock.nodes.root.inputs.flake-compat; + in + fetchTarball { + url = lock.nodes.${nodeName}.locked.url or "https://github.com/edolstra/flake-compat/archive/${lock.nodes.${nodeName}.locked.rev}.tar.gz"; + sha256 = lock.nodes.${nodeName}.locked.narHash; + } + ) + { src = ./.; } +).defaultNix diff --git a/flake.lock b/flake.lock index ccf0654..6c7b24d 100644 --- a/flake.lock +++ b/flake.lock @@ -8,11 +8,11 @@ "rust-analyzer-src": "rust-analyzer-src" }, "locked": { - "lastModified": 1735886062, - "narHash": "sha256-TTI7Lt1/hvu3xuUdc2UA9jACoarf/DAKtwHYhsQ/iD8=", + "lastModified": 1736318091, + "narHash": "sha256-RkRHXZaMgOMGgkW2YmEqxxDDYRiGFbfr1JuaI0VrCKo=", "owner": "nix-community", "repo": "fenix", - "rev": "a65f3516dfcce5cf2157cc19d517b1bb87ed71b8", + "rev": "9e13860d50cbfd42e79101a516e1939c7723f093", "type": "github" }, "original": { @@ -37,11 +37,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1735685343, - "narHash": "sha256-h1CpBzdJDNtSUb5QMyfFHKHocTTky+4McgQEBQBM+xA=", + "lastModified": 1736241350, + "narHash": "sha256-CHd7yhaDigUuJyDeX0SADbTM9FXfiWaeNyY34FL1wQU=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "81934660d6e9ea54d2f0cdee821e8533b10c221a", + "rev": "8c9fd3e564728e90829ee7dbac6edc972971cd0f", "type": "github" }, "original": { @@ -54,17 +54,18 @@ "root": { "inputs": { "fenix": "fenix", + "flake-compat": "flake-compat", "nixpkgs": "nixpkgs" } }, "rust-analyzer-src": { "flake": false, "locked": { - "lastModified": 1735816508, - "narHash": "sha256-oag3BrD8UskICXnQSSjJ888rjUj/IhH9KlqJuqsqwrA=", + "lastModified": 1736266405, + "narHash": "sha256-V2FDSb8YjuquZduBRNp5niWYlWurja2yGN6Xzh5GPYk=", "owner": "rust-lang", "repo": "rust-analyzer", - "rev": "d3dd40f6360f970179ed671d042e8e0902c770ac", + "rev": "91fc0a239af4e56b84b1d3974ac0f34dcc99b895", "type": "github" }, "original": { diff --git a/flake.nix b/flake.nix index 6649cee..1acab67 100644 --- a/flake.nix +++ b/flake.nix @@ -3,6 +3,8 @@ inputs = { nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable"; flake-compat.url = "https://flakehub.com/f/edolstra/flake-compat/1.tar.gz"; + fenix.url = "github:nix-community/fenix"; + fenix.inputs.nixpkgs.follows = "nixpkgs"; }; outputs = { self @@ -26,24 +28,10 @@ modules = import ./modules; legacyPackages = forAllSystems (system: - let - pkgs = import nixpkgs { inherit system; }; - in rec { - # The `lib`, `modules`, and `overlays` names are special - lib = import ./lib { inherit pkgs; }; # functions - modules = import ./modules; # NixOS modules - overlays = import ./overlays; # nixpkgs overlays - - auditok = pkgs.callPackage ./pkgs/auditok { }; - bip39 = pkgs.callPackage ./pkgs/bip39 { }; - ffsubsync = pkgs.callPackage ./pkgs/ffsubsync { inherit auditok pysubs2; }; - my-bookmarks-pl = pkgs.callPackage ./pkgs/my-bookmarks-pl { }; - neocities-deploy = pkgs.callPackage ./pkgs/neocities-deploy { + import ./default.nix { + pkgs = import nixpkgs { inherit system; }; fenix = fenix.outputs.packages.${system}; - }; - pysubs2 = pkgs.callPackage ./pkgs/pysubs2 { }; - subtitlecomposer = pkgs.callPackage ./pkgs/subtitlecomposer { }; - }); + }); packages = forAllSystems (system: nixpkgs.lib.filterAttrs (_: v: nixpkgs.lib.isDerivation v) self.legacyPackages.${system}); }; } diff --git a/justfile b/justfile index 9471bde..c60455b 100644 --- a/justfile +++ b/justfile @@ -2,3 +2,9 @@ format: just --unstable --fmt nix-shell -p alejandra --run "alejandra ." + +flake-build pkg: + nix build .#"{{ pkg }}" + +normal-build pkg: + nix-build . -A {{ pkg }} diff --git a/pkgs/neocities-deploy/default.nix b/pkgs/neocities-deploy/default.nix index b47b24f..e93cd76 100644 --- a/pkgs/neocities-deploy/default.nix +++ b/pkgs/neocities-deploy/default.nix @@ -4,7 +4,6 @@ , fenix , }: - let toolchain = fenix.minimal.toolchain; buildRustPackage = (pkgs.makeRustPlatform { @@ -22,12 +21,12 @@ in rev = "v${version}"; hash = "sha256-Ax1xmNyt+Gymk28p9lXh+CV17rWjMBKIZtc+nthic+8="; }; - cargoHash = "sha256-R6TTB+TXA44vp+7454fu9/5bscgNao0wuskdgpA2BwY="; + cargoHash = "sha256-wdO46fRqzrWZNSoNAA5FHBckUxLtsxmc72UVtmGhJYU="; doCheck = false; meta = with lib; { description = "A command-line tool for deploying your Neocities site"; homepage = "https://github.com/kugland/neocities-deploy"; license = licenses.gpl3; - maintainers = [ pkgs.maintainers.kugland ]; + maintainers = with pkgs.maintainers; [ kugland ]; }; }