1{ lib, buildGoModule, fetchFromGitHub, installShellFiles, testers, atlas }:
2
3buildGoModule rec {
4 pname = "atlas";
5 version = "0.23.0";
6
7 src = fetchFromGitHub {
8 owner = "ariga";
9 repo = "atlas";
10 rev = "v${version}";
11 hash = "sha256-eMYr+U95+xym7PZ02OmZbDG7g/kxE1Nojp3mZM6mf9Q=";
12 };
13
14 modRoot = "cmd/atlas";
15
16 proxyVendor = true;
17 vendorHash = "sha256-rM2l7U/ZkL0NIGPPbmBQ+P6mzGxdX4aQeS8Hz6EFmQc=";
18
19 nativeBuildInputs = [ installShellFiles ];
20
21 ldflags = [ "-s" "-w" "-X ariga.io/atlas/cmd/atlas/internal/cmdapi.version=v${version}" ];
22
23 subPackages = [ "." ];
24
25 postInstall = ''
26 installShellCompletion --cmd atlas \
27 --bash <($out/bin/atlas completion bash) \
28 --fish <($out/bin/atlas completion fish) \
29 --zsh <($out/bin/atlas completion zsh)
30 '';
31
32 passthru.tests.version = testers.testVersion {
33 package = atlas;
34 command = "atlas version";
35 version = "v${version}";
36 };
37
38 meta = with lib; {
39 description = "A modern tool for managing database schemas";
40 homepage = "https://atlasgo.io/";
41 changelog = "https://github.com/ariga/atlas/releases/tag/v${version}";
42 license = licenses.asl20;
43 maintainers = with maintainers; [ aaronjheng ];
44 mainProgram = "atlas";
45 };
46}