package project.generator;
import java.io.IOException;
import java.nio.charset.StandardCharsets;
import java.nio.file.Path;
import utils.lists.ArrayList;
import utils.lists.Files;
import utils.lists.Paths;
public class LibrariesProjectGenerator {
public static void main(String[] args) {
Path libraries = Paths.get("").toAbsolutePath().getParent().getParent().resolve("libraries");
try {
generateProjects(libraries);
} catch(IOException e) {
e.printStackTrace();
}
}
private static void generateProjects(Path libraries) throws IOException {
ArrayList<Path> repos = Files.list(libraries).filter(Files::isDirectory).toList();
for(Path repo : repos) {
if(repo.endsWith("SuperiorStreams")) {
continue;
}
generateDotProject(repo);
generateDotGitignore(repo);
}
}
private static void generateDotGitignore(Path repo) throws IOException {
Path dotGitignore = repo.resolve(".gitignore");
ArrayList<String> lines =
Files.isRegularFile(dotGitignore) ? Files.readAllLines(dotGitignore) : new ArrayList<>();
if(lines.contains("/.project") || lines.contains(".project")) {
return;
}
lines.add("/.project");
byte[] bytes = String.join("\n", lines).getBytes(StandardCharsets.UTF_8);
Files.write(dotGitignore, bytes);
}
private static void generateDotProject(Path repo) throws IOException {
ArrayList<String> lines = new ArrayList<>();
lines.add("<?xml version=\"1.0\" encoding=\"UTF-8\"?>");
lines.add("<projectDescription>");
lines.add(" <name>" + repo.getFileName() + "</name>");
lines.add(" <comment></comment>");
lines.add(" <projects>");
lines.add(" </projects>");
lines.add(" <buildSpec>");
lines.add(" </buildSpec>");
lines.add(" <natures>");
lines.add(" </natures>");
lines.add("</projectDescription>");
lines.add("");
Path dotProject = repo.resolve(".project");
byte[] bytes = String.join("\n", lines).getBytes(StandardCharsets.UTF_8);
Files.write(dotProject, bytes);
}
}