From c74ab161ff32b3922d5893553a7dc5867597379a Mon Sep 17 00:00:00 2001 From: justanotherariel Date: Wed, 20 Dec 2023 02:16:47 +0100 Subject: [PATCH] morgen: add updateScript and mainProgram --- pkgs/applications/office/morgen/default.nix | 9 ++++--- pkgs/applications/office/morgen/update.sh | 26 +++++++++++++++++++++ pkgs/top-level/all-packages.nix | 2 +- 3 files changed, 33 insertions(+), 4 deletions(-) create mode 100755 pkgs/applications/office/morgen/update.sh diff --git a/pkgs/applications/office/morgen/default.nix b/pkgs/applications/office/morgen/default.nix index f2bcd3b6a975..7bb816a3f48e 100644 --- a/pkgs/applications/office/morgen/default.nix +++ b/pkgs/applications/office/morgen/default.nix @@ -6,8 +6,8 @@ stdenv.mkDerivation rec { version = "3.0.1"; src = fetchurl { - url = "https://download.todesktop.com/210203cqcj00tw1/morgen-${version}.deb"; - sha256 = "sha256-lj+V5mntZzED2ZS62Uwlt/vTXwSuwzXeuEw8y/bA6og="; + url = "https://dl.todesktop.com/210203cqcj00tw1/versions/${version}/linux/deb"; + hash = "sha256-lj+V5mntZzED2ZS62Uwlt/vTXwSuwzXeuEw8y/bA6og="; }; nativeBuildInputs = [ @@ -46,12 +46,15 @@ stdenv.mkDerivation rec { runHook postInstall ''; + passthru.updateScript = ./update.sh; + meta = with lib; { description = "All-in-one Calendars, Tasks and Scheduler"; homepage = "https://morgen.so/download"; + mainProgram = "morgen"; sourceProvenance = with sourceTypes; [ binaryNativeCode ]; license = licenses.unfree; - maintainers = with maintainers; [ wolfangaukang ]; + maintainers = with maintainers; [ justanotherariel wolfangaukang ]; platforms = [ "x86_64-linux" ]; }; } diff --git a/pkgs/applications/office/morgen/update.sh b/pkgs/applications/office/morgen/update.sh new file mode 100755 index 000000000000..e12f86a04bbc --- /dev/null +++ b/pkgs/applications/office/morgen/update.sh @@ -0,0 +1,26 @@ +#!/usr/bin/env nix-shell +#!nix-shell -i bash -p curl jq common-updater-scripts + +set -euo pipefail + +# URL to check for the latest version +latestUrl="https://dl.todesktop.com/210203cqcj00tw1/linux/deb/x64" + +# Fetch the latest version information +latestInfo=$(curl -sI -X GET $latestUrl | grep -oP 'morgen-\K\d+(\.\d+)*(?=[^\d])') + +if [[ -z "$latestInfo" ]]; then + echo "Could not find the latest version number." + exit 1 +fi + +# Extract the version number +latestVersion=$(echo "$latestInfo" | head -n 1) + +echo "Latest version of Morgen is $latestVersion" + +# Update the package definition +update-source-version morgen "$latestVersion" + +# Fetch and update the hash +nix-prefetch-url --unpack "https://dl.todesktop.com/210203cqcj00tw1/versions/${latestVersion}/linux/deb" diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 8dd214b13296..4a0684d91943 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -10985,7 +10985,7 @@ with pkgs; mole = callPackage ../tools/networking/mole { }; morgen = callPackage ../applications/office/morgen { - electron = electron_25; # blank screen with electron_26 + electron = electron_28; }; mosh = callPackage ../tools/networking/mosh { };