예제 #1
0
        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);
            }
        }
예제 #2
0
        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}"))  {  }
            }
        }