#pragma once #include #include #define JSON_INLINE_ALL #include namespace dropshell { class tRegistryEntry { public: tRegistryEntry(nlohmann::json json); ~tRegistryEntry(); public: std::string name; std::string url; std::string token; bool valid; }; class config { public: config(); ~config(); bool load_config(); bool save_config(bool create_aux_directories); bool is_config_set() const; static bool is_agent_installed(); std::vector get_template_registry_urls(); std::vector get_local_template_paths(); std::vector get_local_server_definition_paths(); std::string get_server_create_path(); std::string get_template_create_path(); std::string get_backups_path(); private: nlohmann::json mConfig; bool mIsConfigSet; }; config & gConfig(); } // namespace dropshell