use of org.jruby.ext.posix.POSIX in project hudson-2.x by hudson.
the class Util method makeWritable.
/**
* Makes the given file writable by any means possible.
*/
@IgnoreJRERequirement
private static void makeWritable(File f) {
// try chmod. this becomes no-op if this is not Unix.
try {
Chmod chmod = new Chmod();
chmod.setProject(new Project());
chmod.setFile(f);
chmod.setPerm("u+w");
chmod.execute();
} catch (BuildException e) {
LOGGER.log(Level.INFO, "Failed to chmod " + f, e);
}
// also try JDK6-way of doing it.
try {
f.setWritable(true);
} catch (NoSuchMethodError e) {
// not JDK6
}
try {
// try libc chmod
POSIX posix = PosixAPI.get();
String path = f.getAbsolutePath();
FileStat stat = posix.stat(path);
// u+w
posix.chmod(path, stat.mode() | 0200);
} catch (Throwable t) {
LOGGER.log(Level.FINE, "Failed to chmod(2) " + f, t);
}
}
Aggregations