summary refs log tree commit diff
path: root/pkgs/development/tools/wp-cli/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/development/tools/wp-cli/default.nix')
-rw-r--r--pkgs/development/tools/wp-cli/default.nix47
1 files changed, 29 insertions, 18 deletions
diff --git a/pkgs/development/tools/wp-cli/default.nix b/pkgs/development/tools/wp-cli/default.nix
index 30d509a5e5e..6a9d56573e2 100644
--- a/pkgs/development/tools/wp-cli/default.nix
+++ b/pkgs/development/tools/wp-cli/default.nix
@@ -1,33 +1,44 @@
-{ stdenv, lib, writeText, writeScript, fetchurl, php }:
+{ stdenv, lib, fetchurl, php }:
 
 let
   version = "1.0.0";
-  name = "wp-cli-${version}";
 
-  phpIni = writeText "wp-cli-php.ini" ''
-    [Phar]
-    phar.readonly = Off
-  '';
+  bin  = "bin/wp";
+  ini  = "etc/php/wp-cli.ini";
+  phar = "share/wp-cli/wp-cli.phar";
 
-  wpBin = writeScript "wp" ''
-    #! ${stdenv.shell} -e
-    exec ${php}/bin/php \
-      -c ${phpIni} \
-      -f ${src} "$@"
-  '';
+  completion = fetchurl {
+    url    = "https://raw.githubusercontent.com/wp-cli/wp-cli/v${version}/utils/wp-completion.bash";
+    sha256 = "15d330x6d3fizrm6ckzmdknqg6wjlx5fr87bmkbd5s6a1ihs0g24";
+  };
+
+in stdenv.mkDerivation rec {
+  name = "wp-cli-${version}";
 
   src = fetchurl {
-    url = "https://github.com/wp-cli/wp-cli/releases/download/v${version}/${name}.phar";
+    url    = "https://github.com/wp-cli/wp-cli/releases/download/v${version}/${name}.phar";
     sha256 = "06a80fz9na9arjdpmnislwr0121kkg11kxfqmac0axa9vkv9fjcp";
   };
 
-in stdenv.mkDerivation rec {
+  buildCommand = ''
+    mkdir -p $out/bin $out/etc/php
 
-  inherit name src;
+    cat <<_EOF > $out/${bin}
+    #! ${stdenv.shell} -eu
+    exec ${lib.getBin php}/bin/php \\
+      -c $out/${ini} \\
+      -f $out/${phar} "\$@"
+    _EOF
+    chmod 755 $out/${bin}
 
-  buildCommand = ''
-    mkdir -p $out/bin
-    ln -s ${wpBin} $out/bin/wp
+    cat <<_EOF > $out/${ini}
+    [Phar]
+    phar.readonly = Off
+    _EOF
+    chmod 644 $out/${ini}
+
+    install -Dm644 ${src}        $out/${phar}
+    install -Dm644 ${completion} $out/share/bash-completion/completions/wp
   '';
 
   meta = with stdenv.lib; {