private static int Sync(SyncCommandLineOptions commandLineOptions) { var options = new SyncCommandOptions(); if (!commandLineOptions.TryParse(options)) { return(ExitCodes.Error); } return(Execute(new SyncCommand(options), commandLineOptions)); }
public bool TryParse(SyncCommandOptions options) { var baseOptions = (CommonCopyCommandOptions)options; if (!TryParse(baseOptions)) { return(false); } options = (SyncCommandOptions)baseOptions; if (!TryParseTargetDirectory(Second, out string?second, options, nameof(Second), OptionNames.Second)) { return(false); } if (!TryParseAsEnumFlags( Compare, OptionNames.Compare, out FileCompareOptions compareOptions, FileCompareOptions.Attributes | FileCompareOptions.Content | FileCompareOptions.ModifiedTime | FileCompareOptions.Size, OptionValueProviders.FileCompareOptionsProvider)) { return(false); } if (!TryParseAsEnum( Conflict, OptionNames.Conflict, out SyncConflictResolution conflictResolution, defaultValue: SyncConflictResolution.FirstWins, provider: OptionValueProviders.SyncConflictResolutionProvider)) { return(false); } options.SearchTarget = SearchTarget.All; options.CompareOptions = compareOptions; options.DryRun = DryRun; options.Target = second; options.ConflictResolution = conflictResolution; options.AskMode = (Ask) ? AskMode.File : AskMode.None; #if DEBUG options.DetectRename = DetectRename; #endif return(true); }
internal static void WriteSyncCommand(SyncCommandOptions options) { #if DEBUG WriteOption("allowed time diff", options.AllowedTimeDiff); #endif WriteOption("ask", options.AskMode); WriteOption("attributes", options.Attributes); WriteOption("attributes to skip", options.AttributesToSkip); WriteOption("compare", options.CompareOptions); WriteOption("conflict resolution", options.ConflictResolution); WriteFilter("content filter", options.ContentFilter); WriteEncoding("default encoding", options.DefaultEncoding); #if DEBUG WriteOption("detect rename", options.DetectRename); #endif WriteFilter("directory filter", options.DirectoryFilter, options.DirectoryNamePart); WriteDisplayFormat("display", options.Format); WriteOption("dry run", options.DryRun); WriteOption("empty", options.EmptyOption); WriteFilter("extension filter", options.ExtensionFilter); WriteFilePropertyFilter( "file properties", options.SizePredicate, options.CreationTimePredicate, options.ModifiedTimePredicate); WriteOption("flat", options.Flat); WriteOption("highlight options", options.HighlightOptions); WriteOption("no compare attributes", options.NoCompareAttributes); WriteOption("max matching files", options.MaxMatchingFiles); WriteOption("max matches in file", options.MaxMatchesInFile); WriteFilter("name filter", options.NameFilter, options.NamePart); WritePaths("paths", options.Paths); WriteOption("progress", options.Progress); WriteOption("recurse subdirectories", options.RecurseSubdirectories); WriteOption("search target", options.SearchTarget); WriteSortOptions("sort", options.SortOptions); WriteOption("second", options.Target); }