diff --git a/maintainers/maintainer-list.nix b/maintainers/maintainer-list.nix index 73b9177703849..5d2d0e1c0e9fd 100644 --- a/maintainers/maintainer-list.nix +++ b/maintainers/maintainer-list.nix @@ -8401,6 +8401,13 @@ githubId = 33969028; name = "Sebastian Hasler"; }; + hasnep = { + name = "Hannes"; + email = "h@nnes.dev"; + matrix = "@hasnep:matrix.org"; + github = "Hasnep"; + githubId = 25184102; + }; hausken = { name = "Hausken"; email = "hauskens-git@disp.lease>"; diff --git a/pkgs/by-name/sq/sqruff/package.nix b/pkgs/by-name/sq/sqruff/package.nix new file mode 100644 index 0000000000000..d1c9343296ef9 --- /dev/null +++ b/pkgs/by-name/sq/sqruff/package.nix @@ -0,0 +1,58 @@ +{ + lib, + rustPlatform, + fetchFromGitHub, + installShellFiles, + stdenv, + darwin, + rust-jemalloc-sys, + nix-update-script, + versionCheckHook, +}: +rustPlatform.buildRustPackage rec { + pname = "sqruff"; + version = "0.17.0"; + + src = fetchFromGitHub { + owner = "quarylabs"; + repo = "sqruff"; + rev = "refs/tags/v${version}"; + hash = "sha256-uUtbVf4U59jne5uORXpyzpqhFQoviKi2O9KQ5s1CfhU="; + }; + + cargoHash = "sha256-kIBjPh+rL4vzIAqGNYMpw39A0vADbHxi/PkhoG+QL6c="; + + # Requires nightly features (feature(let_chains) and feature(trait_upcasting)) + RUSTC_BOOTSTRAP = true; + + nativeBuildInputs = [ installShellFiles ]; + + buildInputs = [ + rust-jemalloc-sys + ] ++ lib.optionals stdenv.isDarwin [ darwin.apple_sdk.frameworks.CoreServices ]; + + # Patch the tests to find the binary + postPatch = '' + substituteInPlace crates/cli/tests/ui.rs \ + --replace-fail \ + 'config.program.program = format!("../../target/{profile}/sqruff").into();' \ + 'config.program.program = "../../target/${stdenv.hostPlatform.rust.cargoShortTarget}/release/sqruff".into();' + ''; + + nativeCheckInputs = [ versionCheckHook ]; + versionCheckProgramArg = [ "--version" ]; + doInstallCheck = true; + + passthru = { + updateScript = nix-update-script { }; + }; + + meta = { + description = "Fast SQL formatter/linter"; + homepage = "https://github.com/quarylabs/sqruff"; + changelog = "https://github.com/quarylabs/sqruff/releases/tag/${version}"; + license = lib.licenses.asl20; + mainProgram = "sqruff"; + maintainers = with lib.maintainers; [ hasnep ]; + }; +}