updated flake

This commit is contained in:
2025-12-12 14:06:33 +03:00
parent cf8c93e31b
commit 2a81fa7b1b
2 changed files with 129 additions and 109 deletions

View File

@@ -1,16 +1,16 @@
#include <iostream>
#include <cstdlib>
#include <iostream>
#include <string>
#include <argparse/argparse.hpp>
#include <core/utils.hpp>
#include <core/config/config.hpp>
#include <core/io/toml_file.hpp>
#include <core/palette/palette_file.hpp>
#include <core/palette/palette_manager.hpp>
#include <core/theme/theme_template.hpp>
#include <core/theme/theme_renderer.hpp>
#include <core/theme/theme_template.hpp>
#include <core/utils.hpp>
#include <core/version.hpp>
void handle_show_vars()
@@ -21,9 +21,8 @@ void handle_show_vars()
void handle_list_themes()
{
auto palette_manager = clrsync::core::palette_manager<clrsync::core::io::toml_file>();
palette_manager.load_palettes_from_directory(
clrsync::core::config::instance().palettes_path());
palette_manager.load_palettes_from_directory(clrsync::core::config::instance().palettes_path());
const auto &palettes = palette_manager.palettes();
std::cout << "Available themes:" << std::endl;
for (const auto &p : palettes)
@@ -36,7 +35,7 @@ int handle_apply_theme(const argparse::ArgumentParser &program, const std::strin
{
clrsync::core::theme_renderer<clrsync::core::io::toml_file> renderer;
std::string theme_identifier;
if (program.is_used("--theme"))
{
theme_identifier = program.get<std::string>("--theme");
@@ -57,7 +56,7 @@ int handle_apply_theme(const argparse::ArgumentParser &program, const std::strin
theme_identifier = default_theme;
renderer.apply_theme(theme_identifier);
}
std::cout << "Applied theme " << theme_identifier << std::endl;
return 0;
}
@@ -70,35 +69,27 @@ void initialize_config(const std::string &config_path)
void setup_argument_parser(argparse::ArgumentParser &program)
{
program.add_argument("-a", "--apply")
.help("applies default theme")
.flag();
program.add_argument("-a", "--apply").help("applies default theme").flag();
program.add_argument("-c", "--config")
.default_value(clrsync::core::get_default_config_path())
.help("sets config file path")
.metavar("PATH");
program.add_argument("-l", "--list-themes")
.help("lists available themes")
.flag();
program.add_argument("-s", "--show-vars")
.help("shows color keys")
.flag();
program.add_argument("-l", "--list-themes").help("lists available themes").flag();
program.add_argument("-s", "--show-vars").help("shows color keys").flag();
auto &group = program.add_mutually_exclusive_group();
group.add_argument("-t", "--theme")
.help("sets theme <theme_name> to apply");
group.add_argument("-p", "--path")
.help("sets theme file <path/to/theme> to apply");
group.add_argument("-t", "--theme").help("sets theme <theme_name> to apply");
group.add_argument("-p", "--path").help("sets theme file <path/to/theme> to apply");
}
int main(int argc, char *argv[])
{
argparse::ArgumentParser program("clrsync", clrsync::core::version_string());
setup_argument_parser(program);
try
{
program.parse_args(argc, argv);
@@ -109,9 +100,9 @@ int main(int argc, char *argv[])
std::cerr << program;
return 1;
}
std::string config_path = program.get<std::string>("--config");
try
{
initialize_config(config_path);
@@ -121,19 +112,19 @@ int main(int argc, char *argv[])
std::cerr << "Error loading config: " << err.what() << std::endl;
return 1;
}
if (program.is_used("--show-vars"))
{
handle_show_vars();
return 0;
}
if (program.is_used("--list-themes"))
{
handle_list_themes();
return 0;
}
if (program.is_used("--apply"))
{
const std::string default_theme = clrsync::core::config::instance().default_theme();
@@ -141,6 +132,6 @@ int main(int argc, char *argv[])
}
std::cout << program << std::endl;
return 0;
}
}