public MSBuildWorkspaceUpgradeContext( UpgradeOptions options, ITargetTFMSelector tfmSelector, ITargetFrameworkMonikerFactory tfmFactory, IVisualStudioFinder vsFinder, ILogger <MSBuildWorkspaceUpgradeContext> logger) { if (options is null) { throw new ArgumentNullException(nameof(options)); } _projectCache = new Dictionary <string, IProject>(StringComparer.OrdinalIgnoreCase); _path = options.ProjectPath; _tfmSelector = tfmSelector ?? throw new ArgumentNullException(nameof(tfmSelector)); TfmFactory = tfmFactory ?? throw new ArgumentNullException(nameof(tfmFactory)); _logger = logger; var vsPath = vsFinder.GetLatestVisualStudioPath(); if (vsPath is null) { throw new UpgradeException("Could not find a Visual Studio install to use for upgrade."); } _vsPath = vsPath; GlobalProperties = CreateProperties(); ProjectCollection = new ProjectCollection(globalProperties: GlobalProperties); }
public MSBuildWorkspaceUpgradeContext( UpgradeOptions options, IVisualStudioFinder vsFinder, IPackageRestorer restorer, ITargetFrameworkMonikerComparer comparer, IComponentIdentifier componentIdentifier, ILogger <MSBuildWorkspaceUpgradeContext> logger, IUpgradeContextProperties properties) { if (options is null) { throw new ArgumentNullException(nameof(options)); } if (vsFinder is null) { throw new ArgumentNullException(nameof(vsFinder)); } _projectCache = new Dictionary <string, IProject>(StringComparer.OrdinalIgnoreCase); InputPath = options.ProjectPath; _restorer = restorer; _comparer = comparer; _componentIdentifier = componentIdentifier ?? throw new ArgumentNullException(nameof(componentIdentifier)); _logger = logger ?? throw new ArgumentNullException(nameof(logger)); _properties = properties ?? throw new ArgumentNullException(nameof(properties)); _vsPath = vsFinder.GetLatestVisualStudioPath(); GlobalProperties = CreateProperties(); ProjectCollection = new ProjectCollection(globalProperties: GlobalProperties); }
private static void HandleConfigOptions() { configOptions = new UpgradeOptions(); configOptions.Initialize(); VehicleUpgrader.SetBonusSpeedMultipliers(configOptions.SeamothBonusSpeedMultiplier, configOptions.ExosuitBonusSpeedMultiplier); }
public MSBuildTargetTFMSelector(UpgradeOptions options, IOptions <TFMSelectorOptions> selectorOptions, ITargetFrameworkMonikerComparer tfmComparer, ILogger <MSBuildTargetTFMSelector> logger) { _tfmComparer = tfmComparer ?? throw new ArgumentNullException(nameof(tfmComparer)); _logger = logger ?? throw new ArgumentNullException(nameof(logger)); _currentTFMBase = selectorOptions?.Value.CurrentTFMBase ?? DefaultCurrentTFMBase; _ltsTFMBase = selectorOptions?.Value.LTSTFMBase ?? DefaultLTSTFMBase; _upgradeTarget = options?.UpgradeTarget ?? throw new ArgumentNullException(nameof(options)); }
public NonInteractiveUserInput(UpgradeOptions options) { if (options is null) { throw new ArgumentNullException(nameof(options)); } _waitPeriod = TimeSpan.FromSeconds(options.NonInteractiveWait); }
public static UpgradeOrchestrator Create(UpgradeOptions options) { #if MACOS_BUILD return(new MacUpgradeOrchestrator(options)); #elif WINDOWS_BUILD return(new WindowsUpgradeOrchestrator(options)); #else throw new NotImplementedException(); #endif }
public FileUpgradeStateFactory(UpgradeOptions options, ILogger <FileUpgradeStateFactory> logger) { if (options is null) { throw new ArgumentNullException(nameof(options)); } _path = Path.Combine(options.Project.DirectoryName !, ".upgrade-assistant"); _logger = logger; }
private static AutoMock GetMock(UpgradeOptions options) { var mock = AutoMock.GetLoose(cfg => { cfg.RegisterInstance(options); cfg.RegisterInstance <IUpgradeContextProperties>(new UpgradeContextProperties()); cfg.RegisterType <NonInteractiveUserInput>().As <IUserInput>(); }); return(mock); }
public EntrypointSelectionStep( UpgradeOptions options, IPackageRestorer restorer, IUserInput userInput, ILogger <EntrypointSelectionStep> logger) : base(logger) { _isNonInteractiveMode = options?.NonInteractive ?? throw new ArgumentNullException(nameof(options)); _entryPoint = options?.EntryPoint ?? string.Empty; _restorer = restorer ?? throw new ArgumentNullException(nameof(restorer)); _userInput = userInput ?? throw new ArgumentNullException(nameof(userInput)); }
public EntrypointSelectionStep( UpgradeOptions options, IEntrypointResolver entrypointResolver, IPackageRestorer restorer, IUserInput userInput, ILogger <EntrypointSelectionStep> logger) : base(logger) { _options = options; _entrypointResolver = entrypointResolver ?? throw new ArgumentNullException(nameof(entrypointResolver)); _restorer = restorer ?? throw new ArgumentNullException(nameof(restorer)); _userInput = userInput ?? throw new ArgumentNullException(nameof(userInput)); }
public async Task <int> UpgradeAsync(string inputPath, string entrypoint, ITestOutputHelper output, TimeSpan maxDuration) { if (string.IsNullOrEmpty(inputPath)) { throw new ArgumentException($"'{nameof(inputPath)}' cannot be null or empty.", nameof(inputPath)); } if (output is null) { throw new ArgumentNullException(nameof(output)); } var project = new FileInfo(inputPath); using var cts = new CancellationTokenSource(maxDuration); var options = new UpgradeOptions { SkipBackup = true, Project = project, NonInteractive = true, NonInteractiveWait = 0, EntryPoint = new[] { entrypoint }, }; return(await Program.RunUpgradeAsync(options, host => host .ConfigureServices((_, services) => { services.AddOptions <PackageUpdaterOptions>().Configure(o => { o.PackageMapPath = "PackageMaps"; }); }) .ConfigureContainer <ContainerBuilder>(builder => { builder.RegisterType <KnownPackages>() .SingleInstance() .AsSelf(); builder.RegisterInstance(UnknownPackages); builder.RegisterDecorator <InterceptingKnownPackageLoader, IPackageLoader>(); }) .ConfigureLogging((ctx, logging) => { logging.SetMinimumLevel(LogLevel.Trace); logging.AddProvider(new TestOutputHelperLoggerProvider(output)); }), cts.Token).ConfigureAwait(false)); }
public TargetFrameworkSelector( UpgradeOptions options, ITargetFrameworkMonikerComparer comparer, IOptions <TFMSelectorOptions> selectorOptions, IEnumerable <ITargetFrameworkSelectorFilter> selectors, ILogger <TargetFrameworkSelector> logger) { _comparer = comparer; _selectors = selectors; _logger = logger; _currentTFMBase = selectorOptions?.Value.CurrentTFMBase ?? DefaultCurrentTFMBase; _ltsTFMBase = selectorOptions?.Value.LTSTFMBase ?? DefaultLTSTFMBase; _upgradeTarget = options?.UpgradeTarget ?? throw new ArgumentNullException(nameof(options)); }
public PackageLoader(UpgradeOptions options, ILogger <PackageLoader> logger) { if (options is null) { throw new ArgumentNullException(nameof(options)); } if (options.ProjectPath is null) { throw new ArgumentException("Project path must be set in UpgradeOptions", nameof(options)); } _logger = logger ?? throw new ArgumentNullException(nameof(logger)); _cache = new SourceCacheContext(); _packageSources = GetPackageSources(Path.GetDirectoryName(options.ProjectPath)); }
public static void Patch() { #if DEBUG QuickLogger.DebugLogsEnabled = true; #endif try { QuickLogger.Info("Started patching - " + QuickLogger.GetAssemblyVersion()); CrossModUpdates(); CraftTreeHandler.AddTabNode(CraftTree.Type.Workbench, WorkBenchTab, "Armor Modules", SpriteManager.Get(TechType.VehicleArmorPlating)); //Handle SpeedBooster var speedModule = new SpeedBooster(); speedModule.Patch(); //Handle HullArmorUpgrades var hullArmorMk2Module = new HullArmorMk2(); hullArmorMk2Module.Patch(); var hullArmorMk3Module = new HullArmorMk3(hullArmorMk2Module.TechType); hullArmorMk3Module.Patch(); var hullArmorMk4Module = new HullArmorMk4(hullArmorMk3Module.TechType); hullArmorMk4Module.Patch(); //Handle Config Options var configOptions = new UpgradeOptions(); configOptions.Initialize(); VehicleUpgrader.SetBonusSpeedMultipliers(configOptions.SeamothBonusSpeedMultiplier, configOptions.ExosuitBonusSpeedMultiplier); var harmony = HarmonyInstance.Create("com.upgradedvehicles.psmod"); harmony.PatchAll(Assembly.GetExecutingAssembly()); QuickLogger.Info("Finished patching"); } catch (Exception ex) { QuickLogger.Error(ex); } }
public static async Task <bool> UpgradeAsync(string inputPath, string entrypoint, ITestOutputHelper output, TimeSpan maxDuration) { if (string.IsNullOrEmpty(inputPath)) { throw new ArgumentException($"'{nameof(inputPath)}' cannot be null or empty.", nameof(inputPath)); } if (output is null) { throw new ArgumentNullException(nameof(output)); } var project = new FileInfo(inputPath); using var cts = new CancellationTokenSource(maxDuration); var options = new UpgradeOptions { SkipBackup = true, Project = project, NonInteractive = true, NonInteractiveWait = 0, EntryPoint = entrypoint, }; var result = await Program.RunUpgradeAsync(options, host => host .ConfigureServices((_, services) => { services.AddOptions <PackageUpdaterOptions>().Configure(o => { o.PackageMapPath = "PackageMaps"; o.UpgradeAnalyzersPackageVersion = "1.0.0"; }); }) .ConfigureLogging((ctx, logging) => { logging.SetMinimumLevel(LogLevel.Trace); logging.AddProvider(new TestOutputHelperLoggerProvider(output)); }), cts.Token).ConfigureAwait(false); return(result == ErrorCodes.Success); }
public static async Task UpgradeAsync(string inputPath, string entrypoint, TextWriter output, int timeoutSeconds = 300) { if (string.IsNullOrEmpty(inputPath)) { throw new ArgumentException($"'{nameof(inputPath)}' cannot be null or empty.", nameof(inputPath)); } if (output is null) { throw new ArgumentNullException(nameof(output)); } var project = new FileInfo(inputPath); using var cts = new CancellationTokenSource(); var options = new UpgradeOptions { SkipBackup = true, Project = project, NonInteractive = true, NonInteractiveWait = 0, EntryPoint = entrypoint, }; var upgradeTask = Program.RunUpgradeAsync(options, (context, services) => RegisterTestServices(services), cts.Token); var timeoutTimer = Task.Delay(timeoutSeconds * 1000, cts.Token); await Task.WhenAny(upgradeTask, timeoutTimer).ConfigureAwait(false); cts.Cancel(); try { await Task.WhenAll(upgradeTask, timeoutTimer).ConfigureAwait(false); } catch (OperationCanceledException) { } }
public PackageLoader(UpgradeOptions options, ILogger <PackageLoader> logger) { if (options is null) { throw new ArgumentNullException(nameof(options)); } if (options.ProjectPath is null) { throw new ArgumentException("Project path must be set in UpgradeOptions", nameof(options)); } _logger = logger ?? throw new ArgumentNullException(nameof(logger)); _nugetLogger = new NuGetLogger(logger); _cache = new SourceCacheContext(); _packageSources = GetPackageSources(Path.GetDirectoryName(options.ProjectPath)); _sourceRepositoryCache = new Dictionary <PackageSource, SourceRepository>(); var settings = Settings.LoadDefaultSettings(null); _cachePath = SettingsUtility.GetGlobalPackagesFolder(settings); }
public BackupStep(UpgradeOptions options, ILogger <BackupStep> logger, IUserInput userInput) : base(logger) { _skipBackup = options?.SkipBackup ?? throw new ArgumentNullException(nameof(options)); _userInput = userInput ?? throw new ArgumentNullException(nameof(userInput)); }
public UpgradeCommand(UpgradeOptions options, BoundConfig config, string[] commandLineArgs) : base(config, commandLineArgs) => _options = options;
public MacUpgradeOrchestrator(UpgradeOptions options) : base(options) { }
public LinuxUpgradeOrchestrator(UpgradeOptions options) : base(options) { }
public NonInteractiveUserInput(UpgradeOptions options) { _waitPeriod = TimeSpan.FromSeconds(options.NonInteractiveWait); }