mirror of
https://github.com/NixOS/nixpkgs.git
synced 2025-02-17 01:24:47 +00:00
Merge pull request #319288 from getchoo/pkgs/diesel-cli/adopt
diesel-cli: adopt; modernize
This commit is contained in:
commit
5f3fd5e599
106
pkgs/by-name/di/diesel-cli/package.nix
Normal file
106
pkgs/by-name/di/diesel-cli/package.nix
Normal file
@ -0,0 +1,106 @@
|
||||
{
|
||||
lib,
|
||||
stdenv,
|
||||
fetchCrate,
|
||||
rustPlatform,
|
||||
installShellFiles,
|
||||
darwin,
|
||||
libiconv,
|
||||
libmysqlclient,
|
||||
nix-update-script,
|
||||
openssl,
|
||||
pkg-config,
|
||||
postgresql,
|
||||
sqlite,
|
||||
testers,
|
||||
zlib,
|
||||
diesel-cli,
|
||||
sqliteSupport ? true,
|
||||
postgresqlSupport ? true,
|
||||
mysqlSupport ? true,
|
||||
}:
|
||||
assert lib.assertMsg (lib.elem true [
|
||||
postgresqlSupport
|
||||
mysqlSupport
|
||||
sqliteSupport
|
||||
]) "support for at least one database must be enabled";
|
||||
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "diesel-cli";
|
||||
version = "2.1.1";
|
||||
|
||||
src = fetchCrate {
|
||||
inherit version;
|
||||
crateName = "diesel_cli";
|
||||
hash = "sha256-fpvC9C30DJy5ih+sFTTMoiykUHqG6OzDhF9jvix1Ctg=";
|
||||
};
|
||||
|
||||
cargoHash = "sha256-nPmUCww8sOJwnG7+uIflLPgT87xPX0s7g0AcuDKhY2I=";
|
||||
|
||||
nativeBuildInputs = [
|
||||
installShellFiles
|
||||
pkg-config
|
||||
];
|
||||
|
||||
buildInputs =
|
||||
[ openssl ]
|
||||
++ lib.optional stdenv.isDarwin darwin.apple_sdk.frameworks.Security
|
||||
++ lib.optional (stdenv.isDarwin && mysqlSupport) libiconv
|
||||
++ lib.optional sqliteSupport sqlite
|
||||
++ lib.optional postgresqlSupport postgresql
|
||||
++ lib.optionals mysqlSupport [
|
||||
libmysqlclient
|
||||
zlib
|
||||
];
|
||||
|
||||
buildNoDefaultFeatures = true;
|
||||
buildFeatures =
|
||||
lib.optional sqliteSupport "sqlite"
|
||||
++ lib.optional postgresqlSupport "postgres"
|
||||
++ lib.optional mysqlSupport "mysql";
|
||||
|
||||
checkFlags = [
|
||||
# all of these require a live database to be running
|
||||
# `DATABASE_URL must be set in order to run tests: NotPresent`
|
||||
"--skip=infer_schema_internals::information_schema::tests::get_primary_keys_only_includes_primary_key"
|
||||
"--skip=infer_schema_internals::information_schema::tests::load_table_names_loads_from_custom_schema"
|
||||
"--skip=infer_schema_internals::information_schema::tests::load_table_names_loads_from_public_schema_if_none_given"
|
||||
"--skip=infer_schema_internals::information_schema::tests::load_table_names_output_is_ordered"
|
||||
"--skip=infer_schema_internals::information_schema::tests::skip_views"
|
||||
"--skip=infer_schema_internals::mysql::test::get_table_data_loads_column_information"
|
||||
"--skip=infer_schema_internals::mysql::test::gets_table_comment"
|
||||
"--skip=infer_schema_internals::pg::test::get_foreign_keys_loads_foreign_keys"
|
||||
"--skip=infer_schema_internals::pg::test::get_foreign_keys_loads_foreign_keys_with_same_name"
|
||||
"--skip=infer_schema_internals::pg::test::get_table_data_loads_column_information"
|
||||
"--skip=infer_schema_internals::pg::test::gets_table_comment"
|
||||
];
|
||||
cargoCheckFeatures = buildFeatures;
|
||||
|
||||
postInstall = ''
|
||||
installShellCompletion --cmd diesel \
|
||||
--bash <($out/bin/diesel completions bash) \
|
||||
--fish <($out/bin/diesel completions fish) \
|
||||
--zsh <($out/bin/diesel completions zsh)
|
||||
'';
|
||||
|
||||
# Fix the build with mariadb, which otherwise shows "error adding symbols:
|
||||
# DSO missing from command line" errors for libz and libssl.
|
||||
env.NIX_LDFLAGS = lib.optionalString mysqlSupport "-lz -lssl -lcrypto";
|
||||
|
||||
passthru = {
|
||||
tests.version = testers.testVersion { package = diesel-cli; };
|
||||
updateScript = nix-update-script { };
|
||||
};
|
||||
|
||||
meta = {
|
||||
description = "Database tool for working with Rust projects that use Diesel";
|
||||
homepage = "https://diesel.rs";
|
||||
changelog = "https://github.com/diesel-rs/diesel/releases/tag/v${version}";
|
||||
license = with lib.licenses; [
|
||||
mit
|
||||
asl20
|
||||
];
|
||||
maintainers = with lib.maintainers; [ getchoo ];
|
||||
mainProgram = "diesel";
|
||||
};
|
||||
}
|
@ -1,82 +0,0 @@
|
||||
{ lib
|
||||
, sqliteSupport ? true
|
||||
, postgresqlSupport ? true
|
||||
, mysqlSupport ? true
|
||||
, rustPlatform
|
||||
, fetchCrate
|
||||
, installShellFiles
|
||||
, pkg-config
|
||||
, openssl
|
||||
, stdenv
|
||||
, Security
|
||||
, libiconv
|
||||
, sqlite
|
||||
, postgresql
|
||||
, libmysqlclient
|
||||
, zlib
|
||||
}:
|
||||
|
||||
assert lib.assertMsg (sqliteSupport == true || postgresqlSupport == true || mysqlSupport == true)
|
||||
"support for at least one database must be enabled";
|
||||
|
||||
let
|
||||
inherit (lib) optional optionals optionalString;
|
||||
in
|
||||
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "diesel-cli";
|
||||
version = "2.1.1";
|
||||
|
||||
src = fetchCrate {
|
||||
inherit version;
|
||||
crateName = "diesel_cli";
|
||||
hash = "sha256-fpvC9C30DJy5ih+sFTTMoiykUHqG6OzDhF9jvix1Ctg=";
|
||||
};
|
||||
|
||||
cargoHash = "sha256-nPmUCww8sOJwnG7+uIflLPgT87xPX0s7g0AcuDKhY2I=";
|
||||
|
||||
nativeBuildInputs = [ installShellFiles pkg-config ];
|
||||
|
||||
buildInputs = [ openssl ]
|
||||
++ optional stdenv.isDarwin Security
|
||||
++ optional (stdenv.isDarwin && mysqlSupport) libiconv
|
||||
++ optional sqliteSupport sqlite
|
||||
++ optional postgresqlSupport postgresql
|
||||
++ optionals mysqlSupport [ libmysqlclient zlib ];
|
||||
|
||||
buildNoDefaultFeatures = true;
|
||||
buildFeatures = optional sqliteSupport "sqlite"
|
||||
++ optional postgresqlSupport "postgres"
|
||||
++ optional mysqlSupport "mysql";
|
||||
|
||||
checkPhase = ''
|
||||
runHook preCheck
|
||||
'' + optionalString sqliteSupport ''
|
||||
cargo check --features sqlite
|
||||
'' + optionalString postgresqlSupport ''
|
||||
cargo check --features postgres
|
||||
'' + optionalString mysqlSupport ''
|
||||
cargo check --features mysql
|
||||
'' + ''
|
||||
runHook postCheck
|
||||
'';
|
||||
|
||||
postInstall = ''
|
||||
installShellCompletion --cmd diesel \
|
||||
--bash <($out/bin/diesel completions bash) \
|
||||
--fish <($out/bin/diesel completions fish) \
|
||||
--zsh <($out/bin/diesel completions zsh)
|
||||
'';
|
||||
|
||||
# Fix the build with mariadb, which otherwise shows "error adding symbols:
|
||||
# DSO missing from command line" errors for libz and libssl.
|
||||
NIX_LDFLAGS = optionalString mysqlSupport "-lz -lssl -lcrypto";
|
||||
|
||||
meta = with lib; {
|
||||
description = "Database tool for working with Rust projects that use Diesel";
|
||||
homepage = "https://github.com/diesel-rs/diesel/tree/master/diesel_cli";
|
||||
license = with licenses; [ mit asl20 ];
|
||||
maintainers = with maintainers; [ ];
|
||||
mainProgram = "diesel";
|
||||
};
|
||||
}
|
@ -4859,10 +4859,6 @@ with pkgs;
|
||||
|
||||
dieharder = callPackage ../tools/security/dieharder { };
|
||||
|
||||
diesel-cli = callPackage ../development/tools/diesel-cli {
|
||||
inherit (darwin.apple_sdk.frameworks) Security;
|
||||
};
|
||||
|
||||
digitemp = callPackage ../tools/misc/digitemp { };
|
||||
|
||||
dijo = callPackage ../tools/misc/dijo {
|
||||
|
Loading…
Reference in New Issue
Block a user