/// <inheritdoc/> public override void Run(CommandLine commandLine) { if (commandLine.Arguments.Length == 0 || commandLine.HasHelpOption) { Help(); Program.Exit(0); } string folder = commandLine.Arguments.First(); string path; switch (folder.ToLowerInvariant()) { case "ansible-roles": path = HiveHelper.GetAnsibleRolesFolder(); break; case "ansible-vault": path = HiveHelper.GetAnsiblePasswordsFolder(); break; case "logins": path = HiveHelper.GetLoginFolder(); break; case "setup": path = HiveHelper.GetVmTemplatesFolder(); break; case "temp": path = Program.HiveTempFolder; break; case "vpn": path = HiveHelper.GetVpnFolder(); break; default: Console.Error.WriteLine($"*** ERROR: Unexpected folder [{commandLine.Arguments.First()}]."); Program.Exit(1); return; } if (commandLine.HasOption("--open")) { if (NeonHelper.IsWindows) { Process.Start(Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Windows), "explorer.exe"), $"\"{path}\""); } else if (NeonHelper.IsOSX) { throw new NotImplementedException("$todo(jeff.lill): Implement this for OSX."); } else { throw new NotSupportedException("[--open] option is not supported on this platform."); } } else { Console.Write(path); } }