diff options
Diffstat (limited to 'scripting/workben/installer/Register.java')
-rw-r--r-- | scripting/workben/installer/Register.java | 144 |
1 files changed, 144 insertions, 0 deletions
diff --git a/scripting/workben/installer/Register.java b/scripting/workben/installer/Register.java new file mode 100644 index 000000000000..69557f59fe34 --- /dev/null +++ b/scripting/workben/installer/Register.java @@ -0,0 +1,144 @@ +package installer; + +import java.lang.String; +import java.io.*; +import javax.swing.*; +public class Register{ + private static String[] singletonDefParams = { "drafts.com.sun.star.script.framework.theScriptRuntimeForJava=drafts.com.sun.star.script.framework.ScriptRuntimeForJava", + "drafts.com.sun.star.script.framework.storage.theScriptStorageManager=drafts.com.sun.star.script.framework.storage.ScriptStorageManager", + "drafts.com.sun.star.script.framework.theScriptRuntimeManager=drafts.com.sun.star.script.framework.ScriptRuntimeManager"}; + + + private static String quotedString ( String stringToQuote ) { + String doubleQuote = "\""; + String result = new String ( doubleQuote + stringToQuote + doubleQuote ); + return result; + } + private static boolean regSingletons( String path, String progPath, String opSys, JLabel statusLabel ) { + try{ + boolean goodResult = false; + String[] env = new String[1]; + String regCmd = null; + ExecCmd command = new ExecCmd(); + for ( int i=0; i<singletonDefParams.length; i++){ + if ( opSys.indexOf( "Windows" ) == -1 ){ + // Not windows + env[0] = "LD_LIBRARY_PATH=" + progPath; + command.exec( "chmod a+x " + progPath + "regsingleton", null ); + regCmd = progPath + "regsingleton " + path + "user" + File.separator + "uno_packages" + File.separator + "cache" + File.separator + "services.rdb " + singletonDefParams[i]; + goodResult = command.exec( regCmd, env ); + } + else { + // Windows + regCmd = quotedString( progPath + "regsingleton.exe" ) + " " + quotedString( path + "user" + File.separator + "uno_packages" + File.separator + "cache" + File.separator + "services.rdb" ) + " " + quotedString( singletonDefParams[i] ); + goodResult = command.exec( regCmd,null ); + } + if ( !goodResult ){ + System.out.println("Regsingleton cmd failed, cmd: " + regCmd ); + statusLabel.setText("Regsingleton ScriptRuntimeForJava Failed, please view SFrameworkInstall.log"); + return false; + } + } + } + catch ( Exception e ) { + String message = "\nError installing scripting package, please view SFrameworkInstall.log."; + System.out.println(message); + e.printStackTrace(); + statusLabel.setText(message); + return false; + } + return true; + + + } + public static boolean register(String path, JLabel statusLabel) { + String[] packages = {"ooscriptframe.zip", "bshruntime.zip", "jsruntime.zip"}; + + try { + String s=null; + boolean goodResult = false; + String env[] = new String[1]; + ExecCmd command = new ExecCmd(); + boolean isWindows = + (System.getProperty("os.name").indexOf("Windows") != -1); + + String progpath = path.concat("program" + File.separator); + + statusLabel.setText("Registering Scripting Framework..."); + + // pkgchk Scripting Framework Components + statusLabel.setText("Registering Scripting Framework Components..."); + System.out.println("Registering Scripting Framework Components..."); + + for (int i = 0; i < packages.length; i++) { + String cmd = ""; + + if (!isWindows) { + env[0]="LD_LIBRARY_PATH=" + progpath; + + goodResult = command.exec("chmod a+x " + progpath + "pkgchk", null ); + + if ( goodResult ){ + cmd = progpath + "pkgchk -s -f " + progpath + packages[i]; + + System.err.println(cmd); + goodResult = command.exec(cmd, env); + } + } + else { + cmd = "\"" + progpath + "pkgchk.exe\" -s -f \"" + progpath + + packages[i] + "\""; + + System.err.println(cmd); + goodResult =command.exec(cmd,null); + + } + if (!goodResult) { + System.err.println("\nPkgChk Failed"); + + if(!isWindows) + System.err.println("Command: " + cmd + "\n" + env[0]); + else + System.err.println("Command: \"" + cmd + "\""); + + statusLabel.setText( + "PkgChk Failed, please view SFrameworkInstall.log"); + + return false; + } + } + + // if ( !regSingletons( path, progpath, opSys, statusLabel ) ) + // { + // return false; + // } + // updating ProtocolHandler + /* statusLabel.setText("Updating ProtocolHandler..."); + if(!FileUpdater.updateProtocolHandler(path, statusLabel)) { + statusLabel.setText("Updating ProtocolHandler failed, please view SFrameworkInstall.log"); + return false; + } */ + + // updating StarBasic libraries + statusLabel.setText("Updating StarBasic libraries..."); + if(!FileUpdater.updateScriptXLC(path, statusLabel)) { + statusLabel.setText("Updating user/basic/script.xlc failed, please view SFrameworkInstall.log"); + return false; + } + if(!FileUpdater.updateDialogXLC(path, statusLabel)) { + statusLabel.setText("Updating user/basic/dialog.xlc failed, please view SFrameworkInstall.log"); + return false; + } + + } + catch(Exception e){ + String message = "\nError installing scripting package, please view SFrameworkInstall.log."; + System.out.println(message); + e.printStackTrace(); + statusLabel.setText(message); + return false; + } + return true; + }// register + +}//Register |