in yetus-maven-plugin/src/main/java/org/apache/yetus/maven/plugin/fileops/MakeBins4Libs.java [89:162]
public void execute() throws MojoExecutionException {
Path libPath = Paths.get(libdir);
Path binPath = Paths.get(bindir);
if (!libPath.isAbsolute()) {
libPath = Paths.get(basedir, libdir);
}
if (!binPath.isAbsolute()) {
binPath = Paths.get(basedir, bindir);
}
try {
binPath.toFile().mkdir();
} catch (Exception x) {
throw new MojoExecutionException("Unable to create "
+ binPath.toString() + ": " + x);
}
Set<PosixFilePermission> perms = new HashSet<PosixFilePermission>();
perms.add(PosixFilePermission.OWNER_READ);
perms.add(PosixFilePermission.OWNER_WRITE);
perms.add(PosixFilePermission.OWNER_EXECUTE);
perms.add(PosixFilePermission.GROUP_READ);
perms.add(PosixFilePermission.GROUP_EXECUTE);
perms.add(PosixFilePermission.OTHERS_READ);
perms.add(PosixFilePermission.OTHERS_EXECUTE);
File libFile = libPath.toFile();
if (libFile == null) {
throw new MojoExecutionException("Cannot convert "
+ libPath.toString());
}
File[] libListOfFiles = libFile.listFiles();
if (libListOfFiles == null) {
throw new MojoExecutionException("No files in " + libPath.toString());
}
System.out.println("Processing dir " + libPath.toString());
for (int i = 0; i < libListOfFiles.length; i++) {
if ((libListOfFiles[i] != null) && (libListOfFiles[i].isFile())) {
String basename = FilenameUtils
.getBaseName(libListOfFiles[i].getName());
String theName = FilenameUtils.getName(libListOfFiles[i].getName());
String binName = Paths.get(binPath.toString(), basename).toString();
System.out.println("Creating file " + binName);
try {
PrintWriter binFile = new PrintWriter(binName, encoding);
String noneString = "none";
binFile.println("#!/usr/bin/env bash");
if (!license.equals(noneString)) {
InputStream inLicense = this.getClass()
.getClassLoader()
.getResourceAsStream("licenses/"
+ license + ".txt");
IOUtils.copy(inLicense, binFile);
inLicense.close();
}
binFile.println(wrapper + libdir + "/" + theName + "\" \"$@\"");
binFile.close();
Files.setPosixFilePermissions(Paths.get(binName), perms);
} catch (Exception x) {
throw new MojoExecutionException("Unable to create "
+ binName + ": " + x);
}
}
}
}