Where people come together to learn, code, and play. Custom-built HTTP server, site generator, and website from scratch using no external libraries. Goal is to be as minimalistic and fun as possible. http://projectdivar.com
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
SigPlace/sigPlace.java

66 lines
2.1 KiB

import java.io.IOException;
import java.nio.charset.Charset;
import java.nio.file.FileStore;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.nio.file.StandardOpenOption;
import java.util.AbstractMap;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.stream.Collectors;
public class sigPlace {
final static String ROOTDIR = "sitefiles";
final static String OUTDIR = "out";
final static HashMap<String,String> map = new HashMap<>(Map.ofEntries(
new AbstractMap.SimpleEntry<>("$SITENAME", "SigPlace")
));
final static HashMap<String,String> ops = new HashMap<>(Map.ofEntries(
new AbstractMap.SimpleEntry<>(
"%DEFAULT",
"<!DOCTYPE html>"+
"<html>"+
"<head>"+
"<link rel=\"stylesheet\" href=\"sig.css\">"+
"</head>")
));
public static void main(String[] args) {
Set<Path> files = GetFilesInDir(ROOTDIR);
for (Path f : files) {
System.out.println("Found "+f.getFileName());
try {
System.out.println("Preparing "+f.getFileName());
List<String> content = Files.readAllLines(f);
content.add(0,ops.get("%DEFAULT"));
Path newf = Paths.get(OUTDIR,f.getFileName().toString());
System.out.println("Writing to "+newf);
Files.write(newf, content, Charset.defaultCharset(),StandardOpenOption.CREATE,StandardOpenOption.TRUNCATE_EXISTING,StandardOpenOption.WRITE)
System.out.println(newf.getFileName() + " conversion complete!");
} catch (IOException e) {
e.printStackTrace();
}
}
}
private static Set<Path> GetFilesInDir(String directory) {
Path dir = Paths.get(directory);
try {
return Files.list(dir).collect(Collectors.toSet());
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
}