nixpkgs/pkgs/tools/networking/httpie/default.nix

94 lines
2.4 KiB
Nix
Raw Normal View History

2021-02-08 10:34:19 +00:00
{ lib, fetchFromGitHub, python3Packages, docutils }:
python3Packages.buildPythonApplication rec {
2019-08-30 04:02:24 +01:00
pname = "httpie";
2021-02-08 10:34:19 +00:00
version = "2.4.0";
2019-09-23 15:56:01 +01:00
src = fetchFromGitHub {
2021-02-08 10:34:19 +00:00
owner = "httpie";
2019-09-23 15:56:01 +01:00
repo = "httpie";
rev = version;
2021-02-08 10:34:19 +00:00
sha256 = "00lafjqg9nfnak0nhcr2l2hzzkwn2y6qv0wdkm6r6f69snizy3hf";
};
patches = [
./strip-venv.patch
];
2019-09-23 15:56:01 +01:00
2021-02-08 10:34:19 +00:00
outputs = [ "out" "doc" "man" ];
2021-03-05 02:15:00 +00:00
nativeBuildInputs = [ docutils ];
2021-02-08 10:34:19 +00:00
propagatedBuildInputs = with python3Packages; [ pygments requests requests-toolbelt setuptools ];
2019-09-23 15:56:01 +01:00
checkInputs = with python3Packages; [
mock
pytest
pytest-httpbin
pytestCheckHook
];
postInstall = ''
2020-03-02 00:16:54 +00:00
# install completions
install -Dm555 \
extras/httpie-completion.bash \
$out/share/bash-completion/completions/http.bash
install -Dm555 \
extras/httpie-completion.fish \
$out/share/fish/vendor_completions.d/http.fish
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() {
2021-03-05 02:15:00 +00:00
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
2021-03-05 02:15:00 +00:00
rst2man \
--strip-elements-with-class=no-web \
--title=http \
--no-generator \
--no-datestamp \
--no-source-link \
README.rst \
$man/share/man/man1/http.1
'';
2019-09-23 15:56:01 +01:00
# the tests call rst2pseudoxml.py from docutils
preCheck = ''
export PATH=${docutils}/bin:$PATH
'';
2021-02-08 10:34:19 +00:00
checkPhase = ''
py.test ./httpie ./tests --doctest-modules --verbose ./httpie ./tests -k 'not test_chunked and not test_verbose_chunked and not test_multipart_chunked and not test_request_body_from_file_by_path_chunked'
'';
meta = with lib; {
2012-12-28 23:09:01 +00:00
description = "A command line HTTP client whose goal is to make CLI human-friendly";
homepage = "https://httpie.org/";
2021-02-08 10:34:19 +00:00
license = licenses.bsd3;
maintainers = with maintainers; [ antono relrod schneefux SuperSandro2000 ];
};
}