1{ lib
2, stdenv
3, fetchFromGitHub
4, rustPlatform
5, fetchpatch
6, git
7, postgresqlTestHook
8, postgresql
9}:
10
11rustPlatform.buildRustPackage rec {
12 pname = "reshape";
13 version = "0.6.1";
14
15 src = fetchFromGitHub {
16 owner = "fabianlindfors";
17 repo = pname;
18 rev = "v${version}";
19 hash = "sha256-iX8qhDk0PP0AB3bJ6ck8AZ9SCErFH416ggAkgK8O900=";
20 };
21
22 nativeCheckInputs = [
23 postgresqlTestHook
24 postgresql
25 ];
26
27 dontUseCargoParallelTests = true;
28
29 postgresqlTestSetupPost = ''
30 export POSTGRES_CONNECTION_STRING="user=$PGUSER dbname=$PGDATABASE host=$PGHOST"
31 '';
32
33 postgresqlTestUserOptions = "LOGIN SUPERUSER";
34
35 # upstream doesn't ship a Cargo.lock, is generated by the update script
36 postPatch = ''
37 cp ${./Cargo.lock} Cargo.lock
38 '';
39
40 cargoLock.lockFile = ./Cargo.lock;
41
42 cargoHash = "sha256-UL/vP8055JRbbf5bqf0V3wGh+iF9ztVhyoMrtNs/c+4=";
43
44 meta = with lib; {
45 description = "An easy-to-use, zero-downtime schema migration tool for Postgres";
46 homepage = "https://github.com/fabianlindfors/reshape";
47 license = licenses.mit;
48 maintainers = with maintainers; [ ilyakooo0 ];
49 };
50}