// Copyright Epic Games, Inc. All Rights Reserved. using BuildAgent.Workspace.Common; using System; using System.Collections.Generic; using System.ComponentModel; using System.Linq; using System.Text; using System.Threading.Tasks; using Tools.DotNETCommon; namespace BuildAgent.Workspace { [ProgramMode("PopulateCache", "Populates the cache with the head revision of the given streams")] class PopulateCacheMode : WorkspaceMode { [CommandLine("-ClientAndStream=")] [Description("Specifies client and stream pairs, in the format Client:Stream")] List ClientAndStreamParams = new List(); [CommandLine("-Filter=")] [Description("Filters for the files to sync, in P4 syntax (eg. /Engine/...)")] List Filters = new List(); [CommandLine("-FakeSync")] [Description("Simulates the sync without actually fetching any files")] bool bFakeSync = false; protected override void Execute(Repository Repo) { List ExpandedFilters = ExpandFilters(Filters); List> ClientAndStreams = ParseClientAndStreams(ClientAndStreamParams); Repo.Populate(ClientAndStreams, Filters, bFakeSync); } } }