protected void copyScriptsToOutputDirectory()

in maven-plugin-tools-api/src/main/java/org/apache/maven/tools/plugin/extractor/AbstractScriptedMojoDescriptorExtractor.java [93:129]


    protected void copyScriptsToOutputDirectory(
            Map<String, Set<File>> scriptFilesKeyedByBasedir, String outputDirectory, PluginToolsRequest request)
            throws ExtractionException {
        File outputDir = new File(outputDirectory);

        if (!outputDir.exists()) {
            outputDir.mkdirs();
        }

        for (Map.Entry<String, Set<File>> entry : scriptFilesKeyedByBasedir.entrySet()) {
            File sourceDir = new File(entry.getKey());

            Set<File> scripts = entry.getValue();

            for (File scriptFile : scripts) {
                String relativePath =
                        scriptFile.getPath().substring(sourceDir.getPath().length());

                if (relativePath.charAt(0) == File.separatorChar) {
                    relativePath = relativePath.substring(1);
                }

                File outputFile = new File(outputDir, relativePath).getAbsoluteFile();

                if (!outputFile.getParentFile().exists()) {
                    outputFile.getParentFile().mkdirs();
                }

                try {
                    FileUtils.copyFile(scriptFile, outputFile);
                } catch (IOException e) {
                    throw new ExtractionException(
                            "Cannot copy script file: " + scriptFile + " to output: " + outputFile, e);
                }
            }
        }
    }