Unverified Commit 1a5d2f84 authored by Aleksana's avatar Aleksana Committed by GitHub
Browse files

bruno-cli: init at 1.34.2 (#354111)

parents 9d140723 358c74b3
Loading
Loading
Loading
Loading
+99 −0
Original line number Diff line number Diff line
{
  lib,
  stdenv,
  buildNpmPackage,
  bruno,
  pkg-config,
  pango,
  apple-sdk_11,
  testers,
  bruno-cli,
}:

let
  pname = "bruno-cli";
in
buildNpmPackage {
  inherit pname;

  # since they only make releases and git tags for bruno,
  # we lie about bruno-cli's version and say it's the same as bruno's
  # to keep them in sync with easier maintenance
  inherit (bruno) version src npmDepsHash;

  npmWorkspace = "packages/bruno-cli";
  npmFlags = [ "--legacy-peer-deps" ];

  nativeBuildInputs = [
    pkg-config
  ];

  buildInputs =
    [
      pango
    ]
    ++ lib.optionals stdenv.hostPlatform.isDarwin [
      # fix for: https://github.com/NixOS/nixpkgs/issues/272156
      apple-sdk_11
    ];

  ELECTRON_SKIP_BINARY_DOWNLOAD = 1;

  buildPhase = ''
    runHook preBuild

    npm run build --workspace=packages/bruno-common
    npm run build --workspace=packages/bruno-graphql-docs
    npm run build --workspace=packages/bruno-query

    npm run sandbox:bundle-libraries --workspace=packages/bruno-js

    runHook postBuild
  '';

  npmPackFlags = [ "--ignore-scripts" ];

  postInstall = ''
    cp -r packages $out/lib/node_modules/usebruno

    echo "Removing unnecessary files"
    pushd $out/lib/node_modules/usebruno
    rm -rfv packages/bruno-{app,electron,tests,toml,schema,docs}
    rm -rfv packages/*/node_modules/typescript
    rm -rfv node_modules/{next,@next,@tabler,pdfjs-dist,*redux*,*babel*,prettier,@types*,*react*,*graphiql*}
    for pattern in '*.map' '*.map.js' '*.ts'; do
      find . -type f -name "$pattern" -exec rm -v {} +
    done
    popd
    echo "Removed unnecessary files"
  '';

  postFixup = ''
    wrapProgram $out/bin/bru \
      --prefix NODE_PATH : $out/lib/node_modules/usebruno/packages/bruno-cli/node_modules \
      --prefix NODE_PATH : $out/lib/node_modules
  '';

  passthru.tests.help = testers.runCommand {
    name = "${pname}-help-test";
    nativeBuildInputs = [ bruno-cli ];
    script = ''
      bru --help && touch $out
    '';
  };

  meta = {
    description = "CLI of the open-source IDE For exploring and testing APIs";
    homepage = "https://www.usebruno.com";
    license = lib.licenses.mit;
    mainProgram = "bru";
    maintainers = with lib.maintainers; [
      gepbird
      kashw2
      lucasew
      mattpolzin
      water-sucks
    ];
    platforms = lib.platforms.linux ++ lib.platforms.darwin;
  };
}