package _VisualDVM.Passes.Server;
import _VisualDVM.Global;
import _VisualDVM.GlobalData.RemoteFile.RemoteFile;
import _VisualDVM.Passes.SSH.RepositoryServerSSHPass;
import _VisualDVM.Repository.Server.RepositoryServer;

import java.io.File;
public abstract class PublishServerPass<S extends RepositoryServer> extends RepositoryServerSSHPass<S> {
    @Override
    public String getIconPath() {
        return "/Common/icons/Publish.png";
    }
    //1. остановить сервер.
    //2. заменить файл сервера на компонент визуализатора. переименовать его.
    //3. запустить сервер.
    @Override
    protected void ServerAction() throws Exception {
        if (getServer().PingFromClient())
            ShutdownServer();
        File src = Global.visualiser.getFile();
        //-
        RemoteFile dst = new RemoteFile(serverHome, getServer().getServerFileName());
        user.connection.tryRM(dst);
        user.connection.putSingleFile(src, dst);
        //-
        StartServer();
    }
    @Override
    protected boolean validate() {
        if (!getServer().PingFromClient()) {
            Log.Writeln_("Не удалось запустить сервер.");
        }
        return true;
    }
}
