public override int Analyze() { Console.WriteLine("Loading file change tracker from cache graph directory '{0}'", m_cachedGraphDirectory); var loggingContext = new LoggingContext(nameof(FileChangeTrackerAnalyzer)); FileChangeTracker fileChangeTracker; var loadResult = FileChangeTracker.LoadTrackingChanges( loggingContext, null, null, m_inputFile, // if we do not pass the fingerprint, FileChangeTracker will not check for fingerprint match null, out fileChangeTracker, loadForAllCapableVolumes: false); if (!loadResult.Succeeded) { Console.Error.WriteLine("Unable to load file change tracker '" + m_inputFile + "'"); return(1); } using (var writer = File.CreateText(Path.GetFullPath(m_outputFile))) { fileChangeTracker.WriteText(writer); } return(0); }
public override int Analyze() { Console.WriteLine("Loading incremental scheduling state from cache graph directory '{0}'", m_cachedGraphDirectory); var loggingContext = new LoggingContext(nameof(IncrementalSchedulingStateAnalyzer)); var trackerFile = Path.Combine(m_cachedGraphDirectory, Scheduler.Scheduler.DefaultSchedulerFileChangeTrackerFile); FileChangeTracker fileChangeTracker; var loadResult = FileChangeTracker.LoadTrackingChanges( loggingContext, null, null, default(Utilities.Configuration.FileChangeTrackerSupersedeMode?), trackerFile, null, out fileChangeTracker, loadForAllCapableVolumes: false); if (!loadResult.Succeeded) { Console.Error.WriteLine("Unable to load file change tracker '" + trackerFile + "'"); return(1); } var incrementalSchedulingStateFile = Path.Combine(m_cachedGraphDirectory, Scheduler.Scheduler.DefaultIncrementalSchedulingStateFile); var factory = new IncrementalSchedulingStateFactory(loggingContext, analysisMode: true); var incrementalSchedulingState = factory.LoadOrReuse( fileChangeTracker.FileEnvelopeId, CachedGraph.PipGraph, null, UnsafeOptions.PreserveOutputsNotUsed, incrementalSchedulingStateFile, schedulerState: null); if (incrementalSchedulingState == null) { Console.Error.WriteLine("Unable to load incremental scheduling state '" + incrementalSchedulingStateFile + "'"); return(1); } using (var writer = File.CreateText(Path.GetFullPath(m_outputFile))) { incrementalSchedulingState.WriteText(writer); writer.WriteLine(string.Empty); fileChangeTracker.WriteText(writer); } return(0); }