From 49548431d7d7003c044a289cbbc71eeaaf4e40d0 Mon Sep 17 00:00:00 2001 From: staticdev Date: Wed, 27 Aug 2025 18:46:51 +0200 Subject: [PATCH] fetchNextcloudApp: refactor for testing --- .../fetchnextcloudapp/default.nix | 59 +++++++++---------- .../build-support/fetchnextcloudapp/tests.nix | 8 +-- 2 files changed, 31 insertions(+), 36 deletions(-) diff --git a/pkgs/build-support/fetchnextcloudapp/default.nix b/pkgs/build-support/fetchnextcloudapp/default.nix index ab145892e3ab..138ac8fb10cf 100644 --- a/pkgs/build-support/fetchnextcloudapp/default.nix +++ b/pkgs/build-support/fetchnextcloudapp/default.nix @@ -6,6 +6,8 @@ ... }: { + name ? + if appName == null || appVersion == null then null else "nextcloud-app-${appName}-${appVersion}", url, hash ? "", sha256 ? "", @@ -15,41 +17,34 @@ license, patches ? [ ], description ? null, + longDescription ? description, homepage ? null, maintainers ? [ ], teams ? [ ], unpack ? false, # whether to use fetchzip rather than fetchurl }: -applyPatches ( - { - inherit patches; - src = (if unpack then fetchzip else fetchurl) { - inherit - url - hash - sha256 - sha512 - ; - meta = { - license = lib.licenses.${license}; - longDescription = description; - inherit homepage maintainers teams; - } - // lib.optionalAttrs (description != null) { - longDescription = description; - } - // lib.optionalAttrs (homepage != null) { - inherit homepage; - }; +applyPatches { + ${if name == null then null else "name"} = name; + inherit patches; + + src = (if unpack then fetchzip else fetchurl) { + inherit url; + ${if hash == "" then null else "hash"} = hash; + ${if sha256 == "" then null else "sha256"} = sha256; + ${if sha512 == "" then null else "sha512"} = sha512; + + meta = { + license = lib.licenses.${license}; + ${if description == null then null else "description"} = description; + ${if longDescription == null then null else "longDescription"} = longDescription; + ${if homepage == null then null else "homepage"} = homepage; + inherit maintainers teams; }; - prePatch = '' - if [ ! -f ./appinfo/info.xml ]; then - echo "appinfo/info.xml doesn't exist in $out, aborting!" - exit 1 - fi - ''; - } - // lib.optionalAttrs (appName != null && appVersion != null) { - name = "nextcloud-app-${appName}-${appVersion}"; - } -) + }; + prePatch = '' + if [ ! -f ./appinfo/info.xml ]; then + echo "appinfo/info.xml doesn't exist in $out, aborting!" + exit 1 + fi + ''; +} diff --git a/pkgs/build-support/fetchnextcloudapp/tests.nix b/pkgs/build-support/fetchnextcloudapp/tests.nix index 60696a84d69c..38f3db68e106 100644 --- a/pkgs/build-support/fetchnextcloudapp/tests.nix +++ b/pkgs/build-support/fetchnextcloudapp/tests.nix @@ -5,18 +5,18 @@ }: { - simple-sha512 = testers.invalidateFetcherByDrvHash (fetchNextcloudApp { + simple-sha512 = testers.invalidateFetcherByDrvHash fetchNextcloudApp { appName = "phonetrack"; appVersion = "0.8.2"; license = "agpl3Plus"; sha512 = "f67902d1b48def9a244383a39d7bec95bb4215054963a9751f99dae9bd2f2740c02d2ef97b3b76d69a36fa95f8a9374dd049440b195f4dad2f0c4bca645de228"; url = "https://github.com/julien-nc/phonetrack/releases/download/v0.8.2/phonetrack-0.8.2.tar.gz"; - }); - simple-sha256 = testers.invalidateFetcherByDrvHash (fetchNextcloudApp { + }; + simple-sha256 = testers.invalidateFetcherByDrvHash fetchNextcloudApp { appName = "phonetrack"; appVersion = "0.8.2"; license = "agpl3Plus"; sha256 = "7c4252186e0ff8e0b97fc3d30131eeadd51bd2f9cc6aa321eb0c1c541f9572c0"; url = "https://github.com/julien-nc/phonetrack/releases/download/v0.8.2/phonetrack-0.8.2.tar.gz"; - }); + }; }