const char kConfigFileName[] = "config.xml";
const char kHybridConfigFileName[] = "res/wgt/config.xml";
-bool ExtractPackageArchive(const std::string& file_path,
- const std::string& file, const bf::path& tmp_dir) {
- if (!ci::ExtractToTmpDir(file_path.c_str(), tmp_dir, file.c_str())) {
+} // namespace
+
+bool WgtArchiveInfo::ExtractPackageArchive(const std::string& file_path,
+ const std::string& file, const std::string& tmp_dir) {
+ if (!ci::ExtractToTmpDir(file_path.c_str(),
+ bf::path(tmp_dir), file.c_str())) {
LOG(ERROR) << "Failed to extract";
return false;
}
return true;
}
-} // namespace
-
bool WgtArchiveInfo::GetPackageInfo(
const wgt::parse::WidgetConfigParser& parser) {
auto widget_info =
return false;
LOG(DEBUG) << "Unpack at temporary dir: " << tmp_dir;
bool is_hybrid = false;
- if (!ExtractPackageArchive(path_, kHybridConfigFileName, tmp_dir))
+ if (!ExtractPackageArchive(path_, kHybridConfigFileName, tmp_dir.string()))
return false;
if (bf::exists(tmp_dir / kHybridConfigFileName)) {
is_hybrid = true;
} else {
- if (!ExtractPackageArchive(path_, kConfigFileName, tmp_dir))
+ if (!ExtractPackageArchive(path_, kConfigFileName, tmp_dir.string()))
return false;
}
manifest_path = tmp_dir / kConfigFileName;
if (!parser.ParseManifest(manifest_path)) {
LOG(ERROR) << "Failed to parse";
- bf::remove_all(tmp_dir);
+ RemoveTmpDir(tmp_dir.string());
return false;
}
if (!GetPackageInfo(parser)) {
LOG(ERROR) << "Failed to get package info";
- bf::remove_all(tmp_dir);
+ RemoveTmpDir(tmp_dir.string());
return false;
}
if (!GetApplicationInfo(parser)) {
if (!GetAddonInfo(parser)) {
LOG(ERROR) << "Failed to get application info nor addon info. "
<< "At least one of them must exist";
- bf::remove_all(tmp_dir);
+ RemoveTmpDir(tmp_dir.string());
return false;
}
}
icon_path = "res/wgt/" + icon_;
else
icon_path = icon_;
- if (!ExtractPackageArchive(path_, icon_path, tmp_dir)) {
- bf::remove_all(tmp_dir);
+ if (!ExtractPackageArchive(path_, icon_path, tmp_dir.string())) {
+ RemoveTmpDir(tmp_dir.string());
return false;
}
if (!ReadIcon(icon_path, tmp_dir)) {
LOG(WARNING) << "Failed to get icon info";
- bf::remove_all(tmp_dir);
+ RemoveTmpDir(tmp_dir.string());
return false;
}
}
LOG(WARNING) << "Failed to get description info";
free(locale);
- bf::remove_all(tmp_dir);
+ RemoveTmpDir(tmp_dir.string());
+
return true;
}