gvsig-desktop-customize / trunk / org.gvsig.customize.app / org.gvsig.customize.app.mainplugin / src / main / java / org / gvsig / customize / Installkit.java @ 1
History | View | Annotate | Download (2.19 KB)
1 |
package org.gvsig.customize; |
---|---|
2 |
|
3 |
import java.io.File; |
4 |
import java.io.IOException; |
5 |
import java.nio.file.Files; |
6 |
import java.nio.file.Path; |
7 |
import java.nio.file.Paths; |
8 |
import java.nio.file.attribute.PosixFilePermission; |
9 |
import java.util.HashSet; |
10 |
import java.util.Set; |
11 |
import org.gvsig.andami.PluginServices; |
12 |
import org.gvsig.andami.PluginsLocator; |
13 |
import org.gvsig.andami.PluginsManager; |
14 |
import org.slf4j.Logger; |
15 |
import org.slf4j.LoggerFactory; |
16 |
|
17 |
public class Installkit { |
18 |
|
19 |
private static final Logger logger = LoggerFactory.getLogger(Installkit.class); |
20 |
|
21 |
File folder;
|
22 |
|
23 |
public Installkit() {
|
24 |
PluginsManager pluginsManager = PluginsLocator.getManager(); |
25 |
PluginServices plugin = pluginsManager.getPlugin(CustomizeExtension.class); |
26 |
this.folder = new File(plugin.getPluginDirectory(), "installkit"); |
27 |
setExecutePermission(); |
28 |
} |
29 |
|
30 |
private File getInstallkitExefile() { |
31 |
File file = new File(folder.getAbsolutePath(), "installkit"); |
32 |
return file;
|
33 |
} |
34 |
|
35 |
public void addpks(String arg1, String arg2) throws IOException, InterruptedException { |
36 |
String cmd = getInstallkitExefile().getAbsolutePath()
|
37 |
+ " "
|
38 |
+ folder.getAbsolutePath() |
39 |
+ "/main.tcl addpks "
|
40 |
+ arg1 |
41 |
+ " "
|
42 |
+ arg2; |
43 |
|
44 |
Process child = Runtime.getRuntime().exec(cmd); |
45 |
child.waitFor(); |
46 |
} |
47 |
|
48 |
private void setExecutePermission() { |
49 |
Path path = Paths.get(getInstallkitExefile().toURI()); |
50 |
Set<PosixFilePermission> perms = new HashSet<PosixFilePermission>(); |
51 |
//add owners permission
|
52 |
perms.add(PosixFilePermission.OWNER_READ); |
53 |
perms.add(PosixFilePermission.OWNER_EXECUTE); |
54 |
//add group permissions
|
55 |
perms.add(PosixFilePermission.GROUP_READ); |
56 |
perms.add(PosixFilePermission.GROUP_EXECUTE); |
57 |
//add others permissions
|
58 |
perms.add(PosixFilePermission.OTHERS_READ); |
59 |
perms.add(PosixFilePermission.OTHERS_EXECUTE); |
60 |
|
61 |
try {
|
62 |
Files.setPosixFilePermissions(path, perms); |
63 |
} catch (IOException ex) { |
64 |
logger.warn("Can't add execution permissions to '"+getInstallkitExefile()+"'.",ex); |
65 |
} |
66 |
} |
67 |
} |