diff --git a/pkgs/by-name/se/server-box/gitHashes.json b/pkgs/by-name/se/server-box/gitHashes.json new file mode 100644 index 000000000000..576007e56a39 --- /dev/null +++ b/pkgs/by-name/se/server-box/gitHashes.json @@ -0,0 +1,10 @@ +{ + "circle_chart": "sha256-BcnL/hRf+Yv2U8Nkl7pc8BtncBW+M2by86jO5IbFIRk=", + "computer": "sha256-qaD6jn78zDyZBktwJ4WTQa8oCvCWQJOBDaozBVsXNb8=", + "dartssh2": "sha256-XlbruyraMmZGNRppQdBLS89Qyd7mm5Noiap2BhZjEPw=", + "fl_build": "sha256-hCojuXFuN33/prCyuPcMoehWiGfaR2yOJA2V6dOuz4E=", + "fl_lib": "sha256-7nwj5eE3nCezjrv5N2cz/9r+CqMKTOIuhaeH4AGVchY=", + "plain_notification_token": "sha256-Cy1/S8bAtKCBnjfDEeW4Q2nP4jtwyCstAC1GH1efu8I=", + "watch_connectivity": "sha256-9TyuElr0PNoiUvbSTOakdw1/QwWp6J2GAwzVHsgYWtM=", + "xterm": "sha256-yMETVh1qEdQAIYaQWbL5958N5dGpczJ/Y8Zvl1WjRnw=" +} diff --git a/pkgs/by-name/se/server-box/package.nix b/pkgs/by-name/se/server-box/package.nix index c7b0bb324a38..3837cdc5c0c4 100644 --- a/pkgs/by-name/se/server-box/package.nix +++ b/pkgs/by-name/se/server-box/package.nix @@ -6,35 +6,28 @@ copyDesktopItems, makeDesktopItem, runCommand, - yq, - server-box, + yq-go, _experimental-update-script-combinators, gitUpdater, }: -flutter332.buildFlutterApplication rec { - pname = "server-box"; - version = "1.0.1189"; +let + version = "1.0.1201"; src = fetchFromGitHub { owner = "lollipopkit"; repo = "flutter_server_box"; tag = "v${version}"; - hash = "sha256-gz+4uJe0JHi8oYNz/oLylkYUmHQA8wnxp/4TadYNMfo="; + hash = "sha256-ScPpEL2YxWw1aKEyzhoa0b931WF4hrdren4aSAlMpoU="; }; +in +flutter332.buildFlutterApplication { + pname = "server-box"; + inherit version src; pubspecLock = lib.importJSON ./pubspec.lock.json; - gitHashes = { - circle_chart = "sha256-BcnL/hRf+Yv2U8Nkl7pc8BtncBW+M2by86jO5IbFIRk="; - computer = "sha256-qaD6jn78zDyZBktwJ4WTQa8oCvCWQJOBDaozBVsXNb8="; - dartssh2 = "sha256-XlbruyraMmZGNRppQdBLS89Qyd7mm5Noiap2BhZjEPw="; - fl_build = "sha256-hCojuXFuN33/prCyuPcMoehWiGfaR2yOJA2V6dOuz4E="; - fl_lib = "sha256-cauq5kbcCE52Jp3K/xBdHEmdfuF8aQsujNTjbE93Pww="; - plain_notification_token = "sha256-Cy1/S8bAtKCBnjfDEeW4Q2nP4jtwyCstAC1GH1efu8I="; - watch_connectivity = "sha256-9TyuElr0PNoiUvbSTOakdw1/QwWp6J2GAwzVHsgYWtM="; - xterm = "sha256-yMETVh1qEdQAIYaQWbL5958N5dGpczJ/Y8Zvl1WjRnw="; - }; + gitHashes = lib.importJSON ./gitHashes.json; nativeBuildInputs = [ copyDesktopItems @@ -66,15 +59,19 @@ flutter332.buildFlutterApplication rec { pubspecSource = runCommand "pubspec.lock.json" { - nativeBuildInputs = [ yq ]; - inherit (server-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"; }) (_experimental-update-script-combinators.copyAttrOutputToFile "server-box.pubspecSource" ./pubspec.lock.json) + { + command = [ ./update-gitHashes.py ]; + supportedFeatures = [ "silent" ]; + } ]; }; diff --git a/pkgs/by-name/se/server-box/pubspec.lock.json b/pkgs/by-name/se/server-box/pubspec.lock.json index efdf39f7e22a..af41ecce261e 100644 --- a/pkgs/by-name/se/server-box/pubspec.lock.json +++ b/pkgs/by-name/se/server-box/pubspec.lock.json @@ -403,7 +403,7 @@ "version": "0.3.4+2" }, "crypto": { - "dependency": "transitive", + "dependency": "direct main", "description": { "name": "crypto", "sha256": "1e445881f28f22d6140f181e07737b22f1e099a5e1ff94b0af2f9e4a463f4855", @@ -618,8 +618,8 @@ "dependency": "direct main", "description": { "path": ".", - "ref": "v1.0.321", - "resolved-ref": "e0b3338be10fa71c96d017d873f5e10bb4374709", + "ref": "v1.0.327", + "resolved-ref": "5075a679b814b10742f967066858ba4df92ea4ae", "url": "https://github.com/lppcg/fl_lib" }, "source": "git", @@ -727,6 +727,66 @@ "source": "hosted", "version": "2.6.1" }, + "flutter_secure_storage": { + "dependency": "transitive", + "description": { + "name": "flutter_secure_storage", + "sha256": "9cad52d75ebc511adfae3d447d5d13da15a55a92c9410e50f67335b6d21d16ea", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "9.2.4" + }, + "flutter_secure_storage_linux": { + "dependency": "transitive", + "description": { + "name": "flutter_secure_storage_linux", + "sha256": "be76c1d24a97d0b98f8b54bce6b481a380a6590df992d0098f868ad54dc8f688", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "1.2.3" + }, + "flutter_secure_storage_macos": { + "dependency": "transitive", + "description": { + "name": "flutter_secure_storage_macos", + "sha256": "6c0a2795a2d1de26ae202a0d78527d163f4acbb11cde4c75c670f3a0fc064247", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "3.1.3" + }, + "flutter_secure_storage_platform_interface": { + "dependency": "transitive", + "description": { + "name": "flutter_secure_storage_platform_interface", + "sha256": "cf91ad32ce5adef6fba4d736a542baca9daf3beac4db2d04be350b87f69ac4a8", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "1.1.2" + }, + "flutter_secure_storage_web": { + "dependency": "transitive", + "description": { + "name": "flutter_secure_storage_web", + "sha256": "f4ebff989b4f07b2656fb16b47852c0aab9fed9b4ec1c70103368337bc1886a9", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "1.2.1" + }, + "flutter_secure_storage_windows": { + "dependency": "transitive", + "description": { + "name": "flutter_secure_storage_windows", + "sha256": "b20b07cb5ed4ed74fc567b78a72936203f587eba460af1df11281c9326cd3709", + "url": "https://pub.dev" + }, + "source": "hosted", + "version": "3.1.2" + }, "flutter_svg": { "dependency": "transitive", "description": { @@ -983,11 +1043,11 @@ "dependency": "transitive", "description": { "name": "js", - "sha256": "53385261521cc4a0c4658fd0ad07a7d14591cf8fc33abbceae306ddb974888dc", + "sha256": "f2c445dce49627136094980615a031419f7f3eb393237e4ecd97ac15dea343f3", "url": "https://pub.dev" }, "source": "hosted", - "version": "0.7.2" + "version": "0.6.7" }, "json_annotation": { "dependency": "direct main", @@ -1444,21 +1504,21 @@ "dependency": "transitive", "description": { "name": "qr_code_dart_decoder", - "sha256": "6da7eda27726d504bed3c30eabf78ddca3eb9265e1c8dc49b30ef5974b9c267f", + "sha256": "4044f13a071da6102f7e9bc44a6b1ce577604d7846bcbeb1be412a137b825017", "url": "https://pub.dev" }, "source": "hosted", - "version": "0.0.5" + "version": "0.1.2" }, "qr_code_dart_scan": { "dependency": "transitive", "description": { "name": "qr_code_dart_scan", - "sha256": "6e1aab64b8f5f768416b471dbc3fb0fc94969c3e236157a96b52a70f9fe12ebb", + "sha256": "8c9a63dac44ea51c82e72c0fed28b850d22be26348c582f77486f128cf1c2760", "url": "https://pub.dev" }, "source": "hosted", - "version": "0.10.1" + "version": "0.11.1" }, "quiver": { "dependency": "transitive", @@ -2252,11 +2312,11 @@ "dependency": "transitive", "description": { "name": "zxing_lib", - "sha256": "d5d81917be2e18b06a2cf4ca12927f3ab957dfbd25bd7b8175b3e9a0ce5c2e2b", + "sha256": "f9170470b6bc947d21a6783486f88ef48aad66fc1380c8acd02b118418ec0ce0", "url": "https://pub.dev" }, "source": "hosted", - "version": "1.1.3" + "version": "1.1.4" } }, "sdks": { diff --git a/pkgs/by-name/se/server-box/update-gitHashes.py b/pkgs/by-name/se/server-box/update-gitHashes.py new file mode 100755 index 000000000000..ffa6feb66653 --- /dev/null +++ b/pkgs/by-name/se/server-box/update-gitHashes.py @@ -0,0 +1,51 @@ +#! /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()