package org.arquillian.cube.docker.drone.util;
import java.io.File;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import org.apache.commons.io.FileUtils;
/**
* Volume utils.
*/
public class VolumeCreator {
private VolumeCreator() {
super();
}
/**
* Creates a new temporary folder with password file for VNC server.
* The folder is relative to the root of the project.
*
* @param password
* value to generate password file.
*
* @return Path of generated file.
*/
public static final Path createTemporaryVolume(String password) {
final File tmpFile = new File(".tmp" + System.currentTimeMillis());
if (!tmpFile.mkdirs()) {
throw new IllegalArgumentException("Temporary Folder for storing recordings could not be created.");
}
Runtime.getRuntime().addShutdownHook(new Thread() {
@Override
public void run() {
FileUtils.deleteQuietly(tmpFile);
}
});
final Path temp = tmpFile.toPath();
Path passwordFile = temp.resolve("password");
try {
Files.write(passwordFile, password.getBytes());
} catch (IOException e) {
throw new IllegalArgumentException(e);
}
return temp;
}
}