public static async Task Main(string[] args) { string modeEnv = Environment.GetEnvironmentVariable("PTDDCLONEALL_MODE"); string mode = CloneAllService.GetMode(modeEnv); Log($"PTDDCloneAll starting. Migration mode: {mode}"); string sfAppDir = Environment.GetEnvironmentVariable("SF_APP_DIR") ?? "../../SIL.XForge.Scripture"; Directory.SetCurrentDirectory(sfAppDir); IWebHostBuilder builder = CreateWebHostBuilder(args); IWebHost webHost = builder.Build(); try { await webHost.StartAsync(); } catch (HttpRequestException) { Log("There was an error starting the program before getting to the migration" + " part. Maybe the SF server is running and needs shut down? Rethrowing."); throw; } await SelectProjectsAndClone(webHost, mode); await webHost.StopAsync(); Log("Clone all projects - Completed"); }
public TestEnvironment() { RealtimeService = new SFMemoryRealtimeService(); ParatextService = Substitute.For <IParatextService>(); PTDDSyncRunner = Substitute.For <IPTDDSyncRunner>(); SiteOptions = Substitute.For <IOptions <SiteOptions> >(); SiteOptions.Value.Returns(new SiteOptions { SiteDir = "scriptureforge" }); FileSystemService = Substitute.For <IFileSystemService>(); Func <IPTDDSyncRunner> syncRunnerFactory = () => PTDDSyncRunner; var userSecrets = new MemoryRepository <UserSecret>(new[] { new UserSecret { Id = "user01", ParatextTokens = new Tokens { AccessToken = "test_access_token1", RefreshToken = "test_refresh_token1" } }, new UserSecret { Id = "user03", ParatextTokens = new Tokens { AccessToken = "test_access_token2", RefreshToken = "test_refresh_token2" } } }); SetupSFData(true, true); Service = new CloneAllService(syncRunnerFactory, RealtimeService, SiteOptions, ParatextService, userSecrets, FileSystemService); }