{ lib, stdenv, fetchFromGitHub, nodejs, yarn-berry_4, diffutils, zip, jq, python3, unzip, testers, }: let yarn-berry = yarn-berry_4; in stdenv.mkDerivation (finalAttrs: { pname = "aws-cdk-cli"; version = "2.1142.0"; src = fetchFromGitHub { owner = "aws"; repo = "aws-cdk-cli"; tag = "cdk@v${finalAttrs.version}"; hash = "sha256-6CYUcMXwP2yNsIix+2ECTX1k9nMZ3R3JeIsIjTNoYvk="; }; missingHashes = ./missing-hashes.json; offlineCache = yarn-berry.fetchYarnBerryDeps { inherit (finalAttrs) src missingHashes; hash = "sha256-lTT7hO0dZxrUlmah7d9UQEIAt/STLoH0xZ3oxx2Vh5I="; }; nativeBuildInputs = [ yarn-berry yarn-berry.yarnBerryConfigHook nodejs python3 zip jq # tests diffutils unzip ]; env = { NX_DISABLE_REMOTE_CACHE = "true"; NX_TASKS_RUNNER_DYNAMIC_OUTPUT = "false"; NX_VERBOSE_LOGGING = "true"; # Needed to properly embed version info CODEBUILD_RESOLVED_SOURCE_VERSION = finalAttrs.version; }; # Regular "build" is very heavy and does things we don't need. yarnBuildScript = "compile"; postPatch = let cliVersionJson = builtins.toJSON { inherit (finalAttrs) version; }; in '' echo '${cliVersionJson}' > packages/@aws-cdk/cloud-assembly-schema/cli-version.json ''; preBuild = '' export NX_PARALLEL="$NIX_BUILD_CORES" pushd packages/@aws-cdk/integ-runner patchShebangs build-tools/generate.sh build-tools/generate.sh popd pushd packages/aws-cdk patchShebangs generate.sh ./generate.sh popd ''; buildPhase = '' runHook preBuild yarn "$yarnBuildScript" runHook postBuild ''; installPhase = '' runHook preInstall mkdir -p $out/lib/node_modules/aws-cdk-cli cp -r . $out/lib/node_modules/aws-cdk-cli runHook postInstall ''; postInstall = '' # Manually bundle non-bundled dependencies cp -r node_modules/jsonschema $out/lib/node_modules/aws-cdk-cli/node_modules/jsonschema cp -r node_modules/decamelize $out/lib/node_modules/aws-cdk-cli/node_modules/decamelize patchShebangs "$out/lib/node_modules/aws-cdk-cli/node_modules/aws-cdk/bin" ln -s "$out/lib/node_modules/aws-cdk-cli/node_modules/aws-cdk/bin" "$out/bin" # Delete broken symlinks find "$out/lib/node_modules" -xtype l -delete # Fix version pushd $out/lib/node_modules/aws-cdk-cli/packages/aws-cdk mv package.json package.json.bak jq '.version = "${finalAttrs.version}"' < package.json.bak > package.json rm package.json.bak mv build-info.json bi.json jq '.commit = "nixpkgs"' < bi.json > build-info.json rm bi.json popd ''; # Fixup takes an absurdly long time, so disable it dontFixup = true; passthru = { tests.version = testers.testVersion { package = finalAttrs.finalPackage; }; updateScript = ./update.sh; }; meta = { description = "AWS CDK Toolkit"; homepage = "https://docs.aws.amazon.com/cdk/v2/guide/cli.html"; license = lib.licenses.asl20; maintainers = [ ]; mainProgram = "cdk"; platforms = lib.platforms.all; }; })