Skip to content

Commit

Permalink
added ConfigUpdater & little bugfix
Browse files Browse the repository at this point in the history
  • Loading branch information
LordOtut committed Jun 15, 2017
1 parent 4a5909e commit 462f7ca
Show file tree
Hide file tree
Showing 4 changed files with 101 additions and 6 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,89 @@
package org.centauri.cloud.common.network.util;

import lombok.Getter;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.io.FileReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;

public class ConfigUpdater {

@Getter private static ConfigUpdater instance;

public ConfigUpdater() {
instance = this;
}

public void updateConfig(File currentfile, String defaultfilepath) {

try {

List<String> defaultLines = new ArrayList<>();
List<String> currentLines = new ArrayList<>();

InputStream in = getClass().getResourceAsStream(defaultfilepath);
BufferedReader reader = new BufferedReader(new InputStreamReader(in));
try {
for (String line; (line = reader.readLine()) != null; ) {
defaultLines.add(line);
}
} finally {
reader.close();
}

reader = new BufferedReader(new FileReader(currentfile));
try {
for (String line; (line = reader.readLine()) != null; ) {
currentLines.add(line);
}
} finally {
reader.close();
}

for(int i = 0; i < defaultLines.size(); i++) {
String defaultLine = defaultLines.get(i);
String currentLine;
try {
currentLine = currentLines.get(i);
} catch (Exception e) {
currentLine = null;
}
if(currentLine != null) {
if(!currentLine.startsWith("#") && currentLine.contains("=")) {
String currentKey = currentLine.split("=")[0];
String defaultKey = defaultLine.split("=")[0];
if(!currentKey.equals(defaultKey)) {
currentLines.set(i, defaultLine);
}
} else {
currentLines.set(i, defaultLine);
}
} else {
currentLines.add(defaultLine);
}
}

BufferedWriter writer = new BufferedWriter(new FileWriter(currentfile));
try {
for (String lineToWrite : currentLines) {
writer.write(lineToWrite + "\n");
}
} finally {
writer.close();
}


} catch (IOException e) {
e.printStackTrace();
}

}

}
Original file line number Diff line number Diff line change
@@ -1,14 +1,15 @@
package org.centauri.cloud.cloud.config;

import lombok.Getter;
import org.centauri.cloud.cloud.Cloud;
import org.centauri.cloud.common.network.util.ConfigUpdater;

import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.nio.file.Files;
import java.util.Properties;
import org.centauri.cloud.cloud.Cloud;

public class PropertyManager {

Expand All @@ -27,8 +28,11 @@ public void initVariables(Cloud cloud) {

public void load() {
File file = new File("config.properties");
if (!file.exists())
if (!file.exists()) {
createFile(file);
} else {
new ConfigUpdater().updateConfig(file, "/config.properties");
}
try (InputStream inputStream = new FileInputStream(file)) {
properties = new Properties();
properties.load(inputStream);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -147,22 +147,22 @@ private void handleTemplatesCommand(String input) {
try {
String[] args = input.split(" ");
if(args.length == 3) {
Template template = Cloud.getInstance().getTemplateManager().getTemplate(args[2]);
if(args[1].equalsIgnoreCase("create")) {
Cloud.getInstance().getTemplateManager().loadTemplate(args[2]);
Cloud.getLogger().info("Created template!");
} else if(args[1].equalsIgnoreCase("remove")) {
Cloud.getInstance().getTemplateManager().removeTemplate(args[2]);
Cloud.getLogger().info("Removed template!");
} else if(args[1].equalsIgnoreCase("build")) {
Template template = Cloud.getInstance().getTemplateManager().getTemplate(args[2]);
template = Cloud.getInstance().getTemplateManager().getTemplate(args[2]);
if(template == null) {
Cloud.getLogger().warn("Cannot find module {}!", args[2]);
return;
}
template.build();
Cloud.getLogger().info("Built template!");
} else if(args[1].equalsIgnoreCase("compress")) {
Template template = Cloud.getInstance().getTemplateManager().getTemplate(args[2]);
template = Cloud.getInstance().getTemplateManager().getTemplate(args[2]);
if(template == null) {
Cloud.getLogger().warn("Cannot find module {}!", args[2]);
return;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,8 @@ public void removeTemplate(String name) throws Exception {

template.getPropertiesInputStream().close();
FileUtils.deleteDirectory(template.getDir());
this.templates.remove(template);
Cloud.getLogger().info("Removed template!");
}

public Template loadTemplate(String name) throws Exception {
Expand All @@ -51,7 +53,7 @@ public Template loadTemplate(String name) throws Exception {
Cloud.getInstance().getProfiler().stop(profile);
return template;
}

public Template getTemplate(String name) {
return templates.stream().filter(template -> template.getName().equalsIgnoreCase(name)).findFirst().orElse(null);
}
Expand Down

0 comments on commit 462f7ca

Please sign in to comment.