Commit e5161a15 authored by qzylinra's avatar qzylinra
Browse files

gpt-box: 1.0.385 -> 1.0.395

parent f18aed0c
Loading
Loading
Loading
Loading
+7 −0
Original line number Diff line number Diff line
{
  "computer": "sha256-qaD6jn78zDyZBktwJ4WTQa8oCvCWQJOBDaozBVsXNb8=",
  "fl_build": "sha256-CSKe2yEIisftM0q79HbDTghShirWg02zi9v+hD5R57g=",
  "fl_lib": "sha256-GFgDSkAI5alBxngm8y8A5oXfWgyuleNjnM4bsgYUlSs=",
  "flutter_highlight": "sha256-jSATD4Ww5FHEscGNiTN/FE1+iQHzg/XMbsC9f5XcNGw=",
  "openai_dart": "sha256-FP8J8ul8F68vrEdEZAmzNS921evtRfCIOlV2Aubifaw="
}
+25 −21
Original line number Diff line number Diff line
@@ -6,33 +6,28 @@
  copyDesktopItems,
  makeDesktopItem,
  runCommand,
  yq,
  gpt-box,
  yq-go,
  _experimental-update-script-combinators,
  gitUpdater,
  nix-update-script,
}:

flutter329.buildFlutterApplication rec {
  pname = "gpt-box";
  version = "1.0.385";
let
  version = "1.0.395";

  src = fetchFromGitHub {
    owner = "lollipopkit";
    repo = "flutter_gpt_box";
    tag = "v${version}";
    hash = "sha256-gl8kANxZLNXSuZxcK9WqfXxVWsCpZCbV+qmSt2ZnI6E=";
    hash = "sha256-YtrsN8CdbCvbzfex8bCUUfqfTfyhhZfmweydaRSn1J4=";
  };
in
flutter329.buildFlutterApplication {
  pname = "gpt-box";
  inherit version src;

  pubspecLock = lib.importJSON ./pubspec.lock.json;

  gitHashes = {
    computer = "sha256-qaD6jn78zDyZBktwJ4WTQa8oCvCWQJOBDaozBVsXNb8=";
    fl_build = "sha256-CSKe2yEIisftM0q79HbDTghShirWg02zi9v+hD5R57g=";
    fl_lib = "sha256-gAZqxPOBMXfy0mHEd7Jud0QJwyRbqC4nIRDIA81TZxM=";
    flutter_highlight = "sha256-jSATD4Ww5FHEscGNiTN/FE1+iQHzg/XMbsC9f5XcNGw=";
    openai_dart = "sha256-FP8J8ul8F68vrEdEZAmzNS921evtRfCIOlV2Aubifaw=";
    webdav_client = "sha256-aTkMcrXksHLEG4UpeE1MBmCKpX5l11+y/p4tICrOTGk=";
  };
  gitHashes = lib.importJSON ./gitHashes.json;

  nativeBuildInputs = [
    copyDesktopItems
@@ -57,22 +52,31 @@ flutter329.buildFlutterApplication rec {
  ];

  postInstall = ''
    install -Dm0644 assets/app_icon.png $out/share/pixmaps/gpt-box.png
    install -D --mode=0644 assets/app_icon.png $out/share/pixmaps/gpt-box.png
  '';

  passthru = {
    pubspecSource =
      runCommand "pubspec.lock.json"
        {
          nativeBuildInputs = [ yq ];
          inherit (gpt-box) src;
          inherit src;
          nativeBuildInputs = [ yq-go ];
        }
        ''
          cat $src/pubspec.lock | yq > $out
          yq eval --output-format=json --prettyPrint $src/pubspec.lock > "$out"
        '';
    updateScript = _experimental-update-script-combinators.sequence [
      (gitUpdater { rev-prefix = "v"; })
      (nix-update-script { })
      (
        (_experimental-update-script-combinators.copyAttrOutputToFile "gpt-box.pubspecSource" ./pubspec.lock.json)
        // {
          supportedFeatures = [ ];
        }
      )
      {
        command = [ ./update-gitHashes.py ];
        supportedFeatures = [ ];
      }
    ];
  };

+151 −301

File changed.

Preview size limit exceeded, changes collapsed.

+51 −0
Original line number Diff line number Diff line
#! /usr/bin/env nix-shell
#! nix-shell -i python3 -p python3 nix-prefetch-git

import json
import subprocess
import sys
from pathlib import Path

THIS_FOLDER = Path(__file__).parent.resolve()
PUBSPEC_LOCK = THIS_FOLDER / "pubspec.lock.json"
GIT_HASHES = THIS_FOLDER / "gitHashes.json"


def fetch_git_hash(url: str, rev: str) -> str:
    result = subprocess.run(
        ["nix-prefetch-git", "--url", url, "--rev", rev],
        capture_output=True,
        text=True,
        check=True,
    )
    return json.loads(result.stdout)["hash"]


def main() -> None:
    if not PUBSPEC_LOCK.exists():
        sys.exit(1)
    try:
        data = json.loads(PUBSPEC_LOCK.read_text())
    except json.JSONDecodeError:
        sys.exit(1)
    output: dict[str, str] = {}
    for name, info in data.get("packages", {}).items():
        if info.get("source") != "git":
            continue
        desc = info.get("description")
        if not isinstance(desc, dict):
            continue
        url = desc.get("url")
        rev = desc.get("resolved-ref")
        if not (isinstance(url, str) and isinstance(rev, str)):
            continue
        try:
            package_hash = fetch_git_hash(url, rev)
        except subprocess.CalledProcessError:
            continue
        output[name] = package_hash
    GIT_HASHES.write_text(json.dumps(output, indent=2) + "\n")


if __name__ == "__main__":
    main()