package Visual_DVM_2021.Passes.All; import Common.CurrentAnchestor; import Common.Utils.CommonUtils; import Common_old.Constants; import Common_old.Current; import GlobalData.RemoteFile.RemoteFile; import Visual_DVM_2021.Passes.PassException; import Visual_DVM_2021.Passes.SSH.ConnectionPass; import java.util.Vector; public class RemoteInitialiseUser extends ConnectionPass { RemoteFile modulesDirectory; @Override protected boolean needsAnimation() { return true; } @Override protected boolean canStart(Object... args) { return CurrentAnchestor.Check(Log, Current.User); } @Override protected void Connect() throws Exception { machine = Current.getMachine(); user = Current.getUser(); super.Connect(); } @Override protected void ServerAction() throws Exception { String workspace_name = CommonUtils.getDateName("visual_sapfor_workspace"); ShowMessage1("Создание рабочего пространства..."); target = new RemoteFile(user.connection.sftpChannel.getHome(), workspace_name); user.connection.sftpChannel.mkdir(target.full_name); Vector subdirectories = new Vector<>(); subdirectories.add(new RemoteFile(target, "projects")); subdirectories.add(modulesDirectory = new RemoteFile(target, "modules")); subdirectories.add(new RemoteFile(target, "tests")); //------------------------------------- for (RemoteFile remoteFile : subdirectories) user.connection.sftpChannel.mkdir(remoteFile.full_name); //---------------------------------- ShowMessage1("Закачка кода модулей..."); for (String resource_name : Constants.resourses_names) { ShowMessage2(resource_name); user.connection.putResource(modulesDirectory, resource_name); } //------------------------------------- ShowMessage1("Сборка модулей..."); String modules_log = user.connection.compileModules(modulesDirectory); if (!modules_log.isEmpty()) throw new PassException(modules_log); //-------------------------------------- RemoteFile info = new RemoteFile(target, Current.getAccount().email); user.connection.writeToFile("", info); } }