{ lib, rustPlatform, buildNpmPackage, fetchFromGitHub, pkg-config, openssl, nix-update-script, }: let pname = "sql-studio"; version = "0.1.48"; src = fetchFromGitHub { owner = "frectonz"; repo = "sql-studio"; tag = version; hash = "sha256-D/yLALIvzus9u8qUw5oLX+mEVzKgGfdZPEWkMEfM5tg="; }; ui = buildNpmPackage { pname = "sql-studio-ui"; inherit version src; npmDepsHash = "sha256-4mDe8b5J1wrHz7OCClkE5WTbtfs3TMZB/vhiVuaHiyQ="; sourceRoot = "${src.name}/ui"; installPhase = '' runHook preInstall cp -pr --reflink=auto -- dist "$out/" runHook postInstall ''; }; in rustPlatform.buildRustPackage { inherit pname version src; cargoHash = "sha256-CfyR1MNKgQlj0bii6U+En15sVnUpHluHXZn77P3KYgU="; nativeBuildInputs = [ pkg-config ]; buildInputs = [ openssl ]; preBuild = '' cp -pr --reflink=auto -- ${ui} ui/dist ''; passthru = { inherit ui; updateScript = nix-update-script { extraArgs = [ "--subpackage" "ui" ]; }; }; meta = { description = "SQL Database Explorer [SQLite, libSQL, PostgreSQL, MySQL/MariaDB, ClickHouse, Microsoft SQL Server]"; homepage = "https://github.com/frectonz/sql-studio"; mainProgram = "sql-studio"; license = lib.licenses.mit; maintainers = [ lib.maintainers.frectonz ]; platforms = lib.platforms.all; }; }