Statistiques
| Révision :

root / tmp / CWBInstaller / src / cwbinstaller / commands / DoInstallStep.java @ 62

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

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