
org.infinispan.cli.shell.ConfigImpl Maven / Gradle / Ivy
package org.infinispan.cli.shell;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.Reader;
import java.io.Writer;
import java.util.Properties;
import org.infinispan.cli.Config;
/**
* ConfigImpl.
*
* @author Tristan Tarrant
* @since 5.2
*/
public class ConfigImpl implements Config {
private static final String CONFIG_FILE = "ispn-cli.ini";
private final String configHome;
private boolean colorsEnabled = true;
private boolean historyEnabled = true;
private String prompt = "[\\c{green}$CONNECTION\\c{yellow}/$CONTAINER\\c{yellow}/$CACHE\\c]> ";
public ConfigImpl(String configHome) {
this.configHome = configHome;
}
@Override
public void load() {
Properties p = new Properties();
File configFile = new File(configHome, CONFIG_FILE);
if (configFile.exists()) {
try {
Reader r = new BufferedReader(new FileReader(configFile));
p.load(r);
r.close();
if (p.containsKey("colors")) colorsEnabled = Boolean.parseBoolean(p.getProperty("colors"));
if (p.containsKey("history")) historyEnabled = Boolean.parseBoolean(p.getProperty("history"));
if (p.containsKey("prompt")) prompt = p.getProperty("prompt");
} catch (IOException e) {
//FIXME implement me
}
}
}
@Override
public void save() {
Properties p = new Properties();
p.setProperty("colors", String.valueOf(colorsEnabled));
p.setProperty("history", String.valueOf(historyEnabled));
p.setProperty("prompt", prompt);
File configDir = new File(configHome);
File configFile = new File(configHome, CONFIG_FILE);
try {
if (!configDir.exists()) {
configDir.mkdirs();
}
Writer w = new BufferedWriter(new FileWriter(configFile));
p.store(w, null);
w.close();
} catch (IOException e) {
//FIXME implement me
}
}
@Override
public boolean isColorEnabled() {
return colorsEnabled;
}
@Override
public boolean isHistoryEnabled() {
return historyEnabled;
}
@Override
public String getPrompt() {
return prompt;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy