···1+{
2+ fetchFromGitHub,
3+ lib,
4+ nix-update-script,
5+ pkgs,
6+ stdenv,
7+ # nativeBuildInputs
8+ gettext,
9+ meson,
10+ ninja,
11+ pkg-config,
12+ python3,
13+ sphinx,
14+ # buildInputs
15+ boost,
16+ # nativeCheckInputs
17+ bash,
18+ coreutils,
19+ diffutils,
20+ findutils,
21+ glibcLocales,
22+}:
23+24+stdenv.mkDerivation (finalAttrs: {
25+ pname = "dtee";
26+ version = "1.1.3";
27+28+ src = fetchFromGitHub {
29+ owner = "nomis";
30+ repo = "dtee";
31+ tag = finalAttrs.version;
32+ hash = "sha256-trREhITO3cY4j75mpudWhOA3GXI0Q8GkUxNq2s6154w=";
33+ };
34+35+ passthru.updateScript = nix-update-script { };
36+37+ # Make "#!/usr/bin/env bash" work in tests
38+ postPatch = "patchShebangs tests";
39+40+ nativeBuildInputs = [
41+ gettext
42+ meson
43+ ninja
44+ pkg-config
45+ python3
46+ sphinx # For the man page
47+ ];
48+49+ buildInputs = [ boost ];
50+51+ nativeCheckInputs = [
52+ bash
53+ coreutils
54+ diffutils
55+ findutils
56+ glibcLocales # For tests that check translations work
57+ ];
58+59+ # Use the correct copyright year on the man page (workaround for https://github.com/sphinx-doc/sphinx/issues/13231)
60+ preBuild = ''
61+ SOURCE_DATE_EPOCH=$(python3 $NIX_BUILD_TOP/$sourceRoot/release_date.py -e ${finalAttrs.version}) || exit 1
62+ export SOURCE_DATE_EPOCH
63+ '';
64+65+ mesonFlags = [ "--unity on" ];
66+ doCheck = true;
67+68+ meta = {
69+ description = "Run a program with standard output and standard error copied to files";
70+ longDescription = ''
71+ Run a program with standard output and standard error copied to files
72+ while maintaining the original standard output and standard error in
73+ the original order. When invoked as "cronty", allows programs to be run
74+ from cron, suppressing all output unless the process outputs an error
75+ message or has a non-zero exit status whereupon the original output
76+ will be written as normal and the exit code will be appended to standard
77+ error.
78+ '';
79+80+ homepage = "https://dtee.readthedocs.io/";
81+ downloadPage = "https://github.com/nomis/dtee/releases/tag/${finalAttrs.version}";
82+ changelog = "https://dtee.readthedocs.io/en/${finalAttrs.version}/changelog.html";
83+84+ license = lib.licenses.gpl3Plus;
85+ sourceProvenance = [ lib.sourceTypes.fromSource ];
86+ maintainers = with lib.maintainers; [ nomis ];
87+ mainProgram = "dtee";
88+ # Only Linux has reliable local datagram sockets
89+ platforms = lib.platforms.linux;
90+ };
91+})