about summary refs log tree commit diff
path: root/pkgs/applications/networking/brig
diff options
context:
space:
mode:
authorAzat Bahawi <azat@bahawi.net>2022-06-12 02:19:46 +0300
committerAzat Bahawi <azat@bahawi.net>2022-06-12 02:19:46 +0300
commitae2cdd7ca482f1039349ab799a5aa8c2e6279ad0 (patch)
treee738602721135cdc3af6860be74c207ad4c9d7a6 /pkgs/applications/networking/brig
parent1b467b894b7dd9c9fc6ceff3f6c7a5ce4c24555e (diff)
brig: use buildGoModule
Diffstat (limited to 'pkgs/applications/networking/brig')
-rw-r--r--pkgs/applications/networking/brig/default.nix52
1 files changed, 42 insertions, 10 deletions
diff --git a/pkgs/applications/networking/brig/default.nix b/pkgs/applications/networking/brig/default.nix
index 20b685a162fef..d049ed4e3893a 100644
--- a/pkgs/applications/networking/brig/default.nix
+++ b/pkgs/applications/networking/brig/default.nix
@@ -1,25 +1,57 @@
-{ lib, buildGoPackage, fetchFromGitHub }:
+{ lib
+, buildGoModule
+, fetchFromGitHub
+, installShellFiles
+}:
 
-buildGoPackage rec {
+buildGoModule rec {
   pname = "brig";
   version = "0.4.1";
-  rev = "v${version}";
-
-  goPackagePath = "github.com/sahib/brig";
-  subPackages = ["."];
 
   src = fetchFromGitHub {
     owner = "sahib";
     repo = "brig";
-    inherit rev;
+    rev = "v${version}";
     sha256 = "0gi39jmnzqrgj146yw8lcmgmvzx7ii1dgw4iqig7kx8c0jiqi600";
   };
 
+  vendorSha256 = null;
+
+  nativeBuildInputs = [ installShellFiles ];
+
+  subPackages = [ "." ];
+
+  ldflags = [ "-s" "-w" ] ++ (with lib;
+    mapAttrsToList (n: v: "-X github.com/sahib/brig/version.${n}=${v}")
+      (with versions; {
+        Major = major version;
+        Minor = minor version;
+        Patch = patch version;
+        ReleaseType = "";
+        BuildTime = "1970-01-01T00:00:00+0000";
+        GitRev = src.rev;
+      }));
+
+  postInstall = ''
+    installShellCompletion --cmd brig \
+      --bash $src/autocomplete/bash_autocomplete \
+      --zsh $src/autocomplete/zsh_autocomplete
+  '';
+
+  # There are no tests for the brig executable.
+  doCheck = false;
+
   meta = with lib; {
-    description = "File synchronization on top of ipfs with git like interface and FUSE filesystem";
-    homepage = "https://github.com/sahib/brig";
+    description = "File synchronization on top of IPFS with a git-like interface and a FUSE filesystem";
+    longDescription = ''
+      brig is a distributed and secure file synchronization tool with a version
+      control system. It is based on IPFS, written in Go and will feel familiar
+      to git users. Think of it as a swiss army knife for file synchronization
+      or as a peer to peer alternative to Dropbox.
+    '';
+    homepage = "https://brig.readthedocs.io";
+    changelog = "https://github.com/sahib/brig/releases/tag/${src.rev}";
     license = licenses.agpl3;
-    platforms = platforms.unix;
     maintainers = with maintainers; [ offline ];
   };
 }