lol
1{
2 lib,
3 rustPlatform,
4 buildNpmPackage,
5 fetchFromGitHub,
6 pkg-config,
7 openssl,
8 nix-update-script,
9}:
10let
11 pname = "sql-studio";
12 version = "0.1.45";
13
14 src = fetchFromGitHub {
15 owner = "frectonz";
16 repo = "sql-studio";
17 tag = version;
18 hash = "sha256-LAPJPYHCIBRrnz03s3VhFaVfmGAoIj1UrsY+u2/FaRQ=";
19 };
20
21 ui = buildNpmPackage {
22 pname = "sql-studio-ui";
23 inherit version src;
24 npmDepsHash = "sha256-RVVCmlfembWI+MLxt+96V2Xmczkscuw79aNPWtYlGG8=";
25 sourceRoot = "${src.name}/ui";
26 installPhase = ''
27 runHook preInstall
28
29 cp -pr --reflink=auto -- dist "$out/"
30
31 runHook postInstall
32 '';
33 };
34in
35rustPlatform.buildRustPackage {
36 inherit pname version src;
37
38 cargoHash = "sha256-Dtstp9xEWGau+OJ6471gCEC5eWneiPj03pBMxYBr7DI=";
39
40 nativeBuildInputs = [ pkg-config ];
41
42 buildInputs = [ openssl ];
43
44 preBuild = ''
45 cp -pr --reflink=auto -- ${ui} ui/dist
46 '';
47
48 passthru = {
49 inherit ui;
50 updateScript = nix-update-script {
51 extraArgs = [
52 "--subpackage"
53 "ui"
54 ];
55 };
56 };
57
58 meta = {
59 description = "SQL Database Explorer [SQLite, libSQL, PostgreSQL, MySQL/MariaDB, ClickHouse, Microsoft SQL Server]";
60 homepage = "https://github.com/frectonz/sql-studio";
61 mainProgram = "sql-studio";
62 license = lib.licenses.mit;
63 maintainers = [ lib.maintainers.frectonz ];
64 platforms = lib.platforms.all;
65 };
66}