using IniParser;
using IniParser.Model;
using System.IO;
namespace Sleepy
{
public class Config
{
private string file;
private FileIniDataParser parser;
private IniData config;
public int Timeout = 60;
public bool WindowsUpdate = true;
public Config(string file)
{
this.file = file;
parser = new FileIniDataParser();
try
{
config = parser.ReadFile(file);
} catch
{
config = new IniData();
}
Reload();
}
public void Save()
{
config["config"]["timeout"] = Timeout.ToString();
config["config"]["windows_update"] = WindowsUpdate.ToString();
if (!File.Exists(Path.GetDirectoryName(file)))
{
Directory.CreateDirectory(Path.GetDirectoryName(file));
}
parser.WriteFile(file, config);
}
public void Reload()
{
string timeout = "60";
if (!string.IsNullOrEmpty(config["config"]["timeout"]))
{
timeout = config["config"]["timeout"];
}
if (!string.IsNullOrEmpty(config["config"]["windows_update"]))
{
WindowsUpdate = config["config"]["windows_update"].ToLower() == "true";
}
int iTimeout;
if (int.TryParse(timeout, out iTimeout) && iTimeout >= 15 && iTimeout <= 900)
{
Timeout = iTimeout;
}
}
}
}