save/load commands

This commit is contained in:
nullifiedcat 2018-07-29 23:33:48 +03:00
parent f626151345
commit a48d1cf88d
2 changed files with 37 additions and 1 deletions

View File

@ -114,7 +114,7 @@ public:
{
//if (next < min) next = min;
//if (next > max) next = max;
if (next != value)
if (next != value || string.empty())
{
this->fireCallbacks(next);
value = next;

View File

@ -2,6 +2,10 @@
#include <core/cvwrapper.hpp>
#include <settings/Manager.hpp>
#include <init.hpp>
#include <settings/SettingsIO.hpp>
#include <dirent.h>
#include <fcntl.h>
#include <sys/stat.h>
/*
Created on 29.07.18.
@ -44,6 +48,38 @@ static CatCommand cat("cat", "", [](const CCommand& args) {
}
});
static CatCommand save("save", "", [](const CCommand& args) {
settings::SettingsWriter writer{ settings::Manager::instance() };
DIR *config_directory = opendir(DATA_PATH "/configs");
if (!config_directory)
{
logging::Info("Configs directory doesn't exist, creating one!");
mkdir(DATA_PATH "/configs", S_IRWXU | S_IRWXG);
}
if (args.ArgC() == 1)
{
writer.saveTo(DATA_PATH "/configs/default.conf", false);
}
else
{
writer.saveTo(std::string(DATA_PATH "/configs/") + args.Arg(1) + ".conf", false);
}
});
static CatCommand load("load", "", [](const CCommand& args) {
settings::SettingsReader loader{ settings::Manager::instance() };
if (args.ArgC() == 1)
{
loader.loadFrom(DATA_PATH "/configs/default.conf");
}
else
{
loader.loadFrom(std::string(DATA_PATH "/configs/") + args.Arg(1) + ".conf");
}
});
static std::vector<std::string> sorted{};
static void getAndSortAllVariables()