public void execute()

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);

        }
      }
    }
  }