Unverified Commit b102c5b9 authored by Richard J. Acton's avatar Richard J. Acton
Browse files

globus-cli: init at 3.36.0

parent a1715bd2
Loading
Loading
Loading
Loading
+73 −0
Original line number Diff line number Diff line
{
  lib,
  fetchFromGitHub,
  python3Packages,
  installShellFiles,
  versionCheckHook,
}:

python3Packages.buildPythonApplication rec {
  pname = "globus-cli";
  version = "3.36.0";
  pyproject = true;

  src = fetchFromGitHub {
    owner = "globus";
    repo = "globus-cli";
    tag = version;
    hash = "sha256-Phu7nXMICSBFUX8wfzwA4ORBJIkhTDCMCqTyZvcG93c=";
  };

  build-system = with python3Packages; [
    setuptools
    ruamel-yaml
  ];

  dependencies = with python3Packages; [
    globus-sdk
    click
    jmespath
    packaging
    typing-extensions
    requests
  ];

  nativeBuildInputs = [ installShellFiles ];

  nativeCheckInputs = with python3Packages; [
    pytest
    pytest-xdist
    pytest-timeout
    responses

    click
    requests
    pyjwt
    cryptography
    packaging
    typing-extensions

    pytestCheckHook
    versionCheckHook
  ];

  versionCheckProgramArg = "version";

  postInstall = ''
    mkdir -p completions/{bash,zsh}
    $out/bin/globus --bash-completer > completions/bash/globus
    $out/bin/globus --zsh-completer > completions/zsh/_globus
    installShellCompletion \
      --bash completions/bash/globus \
      --zsh completions/zsh/_globus
  '';

  meta = {
    mainProgram = "globus";
    description = "Command-line interface to Globus REST APIs, including the Transfer API and the Globus Auth API";
    homepage = "https://github.com/globus/globus-cli";
    changelog = "https://github.com/globus/globus-cli/releases/tag/${src.tag}";
    license = lib.licenses.asl20;
    maintainers = [ lib.maintainers.richardjacton ];
  };
}