nixpkgs mirror (for testing)
github.com/NixOS/nixpkgs
nix
1{
2 lib,
3 fetchFromGitHub,
4 fetchNpmDeps,
5 npmHooks,
6 rustPlatform,
7 pkg-config,
8 openssl,
9 nodejs,
10}:
11rustPlatform.buildRustPackage rec {
12 pname = "cook-cli";
13 version = "0.20.0";
14
15 src = fetchFromGitHub {
16 owner = "cooklang";
17 repo = "cookcli";
18 rev = "v${version}";
19 hash = "sha256-kGjeyw3E6hYcEOcGugW+mgvXGJ38pFp+z9vAMJqPTVE=";
20 };
21
22 cargoHash = "sha256-SUnpv53UQiawGNdQLJCjpxzmbMV8eZq2ycRMnWJxVLc=";
23
24 # Build without the self-updating feature
25 buildNoDefaultFeatures = true;
26
27 nativeBuildInputs = [
28 pkg-config
29 openssl
30 nodejs
31 npmHooks.npmConfigHook
32 ];
33
34 buildInputs = [
35 openssl
36 ];
37
38 env.OPENSSL_NO_VENDOR = 1;
39
40 npmDeps = fetchNpmDeps {
41 inherit src;
42 hash = "sha256-HxC9Tf+PZvvETuNqm1W3jaZx7SpYXlxZlI8FwGouK+s=";
43 };
44
45 preBuild = ''
46 npm run build-css
47 '';
48
49 meta = {
50 changelog = "https://github.com/cooklang/cookcli/releases/tag/v${version}";
51 description = "Suite of tools to create shopping lists and maintain recipes";
52 homepage = "https://cooklang.org/";
53 license = lib.licenses.mit;
54 mainProgram = "cook";
55 maintainers = [
56 lib.maintainers.emilioziniades
57 lib.maintainers.ginkogruen
58 ];
59 platforms = lib.platforms.linux ++ lib.platforms.darwin;
60 };
61}