diff --git a/Daniel15.Cron/CronRunner.cs b/Daniel15.Cron/CronRunner.cs index df82e72..1813f58 100644 --- a/Daniel15.Cron/CronRunner.cs +++ b/Daniel15.Cron/CronRunner.cs @@ -9,46 +9,53 @@ namespace Daniel15.Cron { public class Program { - private readonly IApplicationEnvironment _appEnv; private readonly IServiceCollection _serviceCollection = new ServiceCollection(); private IServiceProvider _serviceProvider; - public Program(IApplicationEnvironment appEnv) - { - _appEnv = appEnv; - } - public void Main(string[] args) { _serviceCollection.AddDaniel15(); var builder = new ConfigurationBuilder() // This is extremely ugly, but the paths differ in dev vs in prod. // Need to figure out a nicer way of doing this. - .AddJsonFile("..\\Daniel15.Web\\config.json", optional: true) + .AddJsonFile("..\\Daniel15.Web\\config.Development.json", optional: true) .AddJsonFile("../../../../../../site/approot/packages/Daniel15.Web/1.0.0/root/config.Production.json", optional: true) .AddEnvironmentVariables(); _serviceCollection.AddDaniel15Config(builder.Build()); _serviceCollection.AddOptions(); _serviceProvider = _serviceCollection.BuildServiceProvider(); + if (args.Length == 0) + { + // No argument, so run everything + RunProjects(); + RunSocial(); + RunDisqus(); + return; + } + var operation = args[0]; switch (operation) { case "-disqus": - _serviceProvider.GetRequiredService().Sync(); + RunDisqus(); break; case "-social": - ActivatorUtilities.CreateInstance(_serviceProvider).Run(); + RunSocial(); break; case "-projects": - ActivatorUtilities.CreateInstance(_serviceProvider).Run(); + RunProjects(); break; default: throw new Exception("Invalid operation '" + operation + "'"); } } + + private void RunDisqus() => _serviceProvider.GetRequiredService().Sync(); + private void RunSocial() => ActivatorUtilities.CreateInstance(_serviceProvider).Run(); + private void RunProjects() => ActivatorUtilities.CreateInstance(_serviceProvider).Run(); } }