github.com/ijc/docker-app@v0.6.1-0.20181012090447-c7ca8bc483fb/integrations/intellij/src/main/java/RenderApp.java (about) 1 import com.intellij.openapi.actionSystem.*; 2 import com.intellij.openapi.project.Project; 3 import com.intellij.openapi.ui.Messages; 4 import com.intellij.ide.util.PropertiesComponent; 5 6 import java.io.File; 7 import java.util.Scanner; 8 9 10 public class RenderApp extends AnAction { 11 public RenderApp() { 12 super("RenderApp"); 13 } 14 15 public void actionPerformed(AnActionEvent event) { 16 Project project = event.getProject(); 17 PropertiesComponent pc = PropertiesComponent.getInstance(project); 18 String appPath = pc.getValue("docker_app_path"); 19 try { 20 String rawSettings = pc.getValue("docker_app_overrides"); 21 String settings = ""; 22 if (!rawSettings.isEmpty()) { 23 String[] split = rawSettings.split("\n"); 24 for (String l: split) { 25 settings += " -s " + l; 26 } 27 } 28 Process p = Runtime.getRuntime().exec("docker-app render " + appPath + settings, null, new File(project.getBasePath())); 29 Scanner se = new Scanner(p.getErrorStream()).useDelimiter("\\A"); 30 String stderr = se.hasNext() ? se.next() : ""; 31 Scanner so = new Scanner(p.getInputStream()).useDelimiter("\\A"); 32 String stdout = so.hasNext() ? so.next() : ""; 33 Messages.showMessageDialog(project, stderr + stdout, "Rendered Application", Messages.getInformationIcon()); 34 } catch (Exception e) { 35 Messages.showMessageDialog(project, "docker-app invocation failed with " + e.toString(), "Render Failure", Messages.getInformationIcon()); 36 e.printStackTrace(); 37 } 38 39 } 40 }