mirror of
https://github.com/PrismLauncher/PrismLauncher.git
synced 2026-07-02 11:26:59 +03:00
Set permissions for the updater binary after updating it.
This commit is contained in:
parent
595e4b697e
commit
c816a26647
2 changed files with 12 additions and 1 deletions
|
|
@ -412,6 +412,7 @@ DownloadUpdateTask::processFileLists(NetJob *job,
|
|||
if (isUpdater)
|
||||
{
|
||||
download->setProperty("finalPath", entry.path);
|
||||
download->setProperty("finalPerms", entry.mode);
|
||||
connect(download.get(), &MD5EtagDownload::succeeded, this, &DownloadUpdateTask::directDeployFile);
|
||||
}
|
||||
}
|
||||
|
|
@ -549,11 +550,16 @@ void DownloadUpdateTask::directDeployFile(const int index)
|
|||
{
|
||||
Md5EtagDownloadPtr download = std::dynamic_pointer_cast<MD5EtagDownload>(m_filesNetJob->operator[](index));
|
||||
const QString finalPath = download->property("finalPath").toString();
|
||||
bool ok = true;
|
||||
int finalMode = download->property("finalPerms").toInt(&ok);
|
||||
if(!ok)
|
||||
finalMode = 0755;
|
||||
QLOG_INFO() << "Replacing" << finalPath << "with" << download->m_output_file.fileName();
|
||||
if (QFile::remove(finalPath))
|
||||
{
|
||||
if (download->m_output_file.copy(finalPath))
|
||||
{
|
||||
QFile::setPermissions(finalPath, (QFileDevice::Permission) finalMode);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue