summary refs log tree commit diff
path: root/pkgs/applications/networking/sync/rclone/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/applications/networking/sync/rclone/default.nix')
-rw-r--r--pkgs/applications/networking/sync/rclone/default.nix17
1 files changed, 10 insertions, 7 deletions
diff --git a/pkgs/applications/networking/sync/rclone/default.nix b/pkgs/applications/networking/sync/rclone/default.nix
index 2f484467450..2fde398b2f5 100644
--- a/pkgs/applications/networking/sync/rclone/default.nix
+++ b/pkgs/applications/networking/sync/rclone/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildGoPackage, fetchFromGitHub, buildPackages }:
+{ stdenv, buildGoPackage, fetchFromGitHub, buildPackages, installShellFiles }:
 
 buildGoPackage rec {
   pname = "rclone";
@@ -15,20 +15,23 @@ buildGoPackage rec {
 
   subPackages = [ "." ];
 
-  outputs = [ "bin" "out" "man" ];
+  outputs = [ "out" "man" ];
+
+  nativeBuildInputs = [ installShellFiles ];
 
   postInstall =
     let
       rcloneBin =
         if stdenv.buildPlatform == stdenv.hostPlatform
-        then "$bin"
+        then "$out"
         else stdenv.lib.getBin buildPackages.rclone;
     in
       ''
-        install -D -m644 $src/rclone.1 $man/share/man/man1/rclone.1
-        mkdir -p $bin/share/zsh/site-functions $bin/share/bash-completion/completions/
-        ${rcloneBin}/bin/rclone genautocomplete zsh $bin/share/zsh/site-functions/_rclone
-        ${rcloneBin}/bin/rclone genautocomplete bash $bin/share/bash-completion/completions/rclone.bash
+        installManPage $src/rclone.1
+        for shell in bash zsh; do
+          ${rcloneBin}/bin/rclone genautocomplete $shell rclone.$shell
+          installShellCompletion rclone.$shell
+        done
       '';
 
   meta = with stdenv.lib; {