public static void Run( [Required] string command, [Required] string[] parameters, string?grpcHost = null, int?grpcPort = null, bool debug = false) { if (debug) { Debugger.Launch(); } using var consoleCancellationSource = new ConsoleCancellationSource(); Utilities.WithLoggerAsync(async(logger) => { var metadataClientConfiguration = new RoxisClientConfiguration(); metadataClientConfiguration.GrpcHost = grpcHost ?? metadataClientConfiguration.GrpcHost; metadataClientConfiguration.GrpcPort = grpcPort ?? metadataClientConfiguration.GrpcPort; await RunClientAsync( logger, new RoxisClientArguments(command, parameters) { Client = metadataClientConfiguration }, consoleCancellationSource.Token); }, null).GetAwaiter().GetResult(); }
private static MemoizationStoreConfiguration GetInProcMemoizationStoreConfiguration(AbsolutePath cacheRoot, Config config, CasConfig configCore) { if (config.UseRoxisMetadataStore) { var roxisClientConfiguration = new RoxisClientConfiguration(); if (!string.IsNullOrEmpty(config.RoxisMetadataStoreHost)) { roxisClientConfiguration.GrpcHost = config.RoxisMetadataStoreHost; } if (config.RoxisMetadataStorePort > 0) { roxisClientConfiguration.GrpcPort = config.RoxisMetadataStorePort; } return(new RoxisMemoizationDatabaseConfiguration() { MetadataClientConfiguration = roxisClientConfiguration, }); } else if (config.UseRocksDbMemoizationStore) { return(new RocksDbMemoizationStoreConfiguration() { Database = new RocksDbContentLocationDatabaseConfiguration(cacheRoot / "RocksDbMemoizationStore") { CleanOnInitialize = false, GarbageCollectionInterval = TimeSpan.FromSeconds(config.RocksDbMemoizationStoreGarbageCollectionIntervalInSeconds), MetadataGarbageCollectionEnabled = true, MetadataGarbageCollectionMaximumNumberOfEntriesToKeep = config.RocksDbMemoizationStoreGarbageCollectionMaximumNumberOfEntriesToKeep, OnFailureDeleteExistingStoreAndRetry = true, LogsKeepLongTerm = false, }, }); } else { var memoConfig = new SQLiteMemoizationStoreConfiguration(cacheRoot) { MaxRowCount = config.MaxStrongFingerprints, SingleInstanceTimeoutSeconds = (int)configCore.SingleInstanceTimeoutInSeconds, WaitForLruOnShutdown = WaitForLruOnShutdown }; memoConfig.Database.BackupDatabase = config.BackupLKGCache; memoConfig.Database.VerifyIntegrityOnStartup = config.CheckCacheIntegrityOnStartup; if (!string.IsNullOrEmpty(config.SynchronizationMode)) { memoConfig.Database.SyncMode = (SynchronizationMode)Enum.Parse(typeof(SynchronizationMode), config.SynchronizationMode, ignoreCase: true); } return(memoConfig); } }
private static MemoizationStoreConfiguration GetInProcMemoizationStoreConfiguration(AbsolutePath cacheRoot, Config config, CasConfig configCore) { if (config.RoxisEnabled) { var roxisClientConfiguration = new RoxisClientConfiguration(); if (!string.IsNullOrEmpty(config.RoxisMetadataStoreHost)) { roxisClientConfiguration.GrpcHost = config.RoxisMetadataStoreHost; } if (config.RoxisMetadataStorePort > 0) { roxisClientConfiguration.GrpcPort = config.RoxisMetadataStorePort; } return(new RoxisMemoizationDatabaseConfiguration() { MetadataClientConfiguration = roxisClientConfiguration, }); } else { return(new RocksDbMemoizationStoreConfiguration() { Database = new RocksDbContentLocationDatabaseConfiguration(cacheRoot / "RocksDbMemoizationStore") { CleanOnInitialize = false, GarbageCollectionInterval = TimeSpan.FromSeconds(config.RocksDbMemoizationStoreGarbageCollectionIntervalInSeconds), MetadataGarbageCollectionEnabled = true, MetadataGarbageCollectionMaximumNumberOfEntriesToKeep = config.RocksDbMemoizationStoreGarbageCollectionMaximumNumberOfEntriesToKeep, OnFailureDeleteExistingStoreAndRetry = true, LogsKeepLongTerm = false, }, }); } }