Statistiques
| Révision :

root / tmp / CQP / src / cwbinstaller / commands / DoInstallStep.java @ 399

Historique | Voir | Annoter | Télécharger (3,25 ko)

1 288 sjacqu01
package cwbinstaller.commands;
2 288 sjacqu01
3 288 sjacqu01
import java.io.File;
4 288 sjacqu01
5 288 sjacqu01
import org.eclipse.core.commands.ExecutionEvent;
6 288 sjacqu01
import org.eclipse.core.commands.ExecutionException;
7 288 sjacqu01
import org.eclipse.jface.util.Util;
8 288 sjacqu01
import org.osgi.framework.Version;
9 324 mdecorde
import org.txm.core.preferences.TBXPreferences;
10 325 mdecorde
import org.txm.core.preferences.TXMPreferences;
11 288 sjacqu01
import org.txm.utils.BundleUtils;
12 288 sjacqu01
import org.txm.utils.logger.Log;
13 288 sjacqu01
14 325 mdecorde
import cwbinstaller.CQPPreferences;
15 325 mdecorde
16 324 mdecorde
public class DoInstallStep extends org.txm.rcp.commands.TxmCommand {
17 288 sjacqu01
        protected String name = "cwbbinaries.commands.DoInstallStep"; //$NON-NLS-1$
18 288 sjacqu01
19 288 sjacqu01
        @Override
20 288 sjacqu01
        public Object execute(ExecutionEvent event) throws ExecutionException {
21 288 sjacqu01
                // TODO Auto-generated method stub
22 288 sjacqu01
                return null;
23 288 sjacqu01
        }
24 288 sjacqu01
25 288 sjacqu01
        @Override
26 288 sjacqu01
        public void install() {
27 288 sjacqu01
28 288 sjacqu01
        }
29 288 sjacqu01
30 288 sjacqu01
        @Override
31 288 sjacqu01
        public void preInstall() {
32 288 sjacqu01
                String CQPFRAGMENT = "CQP."+System.getProperty("osgi.os");
33 288 sjacqu01
34 288 sjacqu01
                Log.info("CQP.DoInstallStep.install()");
35 325 mdecorde
                String saved = TXMPreferences.getString(CQPPreferences.PREFERENCES_NODE, CQPPreferences.VERSION, "");
36 288 sjacqu01
                Version currentVersion = BundleUtils.getBundleVersion(CQPFRAGMENT); // the CQPFRAGMENT plugin contains the right version
37 288 sjacqu01
38 288 sjacqu01
                if (saved != null && saved.length() > 0) {
39 288 sjacqu01
                        Version savedVersion = new Version(saved);
40 288 sjacqu01
                        if (currentVersion.compareTo(savedVersion) <= 0) {
41 288 sjacqu01
                                Log.info("No post-installation of CQP to do");
42 288 sjacqu01
                                return; // nothing to do
43 288 sjacqu01
                        }
44 288 sjacqu01
                }
45 288 sjacqu01
                System.out.println("Updating CWB preferences for CQP version="+currentVersion);
46 288 sjacqu01
47 288 sjacqu01
                String os = "win";
48 288 sjacqu01
                String ext = "";
49 288 sjacqu01
                if (Util.isWindows()) { //$NON-NLS-1$
50 288 sjacqu01
                        if (System.getProperty("os.arch").contains("64")) { os = "win64"; }
51 288 sjacqu01
                        else { os = "win32"; }
52 288 sjacqu01
                        ext = ".exe";
53 288 sjacqu01
                } else if (Util.isMac()) { //$NON-NLS-1$
54 288 sjacqu01
                        os = "macosx";
55 288 sjacqu01
                } else {
56 288 sjacqu01
                        os = "linux32";
57 288 sjacqu01
                        if (System.getProperty("os.arch").contains("64"))
58 288 sjacqu01
                                os = "linux64";
59 288 sjacqu01
                }
60 288 sjacqu01
61 288 sjacqu01
                File bundleDir = BundleUtils.getBundleFile(CQPFRAGMENT);
62 288 sjacqu01
                if (bundleDir == null) {
63 288 sjacqu01
                        System.out.println("Error while retrieving TreeTaggerInstaller bundle directory.");
64 288 sjacqu01
                        return;
65 288 sjacqu01
                }
66 288 sjacqu01
                File cwbDir = new File(bundleDir, "res");
67 288 sjacqu01
                File initFile = new File(cwbDir, "cqpserver.init");
68 288 sjacqu01
                File OSDir = new File(cwbDir, os);
69 288 sjacqu01
                File execFile = new File(OSDir, "cqpserver"+ext);
70 288 sjacqu01
71 325 mdecorde
                TXMPreferences.putString(TBXPreferences.PREFERENCES_NODE, TBXPreferences.CQI_SERVER_PATH_TO_CQPLIB, OSDir.getAbsolutePath());
72 325 mdecorde
                TXMPreferences.putString(TBXPreferences.PREFERENCES_NODE, TBXPreferences.CQI_SERVER_PATH_TO_INIT_FILE, initFile.getAbsolutePath());
73 325 mdecorde
                TXMPreferences.putString(TBXPreferences.PREFERENCES_NODE, TBXPreferences.CQI_SERVER_PATH_TO_EXECUTABLE, execFile.getAbsolutePath());
74 288 sjacqu01
                if (!Util.isWindows()) {
75 288 sjacqu01
                        try {
76 288 sjacqu01
                                Log.info("Setting execution file rights to: "+OSDir.getAbsolutePath());
77 288 sjacqu01
                                Runtime.getRuntime().exec("chmod -R +x "+OSDir.getAbsolutePath()).waitFor();
78 288 sjacqu01
                        } catch (Exception e) {
79 288 sjacqu01
                                System.out.println("Error while setting execution file rights to: "+OSDir.getAbsolutePath());
80 288 sjacqu01
                                e.printStackTrace();
81 288 sjacqu01
                        }
82 288 sjacqu01
                }
83 288 sjacqu01
84 288 sjacqu01
                if (!execFile.canExecute()) {
85 288 sjacqu01
                        System.out.println("File right setting error, cannot execute: "+execFile);
86 288 sjacqu01
                }
87 288 sjacqu01
                Log.warning("SearchEngine preferences set with: "+OSDir.getAbsolutePath()+ ", "+initFile.getAbsolutePath()+ " and "+execFile.getAbsolutePath());
88 325 mdecorde
                TXMPreferences.putString(CQPPreferences.PREFERENCES_NODE, CQPPreferences.VERSION, currentVersion.toString());
89 288 sjacqu01
        }
90 288 sjacqu01
}