// Copyright Epic Games, Inc. All Rights Reserved. #pragma once #include "Commandlets/Commandlet.h" #include "Containers/Array.h" #include "Containers/UnrealString.h" #include "HAL/Platform.h" #include "UObject/UObjectGlobals.h" #include "ContentValidationCommandlet.generated.h" class IAssetRegistry; class UObject; UCLASS() class UContentValidationCommandlet : public UCommandlet { GENERATED_UCLASS_BODY() public: // Begin UCommandlet Interface virtual int32 Main(const FString& Params) override; // End UCommandlet Interface private: /** Validate steps */ bool AutoExportMCPTemplates(const TArray<FString>& ChangedPackageNames, const TArray<FString>& DeletedPackageNames, const TArray<FString>& ChangedCode, const TArray<FString>& ChangedOtherFiles, const FString& SyncedCL, const FString& Robomerge, bool& bOutDidExport); bool AutoExportDadContent(const FString& BuildCL, const FString& AccessToken); bool AutoPersistDadContent(const FString& AccessToken); private: /** Helper functions */ bool GetAllChangedFiles(IAssetRegistry& AssetRegistry, const FString& P4CmdString, TArray<FString>& OutChangedPackageNames, TArray<FString>& DeletedPackageNames, TArray<FString>& OutChangedCode, TArray<FString>& OutChangedOtherFiles) const; void GetAllPackagesInPath(IAssetRegistry& AssetRegistry, const FString& InPathString, TArray<FString>& OutPackageNames) const; void GetAllPackagesOfType(const FString& OfTypeString, TArray<FString>& OutPackageNames) const; bool LaunchP4(const FString& Args, TArray<FString>& Output, int32& OutReturnCode) const; FString GetLocalPathFromDepotPath(const FString& DepotPathName) const; };