예제 #1
0
        public bool Run(bool preview)
        {
            Log.Information($"Task: {_taskCreator.Description}");
            UpdateFolderOptions options = _folder.Options;
            FolderFinder        finder  = new FolderFinder();
            FolderUpdater       updater = new FolderUpdater();

            _onUpdate();
            var folders = finder
                          .FindWithMask(
                options.WorkingDirectory,
                options.Masks,
                options.Recursively)
                          .ToArray();

            bool atLeastOneUpdated = false;

            _onUpdate();
            updater.Run(
                folders,
                folder =>
            {
                IFolderOrFileTask task = _taskCreator.Create();
                atLeastOneUpdated     |= task.Run(folder, options.WithPreview(preview));
                _onUpdate();
            });
            if (!atLeastOneUpdated)
            {
                Log.Information("\tTask completed. No changes.");
            }
            return(atLeastOneUpdated);
        }
        public WithTargetFolderOrFile(FolderOrFileTaskCreator <TCreator> taskCreator)
        {
            if (string.IsNullOrEmpty(taskCreator.Path))
            {
                throw new ArgumentException("Path is not set.");
            }

            File = new TargetFile <TCreator>(
                UpdateFileOptions.Create(taskCreator.Path),
                taskCreator);

            Folder = new TargetFolder <TCreator>(
                UpdateFolderOptions.Create(taskCreator.Path),
                taskCreator);
        }
 public TargetFolder(UpdateFolderOptions options, FolderOrFileTaskCreator <TCreator> taskCreator)
     : base(options, taskCreator)
 {
 }