]> git.proxmox.com Git - mirror_edk2.git/blame_incremental - Tools/Source/FrameworkTasks/org/tianocore/framework/tasks/SplitfileTask.java
Modify GenFfsTask to make it don't create ORG file.
[mirror_edk2.git] / Tools / Source / FrameworkTasks / org / tianocore / framework / tasks / SplitfileTask.java
... / ...
CommitLineData
1/** @file\r
2 SplitfileTask class.\r
3\r
4 SplitfileTask is used to call splitfile.exe to split input file to 2 output\r
5 file.\r
6\r
7\r
8 Copyright (c) 2006, Intel Corporation\r
9 All rights reserved. This program and the accompanying materials\r
10 are licensed and made available under the terms and conditions of the BSD License\r
11 which accompanies this distribution. The full text of the license may be found at\r
12 http://opensource.org/licenses/bsd-license.php\r
13\r
14 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
15 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
16\r
17 **/\r
18package org.tianocore.framework.tasks;\r
19\r
20import java.io.File;\r
21\r
22import org.apache.tools.ant.Task;\r
23import org.apache.tools.ant.Project;\r
24import org.apache.tools.ant.BuildException;\r
25import org.apache.tools.ant.taskdefs.Execute;\r
26import org.apache.tools.ant.taskdefs.LogStreamHandler;\r
27import org.apache.tools.ant.types.Commandline;\r
28\r
29import org.tianocore.common.logger.EdkLog;\r
30\r
31/**\r
32 SplitfileTask class.\r
33\r
34 SplitfileTask is used to call splitfile.exe to split input file to 2 output\r
35 file.\r
36**/\r
37public class SplitfileTask extends Task implements EfiDefine {\r
38 ///\r
39 /// input file\r
40 ///\r
41 private String inputFile = "";\r
42\r
43 ///\r
44 /// offset value\r
45 ///\r
46 private String offset = "";\r
47\r
48\r
49 /**\r
50 * execute\r
51 *\r
52 * SplitfleTask execute function is to assemble tool command line & execute\r
53 * tool command line\r
54 *\r
55 * @throws BuidException\r
56 */\r
57 public void execute() throws BuildException {\r
58\r
59 Project project = this.getOwningTarget().getProject();\r
60\r
61 //\r
62 // set Logger\r
63 //\r
64 FrameworkLogger logger = new FrameworkLogger(project, "splitfile");\r
65 EdkLog.setLogLevel(project.getProperty("env.LOGLEVEL"));\r
66 EdkLog.setLogger(logger);\r
67\r
68 //\r
69 // absolute path of efi tools\r
70 //\r
71 String path = project.getProperty("env.FRAMEWORK_TOOLS_PATH");\r
72 String command;\r
73 String argument;\r
74 if (path == null) {\r
75 command = "SplitFile";\r
76 } else {\r
77 command = path + File.separatorChar + "SplitFile";\r
78 }\r
79\r
80 //\r
81 // argument of tools\r
82 //\r
83 argument = inputFile + " " + offset;\r
84\r
85 //\r
86 // return value of fwimage execution\r
87 //\r
88 int revl = -1;\r
89\r
90 try {\r
91 Commandline cmdline = new Commandline();\r
92 cmdline.setExecutable(command);\r
93 cmdline.createArgument().setLine(argument);\r
94\r
95 LogStreamHandler streamHandler = new LogStreamHandler(this,\r
96 Project.MSG_INFO, Project.MSG_WARN);\r
97 Execute runner = new Execute(streamHandler, null);\r
98\r
99 runner.setAntRun(project);\r
100 runner.setCommandline(cmdline.getCommandline());\r
101\r
102 EdkLog.log(EdkLog.EDK_VERBOSE, Commandline.toString(cmdline.getCommandline()));\r
103 EdkLog.log(EdkLog.EDK_INFO, (new File(this.inputFile)).getName());\r
104 revl = runner.execute();\r
105 if (EFI_SUCCESS == revl) {\r
106 //\r
107 // command execution success\r
108 //\r
109 EdkLog.log(EdkLog.EDK_VERBOSE, "SplitFile succeeded!");\r
110 } else {\r
111 //\r
112 // command execution fail\r
113 //\r
114 EdkLog.log(EdkLog.EDK_INFO, "ERROR = " + Integer.toHexString(revl));\r
115 throw new BuildException("SplitFile failed!");\r
116 }\r
117 } catch (Exception e) {\r
118 throw new BuildException(e.getMessage());\r
119 }\r
120 }\r
121\r
122 /**\r
123 * getInputFile\r
124 *\r
125 * This function is to get class member "inputFile".\r
126 *\r
127 * @return string of input file name.\r
128 */\r
129 public String getInputFile() {\r
130 return inputFile;\r
131 }\r
132\r
133 /**\r
134 * setComponentType\r
135 *\r
136 * This function is to set class member "inputFile".\r
137 *\r
138 * @param inputFile\r
139 * string of input file name.\r
140 */\r
141 public void setInputFile(String inputFile) {\r
142 this.inputFile = inputFile;\r
143 }\r
144\r
145 /**\r
146 getOffset\r
147\r
148 This function is to get class member "offset"\r
149\r
150 @return offset value of string.\r
151 **/\r
152 public String getOffset() {\r
153 return offset;\r
154 }\r
155\r
156 /**\r
157 setOffset\r
158\r
159 This function is to set class member "offset"\r
160\r
161 @param offset\r
162 string of offset value.\r
163 **/\r
164 public void setOffset(String offset) {\r
165 this.offset = offset;\r
166 }\r
167\r
168}\r