From ef0cdab2483080236da1090515df9823ac6a7d74 Mon Sep 17 00:00:00 2001 From: wxt <3264117476@qq.com> Date: Sun, 22 Dec 2024 16:13:56 +0800 Subject: [PATCH] fetchgitlab: nixfmt --- pkgs/build-support/fetchgitlab/default.nix | 105 +++++++++++++++------ 1 file changed, 78 insertions(+), 27 deletions(-) diff --git a/pkgs/build-support/fetchgitlab/default.nix b/pkgs/build-support/fetchgitlab/default.nix index 749883f2365eb..62a8c88d3fe68 100644 --- a/pkgs/build-support/fetchgitlab/default.nix +++ b/pkgs/build-support/fetchgitlab/default.nix @@ -1,36 +1,87 @@ -{ lib, fetchgit, fetchzip }: +{ + lib, + fetchgit, + fetchzip, +}: lib.makeOverridable ( -# gitlab example -{ owner, repo, rev, protocol ? "https", domain ? "gitlab.com", name ? "source", group ? null -, fetchSubmodules ? false, leaveDotGit ? false -, deepClone ? false, forceFetchGit ? false -, sparseCheckout ? [] -, ... # For hash agility -} @ args: + # gitlab example + { + owner, + repo, + rev, + protocol ? "https", + domain ? "gitlab.com", + name ? "source", + group ? null, + fetchSubmodules ? false, + leaveDotGit ? false, + deepClone ? false, + forceFetchGit ? false, + sparseCheckout ? [ ], + ... # For hash agility + }@args: -let - slug = lib.concatStringsSep "/" ((lib.optional (group != null) group) ++ [ owner repo ]); - escapedSlug = lib.replaceStrings [ "." "/" ] [ "%2E" "%2F" ] slug; - escapedRev = lib.replaceStrings [ "+" "%" "/" ] [ "%2B" "%25" "%2F" ] rev; - passthruAttrs = removeAttrs args [ "protocol" "domain" "owner" "group" "repo" "rev" "fetchSubmodules" "forceFetchGit" "leaveDotGit" "deepClone" ]; + let + slug = lib.concatStringsSep "/" ( + (lib.optional (group != null) group) + ++ [ + owner + repo + ] + ); + escapedSlug = lib.replaceStrings [ "." "/" ] [ "%2E" "%2F" ] slug; + escapedRev = lib.replaceStrings [ "+" "%" "/" ] [ "%2B" "%25" "%2F" ] rev; + passthruAttrs = removeAttrs args [ + "protocol" + "domain" + "owner" + "group" + "repo" + "rev" + "fetchSubmodules" + "forceFetchGit" + "leaveDotGit" + "deepClone" + ]; - useFetchGit = fetchSubmodules || leaveDotGit || deepClone || forceFetchGit || (sparseCheckout != []); - fetcher = if useFetchGit then fetchgit else fetchzip; + useFetchGit = + fetchSubmodules || leaveDotGit || deepClone || forceFetchGit || (sparseCheckout != [ ]); + fetcher = if useFetchGit then fetchgit else fetchzip; - gitRepoUrl = "${protocol}://${domain}/${slug}.git"; + gitRepoUrl = "${protocol}://${domain}/${slug}.git"; - fetcherArgs = (if useFetchGit then { - inherit rev deepClone fetchSubmodules sparseCheckout leaveDotGit; - url = gitRepoUrl; - } else { - url = "${protocol}://${domain}/api/v4/projects/${escapedSlug}/repository/archive.tar.gz?sha=${escapedRev}"; + fetcherArgs = + ( + if useFetchGit then + { + inherit + rev + deepClone + fetchSubmodules + sparseCheckout + leaveDotGit + ; + url = gitRepoUrl; + } + else + { + url = "${protocol}://${domain}/api/v4/projects/${escapedSlug}/repository/archive.tar.gz?sha=${escapedRev}"; - passthru = { - inherit gitRepoUrl; - }; - }) // passthruAttrs // { inherit name; }; -in + passthru = { + inherit gitRepoUrl; + }; + } + ) + // passthruAttrs + // { + inherit name; + }; + in -fetcher fetcherArgs // { meta.homepage = "${protocol}://${domain}/${slug}/"; inherit rev owner repo; } + fetcher fetcherArgs + // { + meta.homepage = "${protocol}://${domain}/${slug}/"; + inherit rev owner repo; + } )