summary refs log tree commit diff
path: root/pkgs/tools/networking/httpie
diff options
context:
space:
mode:
authorProfpatsch <mail@profpatsch.de>2020-03-02 00:44:35 +0100
committerProfpatsch <mail@profpatsch.de>2020-03-02 00:47:23 +0100
commit9176f20bc31662d991782a04c339feb2b4ef02a9 (patch)
treef73b0998e437547b09de640b7edce3d3ac18b51f /pkgs/tools/networking/httpie
parent619a095af0efa15631e311c98b56a015fdf4614b (diff)
downloadnixpkgs-9176f20bc31662d991782a04c339feb2b4ef02a9.tar
nixpkgs-9176f20bc31662d991782a04c339feb2b4ef02a9.tar.gz
nixpkgs-9176f20bc31662d991782a04c339feb2b4ef02a9.tar.bz2
nixpkgs-9176f20bc31662d991782a04c339feb2b4ef02a9.tar.lz
nixpkgs-9176f20bc31662d991782a04c339feb2b4ef02a9.tar.xz
nixpkgs-9176f20bc31662d991782a04c339feb2b4ef02a9.tar.zst
nixpkgs-9176f20bc31662d991782a04c339feb2b4ef02a9.zip
httpie: add manpage and html docs
httpie has quite extensive documentation in form of its rst readme.
With docutils it’s quite easy to convert to html.

We can also convert it to a manpage, which makes the documentation
accessible from the command line (even though it’s not quite standard
format as far as manpages go; however a lot better than nothing).
Diffstat (limited to 'pkgs/tools/networking/httpie')
-rw-r--r--pkgs/tools/networking/httpie/default.nix50
1 files changed, 50 insertions, 0 deletions
diff --git a/pkgs/tools/networking/httpie/default.nix b/pkgs/tools/networking/httpie/default.nix
index 38fdab358c9..b6a7c632930 100644
--- a/pkgs/tools/networking/httpie/default.nix
+++ b/pkgs/tools/networking/httpie/default.nix
@@ -11,6 +11,8 @@ python3Packages.buildPythonApplication rec {
     sha256 = "0d0rsn5i973l9y0ws3xmnzaw4jwxdlryyjbasnlddph5mvkf7dq0";
   };
 
+  outputs = [ "out" "doc" "man" ];
+
   propagatedBuildInputs = with python3Packages; [ pygments requests setuptools ];
   dontUseSetuptoolsCheck = true;
   patches = [ ./strip-venv.patch ];
@@ -22,6 +24,54 @@ python3Packages.buildPythonApplication rec {
     pytestCheckHook
   ];
 
+  postInstall = ''
+    mkdir -p $man/share/man/man1
+
+    docdir=$doc/share/doc/httpie
+    mkdir -p $docdir/html
+
+    cp AUTHORS.rst CHANGELOG.rst CONTRIBUTING.rst $docdir
+
+    # helpfully, the readme has a `no-web` class to exclude
+    # the parts that are not relevant for offline docs
+
+    # this one build link was not marked however
+    sed -e 's/^|build|//g' -i README.rst
+
+    toHtml() {
+      ${docutils}/bin/rst2html5 \
+        --strip-elements-with-class=no-web \
+        --title=http \
+        --no-generator \
+        --no-datestamp \
+        --no-source-link \
+        "$1" \
+        "$2"
+    }
+
+    toHtml README.rst $docdir/html/index.html
+    toHtml CHANGELOG.rst $docdir/html/CHANGELOG.html
+    toHtml CONTRIBUTING.rst $docdir/html/CONTRIBUTING.html
+
+    # change a few links to the local files
+    substituteInPlace $docdir/html/index.html \
+      --replace \
+        'https://github.com/jakubroztocil/httpie/blob/master/CHANGELOG.rst' \
+        "CHANGELOG.html" \
+      --replace \
+        'https://github.com/jakubroztocil/httpie/blob/master/CONTRIBUTING.rst' \
+        "CONTRIBUTING.html"
+
+    ${docutils}/bin/rst2man \
+      --strip-elements-with-class=no-web \
+      --title=http \
+      --no-generator \
+      --no-datestamp \
+      --no-source-link \
+      README.rst \
+      $man/share/man/man1/http.1
+  '';
+
   # the tests call rst2pseudoxml.py from docutils
   preCheck = ''
     export PATH=${docutils}/bin:$PATH