Statistics
| Revision:

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
}