]> git.proxmox.com Git - mirror_edk2.git/blame - Tools/Source/FrameworkTasks/org/tianocore/framework/tasks/SplitfileTask.java
moved exception and logger classes to org.tianocore.common package
[mirror_edk2.git] / Tools / Source / FrameworkTasks / org / tianocore / framework / tasks / SplitfileTask.java
CommitLineData
a15bb0d3 1/** @file\r
2 SplitfileTask class.\r
3\r
ff225cbb 4 SplitfileTask is used to call splitfile.exe to split input file to 2 output\r
a15bb0d3 5 file.\r
ff225cbb 6\r
7\r
a15bb0d3 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
ff225cbb 13\r
a15bb0d3 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
ff225cbb 28\r
29import org.tianocore.common.logger.EdkLog;\r
a15bb0d3 30\r
31/**\r
32 SplitfileTask class.\r
33\r
ff225cbb 34 SplitfileTask is used to call splitfile.exe to split input file to 2 output\r
a15bb0d3 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
ff225cbb 48\r
a15bb0d3 49 /**\r
50 * execute\r
ff225cbb 51 *\r
a15bb0d3 52 * SplitfleTask execute function is to assemble tool command line & execute\r
53 * tool command line\r
ff225cbb 54 *\r
a15bb0d3 55 * @throws BuidException\r
56 */\r
57 public void execute() throws BuildException {\r
58\r
59 Project project = this.getOwningTarget().getProject();\r
ff225cbb 60\r
a15bb0d3 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
ff225cbb 67\r
a15bb0d3 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
ff225cbb 79\r
a15bb0d3 80 //\r
81 // argument of tools\r
82 //\r
83 argument = inputFile + " " + offset;\r
ff225cbb 84\r
a15bb0d3 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
ff225cbb 101\r
219e2247 102 EdkLog.log(EdkLog.EDK_VERBOSE, Commandline.toString(cmdline.getCommandline()));\r
103 EdkLog.log(EdkLog.EDK_INFO, (new File(this.inputFile)).getName());\r
a15bb0d3 104 revl = runner.execute();\r
105 if (EFI_SUCCESS == revl) {\r
106 //\r
107 // command execution success\r
108 //\r
3f7b510e 109 EdkLog.log(EdkLog.EDK_VERBOSE, "SplitFile succeeded!");\r
a15bb0d3 110 } else {\r
111 //\r
112 // command execution fail\r
113 //\r
219e2247 114 EdkLog.log(EdkLog.EDK_INFO, "ERROR = " + Integer.toHexString(revl));\r
3f7b510e 115 throw new BuildException("SplitFile failed!");\r
a15bb0d3 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
ff225cbb 124 *\r
a15bb0d3 125 * This function is to get class member "inputFile".\r
ff225cbb 126 *\r
a15bb0d3 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
ff225cbb 135 *\r
a15bb0d3 136 * This function is to set class member "inputFile".\r
ff225cbb 137 *\r
a15bb0d3 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
ff225cbb 147\r
a15bb0d3 148 This function is to get class member "offset"\r
ff225cbb 149\r
a15bb0d3 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
ff225cbb 158\r
a15bb0d3 159 This function is to set class member "offset"\r
ff225cbb 160\r
a15bb0d3 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
ff225cbb 167\r
a15bb0d3 168}\r