Loading pkgs/by-name/bu/butterfly/gitHashes.json 0 → 100644 +13 −0 Original line number Diff line number Diff line { "dart_leap": "sha256-oO5851cIdrW/asgOePxvwUgjn1XchkH9CKJUruvlLYI=", "lw_file_system": "sha256-P5zr781SKHqZGwM2dNRi0O53oZuaY2zaM7q2Z7th0F4=", "lw_file_system_api": "sha256-/Ur9zu4Ovb4x8j1n6Q6FWFuJ9yp92YQG3b7H5CMf3II=", "lw_sysapi": "sha256-oGs5q8N46WNcRzbsgsPB/6fVBH3g9utK4tlXBpwU4Qc=", "material_leap": "sha256-AHkXi+ENvLmJBXyF8jdXOCn/CThb6/LDr18gl9sL0XE=", "networker": "sha256-/3jFIZj66hWbTcIQx9OB5QRrukcBT4zpek+56AVaGIA=", "networker_crypto": "sha256-nI0luldloScjjix75kR5yOE1ZX8KFxMIC2N4whKlXUg=", "networker_socket": "sha256-5y1oy0IYDs7nhiIx653vI5Gfh5jrVewkRFxB1mjxlE4=", "perfect_freehand": "sha256-eBiid097rkF82n65Yg6a4VkKPv+70HIOYJT+9sCD//U=", "reorderable_grid": "sha256-g30DSPL/gsk0r8c2ecoKU4f1P3BF15zLnBVO6RXvDGQ=", "swamp_api": "sha256-ONaCXeMwEEHDvVmbo3o66O3CTCx4xGR3T5ZtSEwPvaw=" } pkgs/by-name/bu/butterfly/package.nix +9 −17 Original line number Diff line number Diff line Loading @@ -11,32 +11,20 @@ flutter329.buildFlutterApplication rec { pname = "butterfly"; version = "2.3.1"; version = "2.3.2"; src = fetchFromGitHub { owner = "LinwoodDev"; repo = "Butterfly"; tag = "v${version}"; hash = "sha256-/lwMKanoSM8oARBqQJ3hL23Z5sobLDwtL5RsxFgN5ew="; hash = "sha256-eAkepyZm4WgPo8ieBbWHoSSv/Zfr9U9HCsbxEyrzy0Y="; }; pubspecLock = lib.importJSON ./pubspec.lock.json; sourceRoot = "${src.name}/app"; gitHashes = { dart_leap = "sha256-oO5851cIdrW/asgOePxvwUgjn1XchkH9CKJUruvlLYI="; lw_file_system = "sha256-YWAInZw2FQzqGnopZr4oB1ZM5q0gjM65fvC4uhzl7gE="; networker = "sha256-/3jFIZj66hWbTcIQx9OB5QRrukcBT4zpek+56AVaGIA="; lw_file_system_api = "sha256-/Ur9zu4Ovb4x8j1n6Q6FWFuJ9yp92YQG3b7H5CMf3II="; lw_sysapi = "sha256-oGs5q8N46WNcRzbsgsPB/6fVBH3g9utK4tlXBpwU4Qc="; material_leap = "sha256-AHkXi+ENvLmJBXyF8jdXOCn/CThb6/LDr18gl9sL0XE="; networker_crypto = "sha256-nI0luldloScjjix75kR5yOE1ZX8KFxMIC2N4whKlXUg="; networker_socket = "sha256-5y1oy0IYDs7nhiIx653vI5Gfh5jrVewkRFxB1mjxlE4="; perfect_freehand = "sha256-eBiid097rkF82n65Yg6a4VkKPv+70HIOYJT+9sCD//U="; swamp_api = "sha256-ONaCXeMwEEHDvVmbo3o66O3CTCx4xGR3T5ZtSEwPvaw="; reorderable_grid = "sha256-g30DSPL/gsk0r8c2ecoKU4f1P3BF15zLnBVO6RXvDGQ="; }; gitHashes = lib.importJSON ./gitHashes.json; postInstall = '' cp -r linux/debian/usr/share $out/share Loading @@ -54,15 +42,19 @@ flutter329.buildFlutterApplication rec { ''; updateScript = _experimental-update-script-combinators.sequence [ (gitUpdater { ignoredVersions = ".*rc.*"; ignoredVersions = ".*(rc|beta).*"; rev-prefix = "v"; }) (_experimental-update-script-combinators.copyAttrOutputToFile "butterfly.pubspecSource" ./pubspec.lock.json) { command = [ ./update-gitHashes.py ]; supportedFeatures = [ "silent" ]; } ]; }; meta = { description = "Powerful, minimalistic, cross-platform, opensource note-taking app"; description = "Note taking app where your ideas come first"; homepage = "https://github.com/LinwoodDev/Butterfly"; mainProgram = "butterfly"; license = with lib.licenses; [ Loading pkgs/by-name/bu/butterfly/pubspec.lock.json +3 −3 Original line number Diff line number Diff line Loading @@ -197,7 +197,7 @@ "relative": true }, "source": "path", "version": "2.3.1" "version": "2.3.2" }, "camera": { "dependency": "direct main", Loading Loading @@ -986,8 +986,8 @@ "dependency": "direct main", "description": { "path": "packages/lw_file_system", "ref": "08f472ba88112647b4a7b94dff57d74ed897e062", "resolved-ref": "08f472ba88112647b4a7b94dff57d74ed897e062", "ref": "ad67d9835e5fc673c9e7d1bcaad10c89423d4b61", "resolved-ref": "ad67d9835e5fc673c9e7d1bcaad10c89423d4b61", "url": "https://github.com/LinwoodDev/dart_pkgs.git" }, "source": "git", Loading pkgs/by-name/bu/butterfly/update-gitHashes.py 0 → 100755 +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() Loading
pkgs/by-name/bu/butterfly/gitHashes.json 0 → 100644 +13 −0 Original line number Diff line number Diff line { "dart_leap": "sha256-oO5851cIdrW/asgOePxvwUgjn1XchkH9CKJUruvlLYI=", "lw_file_system": "sha256-P5zr781SKHqZGwM2dNRi0O53oZuaY2zaM7q2Z7th0F4=", "lw_file_system_api": "sha256-/Ur9zu4Ovb4x8j1n6Q6FWFuJ9yp92YQG3b7H5CMf3II=", "lw_sysapi": "sha256-oGs5q8N46WNcRzbsgsPB/6fVBH3g9utK4tlXBpwU4Qc=", "material_leap": "sha256-AHkXi+ENvLmJBXyF8jdXOCn/CThb6/LDr18gl9sL0XE=", "networker": "sha256-/3jFIZj66hWbTcIQx9OB5QRrukcBT4zpek+56AVaGIA=", "networker_crypto": "sha256-nI0luldloScjjix75kR5yOE1ZX8KFxMIC2N4whKlXUg=", "networker_socket": "sha256-5y1oy0IYDs7nhiIx653vI5Gfh5jrVewkRFxB1mjxlE4=", "perfect_freehand": "sha256-eBiid097rkF82n65Yg6a4VkKPv+70HIOYJT+9sCD//U=", "reorderable_grid": "sha256-g30DSPL/gsk0r8c2ecoKU4f1P3BF15zLnBVO6RXvDGQ=", "swamp_api": "sha256-ONaCXeMwEEHDvVmbo3o66O3CTCx4xGR3T5ZtSEwPvaw=" }
pkgs/by-name/bu/butterfly/package.nix +9 −17 Original line number Diff line number Diff line Loading @@ -11,32 +11,20 @@ flutter329.buildFlutterApplication rec { pname = "butterfly"; version = "2.3.1"; version = "2.3.2"; src = fetchFromGitHub { owner = "LinwoodDev"; repo = "Butterfly"; tag = "v${version}"; hash = "sha256-/lwMKanoSM8oARBqQJ3hL23Z5sobLDwtL5RsxFgN5ew="; hash = "sha256-eAkepyZm4WgPo8ieBbWHoSSv/Zfr9U9HCsbxEyrzy0Y="; }; pubspecLock = lib.importJSON ./pubspec.lock.json; sourceRoot = "${src.name}/app"; gitHashes = { dart_leap = "sha256-oO5851cIdrW/asgOePxvwUgjn1XchkH9CKJUruvlLYI="; lw_file_system = "sha256-YWAInZw2FQzqGnopZr4oB1ZM5q0gjM65fvC4uhzl7gE="; networker = "sha256-/3jFIZj66hWbTcIQx9OB5QRrukcBT4zpek+56AVaGIA="; lw_file_system_api = "sha256-/Ur9zu4Ovb4x8j1n6Q6FWFuJ9yp92YQG3b7H5CMf3II="; lw_sysapi = "sha256-oGs5q8N46WNcRzbsgsPB/6fVBH3g9utK4tlXBpwU4Qc="; material_leap = "sha256-AHkXi+ENvLmJBXyF8jdXOCn/CThb6/LDr18gl9sL0XE="; networker_crypto = "sha256-nI0luldloScjjix75kR5yOE1ZX8KFxMIC2N4whKlXUg="; networker_socket = "sha256-5y1oy0IYDs7nhiIx653vI5Gfh5jrVewkRFxB1mjxlE4="; perfect_freehand = "sha256-eBiid097rkF82n65Yg6a4VkKPv+70HIOYJT+9sCD//U="; swamp_api = "sha256-ONaCXeMwEEHDvVmbo3o66O3CTCx4xGR3T5ZtSEwPvaw="; reorderable_grid = "sha256-g30DSPL/gsk0r8c2ecoKU4f1P3BF15zLnBVO6RXvDGQ="; }; gitHashes = lib.importJSON ./gitHashes.json; postInstall = '' cp -r linux/debian/usr/share $out/share Loading @@ -54,15 +42,19 @@ flutter329.buildFlutterApplication rec { ''; updateScript = _experimental-update-script-combinators.sequence [ (gitUpdater { ignoredVersions = ".*rc.*"; ignoredVersions = ".*(rc|beta).*"; rev-prefix = "v"; }) (_experimental-update-script-combinators.copyAttrOutputToFile "butterfly.pubspecSource" ./pubspec.lock.json) { command = [ ./update-gitHashes.py ]; supportedFeatures = [ "silent" ]; } ]; }; meta = { description = "Powerful, minimalistic, cross-platform, opensource note-taking app"; description = "Note taking app where your ideas come first"; homepage = "https://github.com/LinwoodDev/Butterfly"; mainProgram = "butterfly"; license = with lib.licenses; [ Loading
pkgs/by-name/bu/butterfly/pubspec.lock.json +3 −3 Original line number Diff line number Diff line Loading @@ -197,7 +197,7 @@ "relative": true }, "source": "path", "version": "2.3.1" "version": "2.3.2" }, "camera": { "dependency": "direct main", Loading Loading @@ -986,8 +986,8 @@ "dependency": "direct main", "description": { "path": "packages/lw_file_system", "ref": "08f472ba88112647b4a7b94dff57d74ed897e062", "resolved-ref": "08f472ba88112647b4a7b94dff57d74ed897e062", "ref": "ad67d9835e5fc673c9e7d1bcaad10c89423d4b61", "resolved-ref": "ad67d9835e5fc673c9e7d1bcaad10c89423d4b61", "url": "https://github.com/LinwoodDev/dart_pkgs.git" }, "source": "git", Loading
pkgs/by-name/bu/butterfly/update-gitHashes.py 0 → 100755 +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()