From 4bf427a738e2e7786d39afdf16dd299d1805c23a Mon Sep 17 00:00:00 2001 From: ivanbrennan Date: Mon, 14 Mar 2022 15:23:55 -0400 Subject: rover: init at 0.4.8 Add Rover CLI for managing and maintaining graphs with Apollo Studio. --- pkgs/development/tools/rover/default.nix | 56 ++++++++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100644 pkgs/development/tools/rover/default.nix (limited to 'pkgs/development/tools/rover/default.nix') diff --git a/pkgs/development/tools/rover/default.nix b/pkgs/development/tools/rover/default.nix new file mode 100644 index 00000000000..7232089ee99 --- /dev/null +++ b/pkgs/development/tools/rover/default.nix @@ -0,0 +1,56 @@ +{ lib +, callPackage +, fetchFromGitHub +, perl +, rustPlatform +, librusty_v8 ? callPackage ./librusty_v8.nix { } +}: + +rustPlatform.buildRustPackage rec { + pname = "rover"; + version = "0.4.8"; + + src = fetchFromGitHub { + owner = "apollographql"; + repo = pname; + rev = "v${version}"; + sha256 = "sha256-9o2bGa9vxN7EprKgsy9TI7AFmwjo1OT1pDyiLierTq0="; + }; + + cargoSha256 = "sha256-4oNuyZ1xNK2jP9QFEcthCjEQRyvFykd5N0j5KCXrzVY="; + + # The v8 package will try to download a `librusty_v8.a` release at build time + # to our read-only filesystem. To avoid this we pre-download the file and + # export it via RUSTY_V8_ARCHIVE + RUSTY_V8_ARCHIVE = librusty_v8; + + nativeBuildInputs = [ + perl + ]; + + # The rover-client's build script (crates/rover-client/build.rs) will try to + # download the API's graphql schema at build time to our read-only filesystem. + # To avoid this we pre-download it to a location the build script checks. + preBuild = '' + mkdir crates/rover-client/.schema + cp ${./schema}/etag.id crates/rover-client/.schema/ + cp ${./schema}/schema.graphql crates/rover-client/.schema/ + ''; + + passthru.updateScript = ./update.sh; + + # Some tests try to write configuration data to a location in the user's home + # directory. Since this would be /homeless-shelter during the build, point at + # a writeable location instead. + preCheck = '' + export APOLLO_CONFIG_HOME="$PWD" + ''; + + meta = with lib; { + description = "A CLI for managing and maintaining graphs with Apollo Studio"; + homepage = "https://www.apollographql.com/docs/rover"; + license = licenses.mit; + maintainers = [ maintainers.ivanbrennan ]; + platforms = ["x86_64-linux"]; + }; +} -- cgit 1.4.1