dropshell/src/templates.hpp
2025-04-27 13:03:48 +12:00

37 lines
1.2 KiB
C++

#include <string>
#include <vector>
#include <filesystem>
namespace dropshell {
class template_info {
public:
template_info() {}
template_info(std::string n, std::string p) : template_name(n), local_template_path(p) {}
std::string template_name;
std::string local_template_path;
};
// templates are stored in multiple locations:
// 1. /opt/dropshell/templates
// 2. CONFIG_DIR/templates
bool get_templates(std::vector<template_info>& templates);
bool get_template_info(const std::string& template_name, template_info& info);
bool template_command_exists(const std::string& template_name,const std::string& command);
void list_templates();
// create a template
// 1. create a new directory in the user templates directory
// 2. copy the example template from the system templates directory into the new directory
// 3. print out the README.txt file in the new template directory, and the path to the new template
void create_template(const std::string& template_name);
bool get_all_template_config_directories(std::vector<std::string>& template_config_directories);
} // namespace dropshell