20 static TemplateManager*
Get();
23 std::string GetTemplatesDirectory();
26 std::string GetSettingsPath();
35 bool AddTemplateFromZip(
const std::string& zipPath, std::string& outError);
38 bool AddTemplateFromGitHub(
const std::string& gitHubUrl, std::string& outError);
41 bool RemoveTemplate(
const std::string& templateId);
44 const std::vector<Template>& GetTemplates()
const {
return mTemplates; }
47 const Template* FindTemplate(
const std::string& templateId)
const;
50 bool CreateProjectFromTemplate(
const std::string& templateId,
51 const std::string& projectPath,
52 const std::string& projectName,
53 std::string& outError);
56 static TemplateManager* sInstance;
61 void EnsureTemplatesDirectory();
64 void ScanTemplatesDirectory();
67 bool LoadTemplateMetadata(
const std::string& templateDir, Template& outTemplate);
70 bool DownloadFile(
const std::string& url,
const std::string& destPath, std::string& outError);
73 bool ExtractZip(
const std::string& zipPath,
const std::string& destDir, std::string& outError);
76 std::string ConvertGitHubUrlToDownloadUrl(
const std::string& gitHubUrl);
78 std::vector<Template> mTemplates;