package _VisualDVM.Passes.All;
import Common.Passes.PassException;
import _VisualDVM.Global;
import _VisualDVM.GlobalData.RemoteFile.RemoteFile;
import _VisualDVM.Passes.PassCode;
import _VisualDVM.Passes.SSH.RepositoryServerSSHPass;

import java.io.File;
public class PublishComponentsServer extends RepositoryServerSSHPass {
    @Override
    protected String getServerFileName() {
        return "VisualSapfor.jar";
    }
    @Override
    protected String getServerHomeName() {
        return "_sapfor_x64";
    }
    @Override
    public String getIconPath() {
        return "/icons/Publish.png";
    }
    //1. остановить сервер.
    //2. заменить файл сервера на компонент визуализатора. переименовать его.
    //3. запустить сервер.
    @Override
    protected void ServerAction() throws Exception {
        if (Global.mainModule.getPass(PassCode.PingComponentsServer).Do(true))
            ShutdownServer();
        if (Global.mainModule.getPass(PassCode.PingComponentsServer).Do(true)) {
            throw new PassException("Не удалось остановить сервер.");
        }
        File src = Global.visualiser.getFile();
        //-
        RemoteFile dst = new RemoteFile(serverHome, getServerFileName());
        user.connection.tryRM(dst);
        user.connection.putSingleFile(src, dst);
        //-
        StartServer();
    }
    @Override
    protected boolean validate() {
        if (!Global.mainModule.getPass(PassCode.PingComponentsServer).Do(true)) {
            Log.Writeln_("Не удалось запустить сервер.");
        }
        return true;
    }
}

