Files

84 lines
1.8 KiB
Nix

{
lib,
stdenvNoCC,
fetchurl,
installShellFiles,
versionCheckHook,
}:
let
version = "3000.2.17";
throwSystem = throw "Unsupported system: ${stdenvNoCC.hostPlatform.system}";
srcs = {
x86_64-linux = fetchurl {
url = "https://static.devin.ai/cli/${version}/devin-${version}-x86_64-unknown-linux.tar.gz";
hash = "sha256-8OHpNjr8buaMTvh7q0rrf/XMCKX6g4NQ7zzu/bsqK+I=";
};
aarch64-linux = fetchurl {
url = "https://static.devin.ai/cli/${version}/devin-${version}-aarch64-unknown-linux.tar.gz";
hash = "sha256-EW3HHvCFqSK8P/DqA3fUsmxSmkMdWCRuNlcpE+LSViQ=";
};
aarch64-darwin = fetchurl {
url = "https://static.devin.ai/cli/${version}/devin-${version}-aarch64-apple-darwin.tar.gz";
hash = "sha256-YOLt0yH1zV4c/fPW1eEgZPJTJsqONqitcfQ9AAdF3/g=";
};
};
in
stdenvNoCC.mkDerivation (finalAttrs: {
pname = "devin-cli";
inherit version;
outputs = [
"out"
"man"
"doc"
];
strictDeps = true;
__structuredAttrs = true;
src = srcs.${stdenvNoCC.hostPlatform.system} or throwSystem;
sourceRoot = ".";
nativeBuildInputs = [ installShellFiles ];
dontConfigure = true;
dontBuild = true;
installPhase = ''
runHook preInstall
installBin ./bin/devin
installManPage ./share/man/man1/*.1
mkdir -p $out/share/doc
mv ./share/devin/docs/* $out/share/doc
runHook postInstall
'';
nativeInstallCheckInputs = [ versionCheckHook ];
doInstallCheck = true;
passthru.updateScript = ./update.sh;
meta = {
description = "Cognition's Devin Agent CLI";
homepage = "https://devin.ai/cli";
license = lib.licenses.unfree;
sourceProvenance = [ lib.sourceTypes.binaryNativeCode ];
maintainers = with lib.maintainers; [
ethancedwards8
nhshah15
];
mainProgram = "devin";
};
})