public Launcher(Server server, StartTask task) { Task = task; Task.SourcePath = SourcePath?.TrimEnd('/', '\\'); Server.RemotePath = RemotePath?.TrimEnd('/', '\\'); Server = server; }
public void Launcher(StartTask app) { switch (Type) { case ServerTypes.LocalMono: return(new LocalLauncher(this, app)); case ServerTypes.RemoteSsh: return(new RemoteSshLauncher(this, app)); case ServerTypes.WSLBash: return(new LocalBashLauncher(this, app)); case ServerTypes.Cygwin: return(new LocalCygwinLauncher(this, app)); } }
public static Launcher New(Server server, StartTask app) { switch (server.Type) { case ServerTypes.LocalMono: return(new LocalLauncher(server, app)); case ServerTypes.RemoteSsh: return(new RemoteSshLauncher(server, app)); case ServerTypes.WSLBash: return(new LocalBashLauncher(server, app)); case ServerTypes.Cygwin: return(new LocalCygwinLauncher(server, app)); default: throw new NotSupportedException(); } }
public LocalHost(Server server, StartTask task) : base(server, task) { OutputPath = task.SourcePath.TrimEnd('/', '\\'); }
public static void Start(Server server, StartTask app) => New(server, app).Launch();
public void Start(StartTask app) { Launcher(app).Launch(); }
public LocalBashLauncher(Server server, StartTask task) : base(server, task) { }
public Host(Launcher launcher) { Server = launcher.Server; Task = launcher.Task; }
public LocalCygwinHost(Server server, StartTask task) : base(server, task) { }
public RemoteSshLauncher(Server server, StartTask task) : base(server, task) { }
public LocalCygwinLauncher(Server server, StartTask task) : base(server, task) { }