Erase and recreate lua directories on import
This commit is contained in:
parent
c1c12feb8f
commit
69703ac29b
|
@ -56,6 +56,7 @@ static bool mod_import_lua(char* src) {
|
||||||
static bool mod_import_zip(char* path, bool* isLua, bool* isDynos) {
|
static bool mod_import_zip(char* path, bool* isLua, bool* isDynos) {
|
||||||
LOG_INFO("Importing zip mod: %s", path);
|
LOG_INFO("Importing zip mod: %s", path);
|
||||||
|
|
||||||
|
char luaPath[SYS_MAX_PATH] = { 0 };
|
||||||
mz_zip_archive zip_archive = { 0 };
|
mz_zip_archive zip_archive = { 0 };
|
||||||
mz_bool status = mz_zip_reader_init_file(&zip_archive, path, 0);
|
mz_bool status = mz_zip_reader_init_file(&zip_archive, path, 0);
|
||||||
if (!status) {
|
if (!status) {
|
||||||
|
@ -75,6 +76,7 @@ static bool mod_import_zip(char* path, bool* isLua, bool* isDynos) {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (str_ends_with(file_stat.m_filename, ".lua")) {
|
if (str_ends_with(file_stat.m_filename, ".lua")) {
|
||||||
|
path_get_folder(file_stat.m_filename, luaPath);
|
||||||
*isLua = true;
|
*isLua = true;
|
||||||
break;
|
break;
|
||||||
} else if (str_ends_with(file_stat.m_filename, ".tex")) {
|
} else if (str_ends_with(file_stat.m_filename, ".tex")) {
|
||||||
|
@ -102,10 +104,29 @@ static bool mod_import_zip(char* path, bool* isLua, bool* isDynos) {
|
||||||
mz_zip_reader_end(&zip_archive);
|
mz_zip_reader_end(&zip_archive);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// create mod/dynos path if it doesn't exist
|
||||||
if (!fs_sys_dir_exists(dstDirectory)) {
|
if (!fs_sys_dir_exists(dstDirectory)) {
|
||||||
fs_sys_mkdir(dstDirectory);
|
fs_sys_mkdir(dstDirectory);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// erase and create lua path
|
||||||
|
if (*isLua && strlen(luaPath) > 0) {
|
||||||
|
if (!concat_path(dst, dstDirectory, luaPath)) {
|
||||||
|
LOG_ERROR("Failed to concat path for base lua directory");
|
||||||
|
mz_zip_reader_end(&zip_archive);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
if (fs_sys_dir_exists(dst)) {
|
||||||
|
mods_delete_folder(dst);
|
||||||
|
}
|
||||||
|
if (!fs_sys_mkdir(dst)) {
|
||||||
|
LOG_ERROR("Failed to mkdir for base lua directory");
|
||||||
|
mz_zip_reader_end(&zip_archive);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// Extract the archive
|
// Extract the archive
|
||||||
for (int i = 0; i < (int)mz_zip_reader_get_num_files(&zip_archive); i++) {
|
for (int i = 0; i < (int)mz_zip_reader_get_num_files(&zip_archive); i++) {
|
||||||
mz_zip_archive_file_stat file_stat;
|
mz_zip_archive_file_stat file_stat;
|
||||||
|
|
Loading…
Reference in New Issue