xref: /trunk/main/scripting/workben/installer/Register.java (revision cdf0e10c4e3984b49a9502b011690b615761d4a3)
1 package installer;
2 
3 import java.lang.String;
4 import java.io.*;
5 import javax.swing.*;
6 public class Register{
7     private static String[] singletonDefParams = { "drafts.com.sun.star.script.framework.theScriptRuntimeForJava=drafts.com.sun.star.script.framework.ScriptRuntimeForJava",
8                                            "drafts.com.sun.star.script.framework.storage.theScriptStorageManager=drafts.com.sun.star.script.framework.storage.ScriptStorageManager",
9                                            "drafts.com.sun.star.script.framework.theScriptRuntimeManager=drafts.com.sun.star.script.framework.ScriptRuntimeManager"};
10 
11 
12     private static String quotedString ( String stringToQuote ) {
13             String doubleQuote = "\"";
14         String result = new String ( doubleQuote + stringToQuote + doubleQuote );
15         return result;
16     }
17     private static boolean regSingletons( String path, String progPath, String opSys, JLabel statusLabel ) {
18         try{
19             boolean goodResult = false;
20             String[] env = new String[1];
21             String regCmd = null;
22             ExecCmd command = new ExecCmd();
23             for ( int i=0; i<singletonDefParams.length; i++){
24                 if ( opSys.indexOf( "Windows" ) == -1 ){
25                 // Not windows
26                     env[0] = "LD_LIBRARY_PATH=" + progPath;
27                     command.exec( "chmod a+x " + progPath + "regsingleton", null );
28                     regCmd = progPath + "regsingleton " + path + "user" + File.separator + "uno_packages" + File.separator + "cache" + File.separator + "services.rdb " + singletonDefParams[i];
29                     goodResult = command.exec( regCmd, env );
30                 }
31                 else {
32             // Windows
33                     regCmd = quotedString( progPath + "regsingleton.exe" ) + " " + quotedString( path + "user" + File.separator + "uno_packages" + File.separator + "cache" + File.separator + "services.rdb" ) + " " + quotedString( singletonDefParams[i] );
34                     goodResult = command.exec( regCmd,null );
35                 }
36                 if ( !goodResult ){
37                     System.out.println("Regsingleton cmd failed, cmd: " + regCmd );
38                     statusLabel.setText("Regsingleton ScriptRuntimeForJava Failed, please view SFrameworkInstall.log");
39                     return false;
40         }
41         }
42     }
43         catch ( Exception e ) {
44             String message = "\nError installing scripting package, please view SFrameworkInstall.log.";
45             System.out.println(message);
46             e.printStackTrace();
47             statusLabel.setText(message);
48             return false;
49         }
50         return true;
51 
52 
53     }
54     public static boolean register(String path, JLabel statusLabel) {
55         String[] packages = {"ooscriptframe.zip", "bshruntime.zip", "jsruntime.zip"};
56 
57     try {
58         String s=null;
59         boolean goodResult = false;
60         String env[] = new String[1];
61             ExecCmd command = new ExecCmd();
62         boolean isWindows =
63                 (System.getProperty("os.name").indexOf("Windows") != -1);
64 
65         String progpath = path.concat("program" + File.separator);
66 
67             statusLabel.setText("Registering Scripting Framework...");
68 
69             // pkgchk Scripting Framework Components
70             statusLabel.setText("Registering Scripting Framework Components...");
71         System.out.println("Registering Scripting Framework Components...");
72 
73             for (int i = 0; i < packages.length; i++) {
74                 String cmd = "";
75 
76             if (!isWindows) {
77             env[0]="LD_LIBRARY_PATH=" + progpath;
78 
79             goodResult = command.exec("chmod a+x " + progpath + "pkgchk", null );
80 
81             if ( goodResult ){
82                         cmd = progpath + "pkgchk -s -f " + progpath + packages[i];
83 
84                 System.err.println(cmd);
85                         goodResult = command.exec(cmd, env);
86                     }
87                 }
88             else {
89                     cmd = "\"" + progpath + "pkgchk.exe\" -s -f \"" + progpath +
90                         packages[i] + "\"";
91 
92             System.err.println(cmd);
93                     goodResult =command.exec(cmd,null);
94 
95             }
96                 if (!goodResult) {
97                     System.err.println("\nPkgChk Failed");
98 
99             if(!isWindows)
100                 System.err.println("Command: " + cmd + "\n" + env[0]);
101             else
102             System.err.println("Command: \"" + cmd + "\"");
103 
104             statusLabel.setText(
105                         "PkgChk Failed, please view SFrameworkInstall.log");
106 
107             return false;
108                 }
109         }
110 
111             // if ( !regSingletons( path, progpath, opSys, statusLabel ) )
112         // {
113             //     return false;
114             // }
115             // updating ProtocolHandler
116             /* statusLabel.setText("Updating ProtocolHandler...");
117             if(!FileUpdater.updateProtocolHandler(path, statusLabel)) {
118             statusLabel.setText("Updating ProtocolHandler failed, please view SFrameworkInstall.log");
119             return false;
120         } */
121 
122             // updating StarBasic libraries
123             statusLabel.setText("Updating StarBasic libraries...");
124             if(!FileUpdater.updateScriptXLC(path, statusLabel)) {
125             statusLabel.setText("Updating user/basic/script.xlc failed, please view SFrameworkInstall.log");
126             return false;
127         }
128             if(!FileUpdater.updateDialogXLC(path, statusLabel)) {
129             statusLabel.setText("Updating user/basic/dialog.xlc failed, please view SFrameworkInstall.log");
130             return false;
131         }
132 
133     }
134     catch(Exception e){
135         String message = "\nError installing scripting package, please view SFrameworkInstall.log.";
136         System.out.println(message);
137         e.printStackTrace();
138         statusLabel.setText(message);
139         return false;
140     }
141     return true;
142     }// register
143 
144 }//Register
145