public void Process(ConfigOptions o) { string basepath = Environment.GetEnvironmentVariable("som", EnvironmentVariableTarget.User); logger.Information($"basepath: {basepath}"); logger.Information($"Bootstrap: {o.Bootstrap}"); logger.Information($"Args: {o.Args}"); logger.Information($"Path: {o.Path}"); var splitArgs = o.Args?.Split(new[] { "/p" }, StringSplitOptions.None); logger.Information($"\n{string.Join("\n", from t in splitArgs where !string.IsNullOrWhiteSpace(t) select t)}"); var AppSettings = config.GetSection("AppSettings").GetChildren(); foreach (var item in AppSettings) { logger.Information("{k} {v}", item.Key, item.Value); } if (o.Bootstrap) { SomBootstrapper.Run(o); } }
public static void Run(ConfigOptions o) { DirectoryInfo DI; if (!string.IsNullOrWhiteSpace(o.Path)) { DI = new DirectoryInfo(o.Path); if (!DI.Exists) { Directory.CreateDirectory(o.Path); } Environment.SetEnvironmentVariable("som", o.Path, EnvironmentVariableTarget.User); } string basepath = Environment.GetEnvironmentVariable("som", EnvironmentVariableTarget.User).Trim(); if (string.IsNullOrWhiteSpace(basepath)) { string err = "\nProvide a path for som:\n"; err += " -p \" c:\\basepath_to_som \" "; Console.WriteLine(err); return; } string[] dirnames = new string[] { basepath, $"{basepath}parse", $"{basepath}compile", $"{basepath}logs" }; foreach (string dir in dirnames) { DI = new DirectoryInfo(dir); if (!DI.Exists) { Directory.CreateDirectory(dir); } } string[] filenames = new string[] { "som.cache", "somexec.ps1" }; foreach (string filename in filenames) { using (StreamWriter w = File.AppendText($"{basepath}\\{filename}")) { } } }