mirror of
https://github.com/SoftFever/OrcaSlicer.git
synced 2025-08-02 19:44:00 -06:00
parent
7b6a0ba9ad
commit
a54e587751
1 changed files with 15 additions and 3 deletions
|
@ -116,6 +116,8 @@ struct PresetUpdater::priv
|
||||||
void check_install_indices() const;
|
void check_install_indices() const;
|
||||||
Updates get_config_updates() const;
|
Updates get_config_updates() const;
|
||||||
void perform_updates(Updates &&updates, bool snapshot = true) const;
|
void perform_updates(Updates &&updates, bool snapshot = true) const;
|
||||||
|
|
||||||
|
static void copy_file(const fs::path &from, const fs::path &to);
|
||||||
};
|
};
|
||||||
|
|
||||||
PresetUpdater::priv::priv(int version_online_event) :
|
PresetUpdater::priv::priv(int version_online_event) :
|
||||||
|
@ -285,7 +287,7 @@ void PresetUpdater::priv::check_install_indices() const
|
||||||
|
|
||||||
if (! fs::exists(path_in_cache)) {
|
if (! fs::exists(path_in_cache)) {
|
||||||
BOOST_LOG_TRIVIAL(info) << "Install index from resources: " << path.filename();
|
BOOST_LOG_TRIVIAL(info) << "Install index from resources: " << path.filename();
|
||||||
fs::copy_file(path, path_in_cache, fs::copy_option::overwrite_if_exists);
|
copy_file(path, path_in_cache);
|
||||||
} else {
|
} else {
|
||||||
Index idx_rsrc, idx_cache;
|
Index idx_rsrc, idx_cache;
|
||||||
idx_rsrc.load(path);
|
idx_rsrc.load(path);
|
||||||
|
@ -293,7 +295,7 @@ void PresetUpdater::priv::check_install_indices() const
|
||||||
|
|
||||||
if (idx_cache.version() < idx_rsrc.version()) {
|
if (idx_cache.version() < idx_rsrc.version()) {
|
||||||
BOOST_LOG_TRIVIAL(info) << "Update index from resources: " << path.filename();
|
BOOST_LOG_TRIVIAL(info) << "Update index from resources: " << path.filename();
|
||||||
fs::copy_file(path, path_in_cache, fs::copy_option::overwrite_if_exists);
|
copy_file(path, path_in_cache);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -397,7 +399,7 @@ void PresetUpdater::priv::perform_updates(Updates &&updates, bool snapshot) cons
|
||||||
for (const auto &update : updates.updates) {
|
for (const auto &update : updates.updates) {
|
||||||
BOOST_LOG_TRIVIAL(info) << '\t' << update;
|
BOOST_LOG_TRIVIAL(info) << '\t' << update;
|
||||||
|
|
||||||
fs::copy_file(update.source, update.target, fs::copy_option::overwrite_if_exists);
|
copy_file(update.source, update.target);
|
||||||
|
|
||||||
PresetBundle bundle;
|
PresetBundle bundle;
|
||||||
bundle.load_configbundle(update.target.string(), PresetBundle::LOAD_CFGBNDLE_SYSTEM);
|
bundle.load_configbundle(update.target.string(), PresetBundle::LOAD_CFGBNDLE_SYSTEM);
|
||||||
|
@ -433,6 +435,16 @@ void PresetUpdater::priv::perform_updates(Updates &&updates, bool snapshot) cons
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void PresetUpdater::priv::copy_file(const fs::path &source, const fs::path &target)
|
||||||
|
{
|
||||||
|
static const auto perms = fs::owner_read | fs::owner_write | fs::group_read | fs::others_read; // aka 644
|
||||||
|
|
||||||
|
// Make sure the file has correct permission both before and after we copy over it
|
||||||
|
fs::permissions(target, perms);
|
||||||
|
fs::copy_file(source, target, fs::copy_option::overwrite_if_exists);
|
||||||
|
fs::permissions(target, perms);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
PresetUpdater::PresetUpdater(int version_online_event) :
|
PresetUpdater::PresetUpdater(int version_online_event) :
|
||||||
p(new priv(version_online_event))
|
p(new priv(version_online_event))
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue