lib.packagesFromDirectoryRecursive: Improved documentation (#359898)
[NixPkgs.git] / pkgs / by-name / mi / mini-calc / package.nix
blobbaea82b192fdfd61e3012c8bd1ac389e287de3c2
2   lib,
3   rustPlatform,
4   fetchFromGitHub,
5   gnuplot,
6   makeWrapper,
7   testers,
8   mini-calc,
9 }:
10 rustPlatform.buildRustPackage rec {
11   pname = "mini-calc";
12   version = "3.3.2";
14   src = fetchFromGitHub {
15     owner = "vanilla-extracts";
16     repo = "calc";
17     rev = version;
18     hash = "sha256-JAIqigELPu4ZCj1uDgGNSCIqVhJVH7tZwFiI/PSTjSI=";
19   };
21   cargoHash = "sha256-s35rR0nb5uX9J3rvEs15+FYBfhXycZwL90yeQf0esJA=";
23   nativeBuildInputs = [ makeWrapper ];
24   postFixup = ''
25     wrapProgram $out/bin/mini-calc \
26       --prefix PATH : "${lib.makeBinPath [ gnuplot ]}"
27   '';
29   passthru.tests.version = testers.testVersion {
30     package = mini-calc;
31     # `mini-calc -v` does not output in the test env, fallback to pipe
32     command = "echo -v | mini-calc";
33     version = "v${version}";
34   };
36   meta = {
37     description = "Fully-featured minimalistic configurable calculator written in Rust";
38     changelog = "https://github.com/coco33920/calc/blob/${version}/CHANGELOG.md";
39     homepage = "https://calc.charlotte-thomas.me/";
40     license = lib.licenses.gpl3Plus;
41     maintainers = with lib.maintainers; [ sigmanificient ];
42     mainProgram = "mini-calc";
43     platforms = lib.platforms.unix;
44   };