{ stdenv, fetchzip, applyPatches, lib, ... }: { url , hash ? "" , sha256 ? "" , appName ? null , appVersion ? null , license , patches ? [ ] , description ? null , homepage ? null }: applyPatches ({ inherit patches; src = fetchzip { inherit url hash sha256; postFetch = '' pushd $out &>/dev/null if [ ! -f ./appinfo/info.xml ]; then echo "appinfo/info.xml doesn't exist in $out, aborting!" exit 1 fi popd &>/dev/null ''; meta = { license = lib.licenses.${license}; longDescription = description; inherit homepage; } // lib.optionalAttrs (description != null) { longDescription = description; } // lib.optionalAttrs (homepage != null) { inherit homepage; }; }; } // lib.optionalAttrs (appName != null && appVersion != null) { name = "nextcloud-app-${appName}-${appVersion}"; })