diff options
| author | seth <[email protected]> | 2024-07-04 15:55:29 -0400 |
|---|---|---|
| committer | seth <[email protected]> | 2024-07-04 16:11:35 -0400 |
| commit | 3231025b71b827be26daaf3f082b0be48ab66c2e (patch) | |
| tree | 152ac0a23982032a77047571c34aeaef7608a931 | |
| parent | 098ff8c13c5b144079917f9da81cf6503056872b (diff) | |
nix: alejandra -> nixfmt-rfc-style
| -rw-r--r-- | default.nix | 24 | ||||
| -rw-r--r-- | flake.nix | 100 | ||||
| -rw-r--r-- | nix/fetchTree.nix | 215 | ||||
| -rw-r--r-- | nix/package.nix | 8 | ||||
| -rw-r--r-- | shell.nix | 41 |
5 files changed, 169 insertions, 219 deletions
diff --git a/default.nix b/default.nix index 580f989..714dd75 100644 --- a/default.nix +++ b/default.nix @@ -3,15 +3,15 @@ let fetchTree = import ./nix/fetchTree.nix; flakeSources = builtins.mapAttrs (_: node: fetchTree node.locked) lock.nodes; in - { - pkgs ? - import sources.nixpkgs { - inherit system; - config = {}; - overlays = []; - }, - system ? builtins.currentSystem, - sources ? flakeSources, - }: { - website = pkgs.callPackage ./nix/package.nix {}; - } +{ + pkgs ? import sources.nixpkgs { + inherit system; + config = { }; + overlays = [ ]; + }, + system ? builtins.currentSystem, + sources ? flakeSources, +}: +{ + website = pkgs.callPackage ./nix/package.nix { }; +} @@ -6,57 +6,59 @@ flake-checks.url = "github:getchoo/flake-checks"; }; - outputs = { - self, - nixpkgs, - flake-checks, - }: let - systems = [ - "x86_64-linux" - "aarch64-linux" - "x86_64-darwin" - "aarch64-darwin" - ]; + outputs = + { + self, + nixpkgs, + flake-checks, + }: + let + systems = [ + "x86_64-linux" + "aarch64-linux" + "x86_64-darwin" + "aarch64-darwin" + ]; - forAllSystems = fn: nixpkgs.lib.genAttrs systems (system: fn nixpkgs.legacyPackages.${system}); - in { - checks = forAllSystems (pkgs: let - flake-checks' = flake-checks.lib.mkChecks { - root = ./.; - inherit pkgs; - }; - in { - inherit - (flake-checks') - actionlint - alejandra - deadnix - statix - ; - }); + forAllSystems = fn: nixpkgs.lib.genAttrs systems (system: fn nixpkgs.legacyPackages.${system}); + in + { + checks = forAllSystems ( + pkgs: + let + flake-checks' = flake-checks.lib.mkChecks { + root = ./.; + inherit pkgs; + }; + in + { + inherit (flake-checks') + actionlint + alejandra + deadnix + statix + ; + } + ); - devShells = forAllSystems ({ - pkgs, - system, - ... - }: { - default = import ./shell.nix { - inherit pkgs system; - formatter = self.formatter.${system}; - }; - }); + devShells = forAllSystems ( + { pkgs, system, ... }: + { + default = import ./shell.nix { + inherit pkgs system; + formatter = self.formatter.${system}; + }; + } + ); - formatter = forAllSystems (pkgs: pkgs.alejandra); + formatter = forAllSystems (pkgs: pkgs.nixfmt-rfc-style); - packages = forAllSystems ({ - pkgs, - system, - ... - }: let - pkgs' = import ./. { - inherit pkgs system; - }; - in - pkgs' // {default = pkgs'.website;}); - }; + packages = forAllSystems ( + { pkgs, system, ... }: + let + pkgs' = import ./. { inherit pkgs system; }; + in + pkgs' // { default = pkgs'.website; } + ); + }; } diff --git a/nix/fetchTree.nix b/nix/fetchTree.nix index 26de85b..67c41eb 100644 --- a/nix/fetchTree.nix +++ b/nix/fetchTree.nix @@ -21,152 +21,103 @@ ## OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION ## WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. let - formatSecondsSinceEpoch = t: let - rem = x: y: x - x / y * y; - days = t / 86400; - secondsInDay = rem t 86400; - hours = secondsInDay / 3600; - minutes = (rem secondsInDay 3600) / 60; - seconds = rem t 60; + formatSecondsSinceEpoch = + t: + let + rem = x: y: x - x / y * y; + days = t / 86400; + secondsInDay = rem t 86400; + hours = secondsInDay / 3600; + minutes = (rem secondsInDay 3600) / 60; + seconds = rem t 60; - # Courtesy of https://stackoverflow.com/a/32158604. - z = days + 719468; - era = - ( - if z >= 0 - then z - else z - 146096 - ) - / 146097; - doe = z - era * 146097; - yoe = (doe - doe / 1460 + doe / 36524 - doe / 146096) / 365; - y = yoe + era * 400; - doy = doe - (365 * yoe + yoe / 4 - yoe / 100); - mp = (5 * doy + 2) / 153; - d = doy - (153 * mp + 2) / 5 + 1; - m = - mp - + ( - if mp < 10 - then 3 - else -9 - ); - y' = - y - + ( - if m <= 2 - then 1 - else 0 - ); + # Courtesy of https://stackoverflow.com/a/32158604. + z = days + 719468; + era = (if z >= 0 then z else z - 146096) / 146097; + doe = z - era * 146097; + yoe = (doe - doe / 1460 + doe / 36524 - doe / 146096) / 365; + y = yoe + era * 400; + doy = doe - (365 * yoe + yoe / 4 - yoe / 100); + mp = (5 * doy + 2) / 153; + d = doy - (153 * mp + 2) / 5 + 1; + m = mp + (if mp < 10 then 3 else -9); + y' = y + (if m <= 2 then 1 else 0); - pad = s: - if builtins.stringLength s < 2 - then "0" + s - else s; - in "${toString y'}${pad (toString m)}${pad (toString d)}${pad (toString hours)}${pad (toString minutes)}${pad (toString seconds)}"; + pad = s: if builtins.stringLength s < 2 then "0" + s else s; + in + "${toString y'}${pad (toString m)}${pad (toString d)}${pad (toString hours)}${pad (toString minutes)}${pad (toString seconds)}"; - fetchTree = info: - if info.type == "github" - then { - outPath = - fetchTarball - ( - {url = "https://api.${info.host or "github.com"}/repos/${info.owner}/${info.repo}/tarball/${info.rev}";} - // ( - if info ? narHash - then {sha256 = info.narHash;} - else {} - ) + fetchTree = + info: + if info.type == "github" then + { + outPath = fetchTarball ( + { + url = "https://api.${info.host or "github.com"}/repos/${info.owner}/${info.repo}/tarball/${info.rev}"; + } + // (if info ? narHash then { sha256 = info.narHash; } else { }) ); - inherit (info) rev lastModified narHash; - shortRev = builtins.substring 0 7 info.rev; - lastModifiedDate = formatSecondsSinceEpoch info.lastModified; - } - else if info.type == "git" - then + inherit (info) rev lastModified narHash; + shortRev = builtins.substring 0 7 info.rev; + lastModifiedDate = formatSecondsSinceEpoch info.lastModified; + } + else if info.type == "git" then { - outPath = - builtins.fetchGit - ( - {inherit (info) url;} - // ( - if info ? rev - then {inherit (info) rev;} - else {} - ) - // ( - if info ? ref - then {inherit (info) ref;} - else {} - ) - // ( - if info ? submodules - then {inherit (info) submodules;} - else {} - ) - ); + outPath = builtins.fetchGit ( + { + inherit (info) url; + } + // (if info ? rev then { inherit (info) rev; } else { }) + // (if info ? ref then { inherit (info) ref; } else { }) + // (if info ? submodules then { inherit (info) submodules; } else { }) + ); inherit (info) lastModified narHash; lastModifiedDate = formatSecondsSinceEpoch info.lastModified; } // ( - if info ? rev - then { - inherit (info) rev; - shortRev = builtins.substring 0 7 info.rev; - } - else { - } + if info ? rev then + { + inherit (info) rev; + shortRev = builtins.substring 0 7 info.rev; + } + else + { } ) - else if info.type == "path" - then { - outPath = builtins.path {inherit (info) path;}; - inherit (info) narHash; - } - else if info.type == "tarball" - then { - outPath = - fetchTarball - ( - {inherit (info) url;} - // ( - if info ? narHash - then {sha256 = info.narHash;} - else {} - ) + else if info.type == "path" then + { + outPath = builtins.path { inherit (info) path; }; + inherit (info) narHash; + } + else if info.type == "tarball" then + { + outPath = fetchTarball ( + { inherit (info) url; } // (if info ? narHash then { sha256 = info.narHash; } else { }) ); - } - else if info.type == "gitlab" - then { - inherit (info) rev narHash lastModified; - outPath = - fetchTarball - ( - {url = "https://${info.host or "gitlab.com"}/api/v4/projects/${info.owner}%2F${info.repo}/repository/archive.tar.gz?sha=${info.rev}";} - // ( - if info ? narHash - then {sha256 = info.narHash;} - else {} - ) + } + else if info.type == "gitlab" then + { + inherit (info) rev narHash lastModified; + outPath = fetchTarball ( + { + url = "https://${info.host or "gitlab.com"}/api/v4/projects/${info.owner}%2F${info.repo}/repository/archive.tar.gz?sha=${info.rev}"; + } + // (if info ? narHash then { sha256 = info.narHash; } else { }) ); - shortRev = builtins.substring 0 7 info.rev; - } - else if info.type == "sourcehut" - then { - inherit (info) rev narHash lastModified; - outPath = - fetchTarball - ( - {url = "https://${info.host or "git.sr.ht"}/${info.owner}/${info.repo}/archive/${info.rev}.tar.gz";} - // ( - if info ? narHash - then {sha256 = info.narHash;} - else {} - ) + shortRev = builtins.substring 0 7 info.rev; + } + else if info.type == "sourcehut" then + { + inherit (info) rev narHash lastModified; + outPath = fetchTarball ( + { + url = "https://${info.host or "git.sr.ht"}/${info.owner}/${info.repo}/archive/${info.rev}.tar.gz"; + } + // (if info ? narHash then { sha256 = info.narHash; } else { }) ); - shortRev = builtins.substring 0 7 info.rev; - } + shortRev = builtins.substring 0 7 info.rev; + } else # FIXME: add Mercurial, tarball inputs. throw "flake input has unsupported input type '${info.type}'"; in - fetchTree +fetchTree diff --git a/nix/package.nix b/nix/package.nix index 997bff3..a875712 100644 --- a/nix/package.nix +++ b/nix/package.nix @@ -18,9 +18,7 @@ stdenvNoCC.mkDerivation { ]; }; - nativeBuildInputs = [ - zola - ]; + nativeBuildInputs = [ zola ]; dontConfigure = true; doCheck = false; @@ -40,7 +38,7 @@ stdenvNoCC.mkDerivation { passthru = { serve = writeShellApplication { name = "serve"; - runtimeInputs = [zola]; + runtimeInputs = [ zola ]; text = '' zola serve @@ -51,6 +49,6 @@ stdenvNoCC.mkDerivation { meta = { homepage = "https://github.com/getchoo/website"; license = lib.licenses.mit; - maintainers = with lib.maintainers; [getchoo]; + maintainers = with lib.maintainers; [ getchoo ]; }; } @@ -3,25 +3,24 @@ let fetchTree = import ./nix/fetchTree.nix; flakeSources = builtins.mapAttrs (_: node: fetchTree node.locked) lock.nodes; in - { - pkgs ? - import sources.nixpkgs { - inherit system; - config = {}; - overlays = []; - }, - system ? builtins.currentSystem, - sources ? flakeSources, - formatter ? pkgs.alejandra, - }: - pkgs.mkShellNoCC { - packages = [ - pkgs.zola +{ + pkgs ? import sources.nixpkgs { + inherit system; + config = { }; + overlays = [ ]; + }, + system ? builtins.currentSystem, + sources ? flakeSources, + formatter ? pkgs.nixfmt-rfc-style, +}: +pkgs.mkShellNoCC { + packages = [ + pkgs.zola - # linters + formatters - formatter - pkgs.actionlint - pkgs.nodePackages.alex - pkgs.nodePackages.prettier - ]; - } + # linters + formatters + formatter + pkgs.actionlint + pkgs.nodePackages.alex + pkgs.nodePackages.prettier + ]; +} |
