protected Package( string name = null, IPackageInitializer initializer = null, DirectoryInfo directory = null, IScheduler buildThrottleScheduler = null) : base(name, initializer, directory) { Initializer = initializer ?? new PackageInitializer("console", Name); _log = new Logger($"{nameof(Package)}:{Name}"); _buildThrottleScheduler = buildThrottleScheduler ?? TaskPoolScheduler.Default; _fullBuildRequestChannel = new Subject <Budget>(); _fullBuildThrottlerSubscription = new SerialDisposable(); _designTimeBuildRequestChannel = new Subject <Budget>(); _designTimeBuildThrottlerSubscription = new SerialDisposable(); SetupWorkspaceCreationFromBuildChannel(); SetupWorkspaceCreationFromDesignTimeBuildChannel(); TryLoadDesignTimeBuildFromBuildLog(); _buildSemaphore = _packageBuildSemaphores.GetOrAdd(Name, _ => new SemaphoreSlim(1, 1)); _publishSemaphore = _packagePublishSemaphores.GetOrAdd(Name, _ => new SemaphoreSlim(1, 1)); RoslynWorkspace = null; }
public static async Task <bool> Create( this IHaveADirectory packageBase, IPackageInitializer initializer) { using (var operation = Logger <PackageBase> .Log.OnEnterAndConfirmOnExit()) { if (!packageBase.Directory.Exists) { operation.Info("Creating directory {directory}", packageBase.Directory); packageBase.Directory.Create(); packageBase.Directory.Refresh(); } using (await FileLock.TryCreateAsync(packageBase.Directory)) { if (!packageBase.Directory.GetFiles("*", SearchOption.AllDirectories).Where(f => !FileLock.IsLockFile(f)).Any()) { operation.Info("Initializing package using {_initializer} in {directory}", initializer, packageBase.Directory); await initializer.Initialize(packageBase.Directory); } } operation.Succeed(); return(true); } }
public RebuildablePackage(string name = null, IPackageInitializer initializer = null, DirectoryInfo directory = null, IScheduler buildThrottleScheduler = null) : base(name, initializer, directory, buildThrottleScheduler) { if (BuildResultNeedsUpdate()) { Reset(); } }
public PackageBuilder(string packageName, IPackageInitializer packageInitializer = null) { if (string.IsNullOrWhiteSpace(packageName)) { throw new ArgumentException("Value cannot be null or whitespace.", nameof(packageName)); } PackageName = packageName; PackageInitializer = packageInitializer; }
public Initializer( IFCCEngine fccEngine, ILogger logger, ICoverageProjectFactory coverageProjectFactory, IPackageInitializer packageInitializer ) { this.fccEngine = fccEngine; this.logger = logger; this.coverageProjectFactory = coverageProjectFactory; this.packageInitializer = packageInitializer; }
protected PackageBase( string name = null, IPackageInitializer initializer = null, DirectoryInfo directory = null) { Initializer = initializer; Name = name ?? directory?.Name ?? throw new ArgumentException($"You must specify {nameof(name)}, {nameof(directory)}, or both."); Directory = directory ?? new DirectoryInfo(Path.Combine(Package.DefaultPackagesDirectory.FullName, Name)); _lazyCreation = new AsyncLazy <bool>(() => this.Create(Initializer)); LastBuildErrorLogFile = new FileInfo(Path.Combine(Directory.FullName, ".trydotnet-builderror")); }
public RebuildablePackage(string name = null, IPackageInitializer initializer = null, DirectoryInfo directory = null, IScheduler buildThrottleScheduler = null) : base(name, initializer, directory, buildThrottleScheduler) { _fileSystemWatcher = new FileSystemWatcher(Directory.FullName) { EnableRaisingEvents = true }; _fileSystemWatcher.Changed += FileSystemWatcherOnChangedOrDeleted; _fileSystemWatcher.Deleted += FileSystemWatcherOnDeleted; _fileSystemWatcher.Renamed += FileSystemWatcherOnRenamed; _fileSystemWatcher.Created += FileSystemWatcherOnCreated; }
public BlazorPackage( string name, IPackageInitializer initializer = null, DirectoryInfo directory = null) : base(name, initializer, directory) { if (string.IsNullOrWhiteSpace(name)) { throw new ArgumentException(nameof(name)); } if (name.StartsWith(runnerPrefix)) { CodeRunnerPath = $"/LocalCodeRunner/{name.Remove(0, runnerPrefix.Length)}"; CodeRunnerPathBase = CodeRunnerPath + "/"; } else { throw new ArgumentException(nameof(name)); } }
public static Package EmptyWorkspace([CallerMemberName] string testName = null, IPackageInitializer initializer = null, bool isRebuildablePackage = false) { if (!isRebuildablePackage) { return(new NonrebuildablePackage(directory: Package.CreateDirectory(testName), initializer: initializer)); } return(new RebuildablePackage(directory: Package.CreateDirectory(testName), initializer: initializer)); }
public NonrebuildablePackage(string name = null, IPackageInitializer initializer = null, DirectoryInfo directory = null, IScheduler buildThrottleScheduler = null) : base(name, initializer, directory, buildThrottleScheduler) { }