public void Run() { var dapCfg = new DappConfig("/tmp/config"); dapCfg.Load(); var logger = new DockerLogger(opts.Verbose); _dockerService = new DockerService(dapCfg, logger); try { if (parsed) { var apps = new DockerApps(dapCfg); // Generate template if (!string.IsNullOrEmpty(opts.GenerateApp)) { apps.GenerateTemplate(opts.GenerateApp); } // Applications if (opts.List) { Console.WriteLine("Applications:"); foreach (var p in apps.Apps) { Console.WriteLine("|>>" + p.Name); } Console.WriteLine("NMew"); var appsEnumerable = PrepareApps(apps.Apps); TableFormatter.Format(Console.Error, appsEnumerable, "\t{0}\t({1})\n"); return; } // Run if (!string.IsNullOrEmpty(opts.App)) { RunApp(apps, opts.App, opts.RunOpts); return; } // Details if (!string.IsNullOrEmpty(opts.Details)) { ShowApp(apps, opts.Details); return; } // Desktop file if (!string.IsNullOrEmpty(opts.CreateDesktop)) { var d = new Desktop.Desktop(dapCfg, _runnable); CreateDesktop(d, apps, opts.CreateDesktop); return; } Console.WriteLine(opts.GetUsage()); } else { // Parse error Console.WriteLine(opts.GetUsage()); } } catch (DockerException ex) { logger.Exit($"Exited with exit code ({ex.ExitCode}): docker {ex.Message}"); } }
private void CreateDesktop(Desktop.Desktop desktop, DockerApps apps, string appName) { var toRun = apps.GetApps(appName).ToArray(); if (!CheckApps(toRun)) return; var app = toRun[0]; desktop.Create(app); }
private void ShowApp(DockerApps apps, string appName) { var toRun = apps.GetApps(appName).ToArray(); if (!CheckApps(toRun)) return; var app = toRun[0]; var container = app.Container; // DockerContainer Console.Out.WriteLine("DockerContainer: "); var docker = Docker; var status = docker.GetContainerStatus(docker.GetContainerName(container.Name)); Console.Out.Write(string.Format($"\t{container.Name} ({status})\n")); // DockerContainer Path Console.Out.WriteLine("Path: "); Console.Out.Write(string.Format($"\t{container.ContainerPath}\n")); // Mounts Console.Out.WriteLine("Mounts: "); foreach (var mount in container.Config.Mounts) { Console.Out.Write(string.Format($"\t{mount.Mode.ToUpper()}: {mount.Host} => {mount.Container}\n")); } }
private void RunApp(DockerApps apps, string appName, RunOptions options = RunOptions.None) { var toRun = apps.GetApps(appName).ToArray(); if (!CheckApps(toRun)) return; var app = toRun[0]; var docker = Docker; docker.RunDockerApp(app, options); }