From 62a3d78cb73556bd532024ed3b0c148924618496 Mon Sep 17 00:00:00 2001 From: wattmto Date: Mon, 10 Feb 2025 13:29:15 +0900 Subject: [PATCH] chatgpt: init at 1.2025.014 --- pkgs/by-name/ch/chatgpt/package.nix | 48 +++++++++++++++++++++++++++++ pkgs/by-name/ch/chatgpt/source.nix | 7 +++++ pkgs/by-name/ch/chatgpt/update.sh | 21 +++++++++++++ 3 files changed, 76 insertions(+) create mode 100644 pkgs/by-name/ch/chatgpt/package.nix create mode 100644 pkgs/by-name/ch/chatgpt/source.nix create mode 100755 pkgs/by-name/ch/chatgpt/update.sh diff --git a/pkgs/by-name/ch/chatgpt/package.nix b/pkgs/by-name/ch/chatgpt/package.nix new file mode 100644 index 000000000000..0dc77de11805 --- /dev/null +++ b/pkgs/by-name/ch/chatgpt/package.nix @@ -0,0 +1,48 @@ +{ + lib, + stdenvNoCC, + darwin, + fetchurl, + _7zz, + undmg, +}: + +let + source = import ./source.nix; +in +stdenvNoCC.mkDerivation { + pname = "chatgpt"; + inherit (source) version; + + src = fetchurl source.src; + + nativeBuildInputs = [ + undmg + ]; + + sourceRoot = "."; + + installPhase = '' + runHook preInstall + + mkdir -p "$out/Applications" + mkdir -p "$out/bin" + cp -a ChatGPT.app "$out/Applications" + ln -s "$out/Applications/ChatGPT.app/Contents/MacOS/ChatGPT" "$out/bin/ChatGPT" + + runHook postInstall + ''; + + passthru.updateScript = ./update.sh; + + meta = { + description = "Desktop application for ChatGPT"; + homepage = "https://openai.com/chatgpt/desktop/"; + changelog = "https://help.openai.com/en/articles/9703738-macos-app-release-notes"; + license = lib.licenses.unfree; + maintainers = with lib.maintainers; [ wattmto ]; + platforms = lib.platforms.darwin; + sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ]; + mainProgram = "ChatGPT"; + }; +} diff --git a/pkgs/by-name/ch/chatgpt/source.nix b/pkgs/by-name/ch/chatgpt/source.nix new file mode 100644 index 000000000000..e4d400134ddf --- /dev/null +++ b/pkgs/by-name/ch/chatgpt/source.nix @@ -0,0 +1,7 @@ +{ + version = "1.2025.014"; + src = { + url = "https://persistent.oaistatic.com/sidekick/public/ChatGPT_Desktop_public_1.2025.014_1737150122.dmg"; + hash = "sha256-NxCkrsPaptYNTZ+urkJqYeC4a0nGaEOFO/7SQL1Jmpc="; + }; +} diff --git a/pkgs/by-name/ch/chatgpt/update.sh b/pkgs/by-name/ch/chatgpt/update.sh new file mode 100755 index 000000000000..732c9ff8f6ee --- /dev/null +++ b/pkgs/by-name/ch/chatgpt/update.sh @@ -0,0 +1,21 @@ +#!/usr/bin/env nix-shell +#!nix-shell -i bash -p curl libxml2 + +XML_URL="https://persistent.oaistatic.com/sidekick/public/sparkle_public_appcast.xml" + +XML_DATA=$(curl -s $XML_URL) + +LATEST_VERSION=$(echo "$XML_DATA" | xmllint --xpath '/rss/channel/item[1]/*[local-name()="shortVersionString"]/text()' -) +DOWNLOAD_URL=$(echo "$XML_DATA" | xmllint --xpath 'string(//item[1]/enclosure/@url)' -) + +HASH=$(nix-prefetch-url $DOWNLOAD_URL | xargs nix hash convert --hash-algo sha256) + +cat > source.nix << _EOF_ +{ + version = "$LATEST_VERSION"; + src = fetchurl { + url = "$DOWNLOAD_URL"; + sha256 = "$HASH"; + }; +} +_EOF_