// Copyright Epic Games, Inc. All Rights Reserved. #pragma once #include "../zen.h" namespace zen { /** Deduplicate files in a tree using block cloning */ class DedupCommand : public ZenCmdBase { public: static constexpr char Name[] = "dedup"; static constexpr char Description[] = "Dedup files"; DedupCommand(); ~DedupCommand(); virtual cxxopts::Options& Options() override { return m_Options; } virtual void Run(const ZenCliOptions& GlobalOptions, int argc, char** argv) override; virtual ZenCmdCategory& CommandCategory() const override { return g_UtilitiesCategory; } private: cxxopts::Options m_Options{Name, Description}; std::vector m_Positional; std::filesystem::path m_DedupSource; std::filesystem::path m_DedupTarget; size_t m_SizeThreshold = 1024 * 1024; }; } // namespace zen