1{
2 cmake,
3 fetchFromGitHub,
4 fftw,
5 gettext,
6 lib,
7 libintl,
8 ncurses,
9 nix-update-script,
10 openssl,
11 stdenv,
12 testers,
13}:
14
15stdenv.mkDerivation (finalAttrs: {
16 pname = "httping";
17 version = "4.4.0";
18
19 src = fetchFromGitHub {
20 owner = "folkertvanheusden";
21 repo = "HTTPing";
22 tag = "v${finalAttrs.version}";
23 hash = "sha256-qvi+8HwEipI8vkhPgFSN+q+3BsUCQTOqPVUUzzDn3Uo=";
24 };
25
26 nativeBuildInputs = [
27 cmake
28 gettext
29 ];
30
31 buildInputs = [
32 fftw
33 libintl
34 ncurses
35 openssl
36 ];
37
38 installPhase = ''
39 runHook preInstall
40 install -D httping $out/bin/httping
41 runHook postInstall
42 '';
43
44 passthru = {
45 tests.version = testers.testVersion {
46 command = "${lib.getExe finalAttrs.finalPackage} --version";
47 package = finalAttrs.finalPackage;
48 version = "v${finalAttrs.version}";
49 };
50 updateScript = nix-update-script { };
51 };
52
53 meta = {
54 changelog = "https://github.com/folkertvanheusden/HTTPing/releases/tag/v${finalAttrs.version}";
55 description = "Ping with HTTP requests";
56 homepage = "https://vanheusden.com/httping";
57 license = lib.licenses.agpl3Only;
58 longDescription = ''
59 Give httping an url, and it'll show you how long it takes to connect,
60 send a request and retrieve the reply (only the headers). Be aware that
61 the transmission across the network also takes time! So it measures the
62 latency of the webserver + network. It supports IPv6.
63 '';
64 mainProgram = "httping";
65 maintainers = [ lib.maintainers.anthonyroussel ];
66 platforms = lib.platforms.linux;
67 };
68})