Esempio n. 1
0
    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}");
      }
    }
Esempio n. 2
0
    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);
    }
Esempio n. 3
0
    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"));
      }
    }
Esempio n. 4
0
    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);
    }