package Visual_DVM_2021.Passes.All; import Common.Constants; import Common.Current; import Common.Database.Database; import Common.Global; import Common.UI.UI; import Common.Utils.Utils; import GlobalData.Compiler.CompilerType; import GlobalData.Machine.MachineType; import GlobalData.User.UserState; import TestingSystem.DVM.DVMPackage.DVMPackage; import TestingSystem.DVM.DVMPackage.DVMPackage_json; import TestingSystem.DVM.TasksPackage.TasksPackage; import TestingSystem.DVM.TasksPackage.TasksPackageState; import Visual_DVM_2021.Passes.AddObjectPass; import Visual_DVM_2021.Passes.PassCode_2021; import java.util.Date; public class AddDVMPackage extends AddObjectPass { public AddDVMPackage() { super(DVMPackage.class); } @Override protected Database getDb() { return Global.testingServer.db; } @Override protected boolean canStart(Object... args) throws Exception { if (!Current.getAccount().CheckRegistered(Log)) { return false; } if (Current.Check(Log, Current.Machine, Current.User, Current.Compiler)) { if (!Current.getMachine().type.equals(MachineType.Server)) { Log.Writeln_("Тестирование поддерживается только на одиночном удалённом сервере."); return false; } if (!Current.getUser().state.equals(UserState.ready_to_work)) { Log.Writeln_("Пользователь не готов к работе. Выполните инициализацию пользователя!"); return false; } if (!Current.getCompiler().type.equals(CompilerType.dvm)) { Log.Writeln_("Тестирование поддерживается только для DVM компиляторов."); return false; } if (!Current.getCompiler().versionLoaded) passes.get(PassCode_2021.ShowCompilerVersion).Do(Current.getCompiler(), false); //- for (DVMPackage dvmPackage: Global.testingServer.db.dvmPackages.Data.values()){ if (dvmPackage.state.equals(TasksPackageState.Draft)){ Log.Writeln_("Может существовать только один пакет, готовящийся к публикации."); return false; } } //-- target = new DVMPackage(); target.genName(); //- target.sender_name=Current.getAccount().name; target.sender_address = Current.getAccount().email; //- target.machine_name = Current.getMachine().name; target.machine_address = Current.getMachine().address; target.machine_port = Current.getMachine().port; //- target.user_name = Current.getUser().login; target.user_password = Current.getUser().password; target.user_workspace = Current.getUser().workspace; target.drv = Current.getCompiler().call_command; target.version = Current.getCompiler().getVersionInfo(); target.kernels = Global.properties.TestingKernels; target.needsEmail = Global.properties.EmailOnTestingProgress ? 1 : 0; //-- target.package_json = new DVMPackage_json(); Utils.CheckAndCleanDirectory(target.getLocalWorkspace()); target.saveJson(); //-- return true; } return false; } }