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 | } |