1 21 22 package com.izforge.izpack.installer; 23 24 import java.io.BufferedInputStream ; 25 import java.io.BufferedOutputStream ; 26 import java.io.File ; 27 import java.io.FileInputStream ; 28 import java.io.FileOutputStream ; 29 import java.io.IOException ; 30 import java.util.Collection ; 31 import java.util.Iterator ; 32 33 import com.izforge.izpack.ParsableFile; 34 import com.izforge.izpack.util.OsConstraint; 35 import com.izforge.izpack.util.VariableSubstitutor; 36 37 43 public class ScriptParser 44 { 45 46 47 public final static String INSTALL_PATH = "INSTALL_PATH"; 48 49 50 public final static String JAVA_HOME = "JAVA_HOME"; 51 52 53 public final static String CLASS_PATH = "CLASS_PATH"; 54 55 56 public final static String USER_HOME = "USER_HOME"; 57 58 59 public final static String USER_NAME = "USER_NAME"; 60 61 62 public final static String HOST_NAME = "HOST_NAME"; 63 64 65 public final static String IP_ADDRESS = "IP_ADDRESS"; 66 67 68 public final static String FILE_SEPARATOR = "FILE_SEPARATOR"; 69 70 71 public final static String APP_NAME = "APP_NAME"; 72 73 74 public final static String APP_URL = "APP_URL"; 75 76 77 public final static String APP_VER = "APP_VER"; 78 79 80 public final static String ISO3_LANG = "ISO3_LANG"; 81 82 83 84 private Collection files; 85 86 87 private VariableSubstitutor vs; 88 89 96 public ScriptParser(Collection files, VariableSubstitutor vs) 97 { 98 this.files = files; 99 this.vs = vs; 100 } 101 102 107 public void parseFiles() throws Exception 108 { 109 Iterator iter = files.iterator(); 111 while (iter.hasNext()) 112 { 113 if (Unpacker.isInterruptDesired()) return; 115 ParsableFile pfile = (ParsableFile) iter.next(); 118 119 if (!OsConstraint.oneMatchesCurrentSystem(pfile.osConstraints)) 121 { 122 continue; 123 } 124 125 File file = new File (pfile.path); 126 File parsedFile = File.createTempFile("izpp", null, file.getParentFile()); 127 128 FileInputStream inFile = new FileInputStream (file); 131 BufferedInputStream in = new BufferedInputStream (inFile, 5120); 132 FileOutputStream outFile = new FileOutputStream (parsedFile); 133 BufferedOutputStream out = new BufferedOutputStream (outFile, 5120); 134 vs.substitute(in, out, pfile.type, pfile.encoding); 135 in.close(); 136 out.close(); 137 138 file.delete(); 140 if (!parsedFile.renameTo(file)) 141 throw new IOException ("Could not rename file " + parsedFile + " to " + file); 142 } 143 } 144 } 145 | Popular Tags |