diff options
Diffstat (limited to 'nixpkgs/pkgs/tools/misc/xjobs/default.nix')
-rw-r--r-- | nixpkgs/pkgs/tools/misc/xjobs/default.nix | 65 |
1 files changed, 65 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/tools/misc/xjobs/default.nix b/nixpkgs/pkgs/tools/misc/xjobs/default.nix new file mode 100644 index 000000000000..5edb365a3327 --- /dev/null +++ b/nixpkgs/pkgs/tools/misc/xjobs/default.nix @@ -0,0 +1,65 @@ +{ lib, stdenv, fetchurl +, flex, installShellFiles, ncurses, which +}: + +stdenv.mkDerivation rec { + pname = "xjobs"; + version = "20200726"; + + src = fetchurl { + url = "mirror://sourceforge//xjobs/files/${pname}-${version}.tgz"; + sha256 = "0ay6gn43pnm7r1jamwgpycl67bjg5n87ncl27jb01w2x6x70z0i3"; + }; + + nativeBuildInputs = [ + flex + installShellFiles + which + ]; + buildInputs = [ + ncurses + ]; + + checkPhase = '' + runHook preCheck + ./${pname} -V + runHook postCheck + ''; + + installPhase = '' + runHook preInstall + mkdir -p $out/{bin,etc} + install -m755 ${pname} $out/bin/${pname} + install -m644 ${pname}.rc $out/etc/${pname}.rc + installManPage ${pname}.1 + runHook postInstall + ''; + + meta = with lib; { + description = "A program which reads job descriptions line by line and executes them in parallel"; + homepage = "https://www.maier-komor.de/xjobs.html"; + license = licenses.gpl2Plus; + platforms = platforms.all; + maintainers = [ maintainers.siriobalmelli ]; + longDescription = '' + xjobs reads job descriptions line by line and executes them in parallel. + + It limits the number of parallel executing jobs and starts new jobs when jobs finish. + + Therefore, it combines the arguments from every input line with the utility + and arguments given on the command line. + If no utility is given as an argument to xjobs, + then the first argument on every job line will be used as utility. + To execute utility xjobs searches the directories given in the PATH environment variable + and uses the first file found in these directories. + + xjobs is most useful on multi-processor/core machines when one needs to execute + several time consuming command several that could possibly be run in parallel. + With xjobs this can be achieved easily, and it is possible to limit the load + of the machine to a useful value. + + It works similar to xargs, but starts several processes simultaneously + and gives only one line of arguments to each utility call. + ''; + }; +} |