Browse Source

Stop altering search engine files permissions

adaptive-webui-19844
Christophe Dumez 15 years ago
parent
commit
c12ae58868
  1. 35
      src/searchengine.cpp

35
src/searchengine.cpp

@ -472,64 +472,61 @@ void SearchEngine::updateNova() {
qDebug("Updating nova"); qDebug("Updating nova");
// create search_engine directory if necessary // create search_engine directory if necessary
QDir search_dir(misc::searchEngineLocation()); QDir search_dir(misc::searchEngineLocation());
QFile package_file(search_dir.path()+QDir::separator()+"__init__.py"); QFile package_file(search_dir.absoluteFilePath("__init__.py"));
package_file.open(QIODevice::WriteOnly | QIODevice::Text); package_file.open(QIODevice::WriteOnly | QIODevice::Text);
package_file.close(); package_file.close();
if(!search_dir.exists("engines")){ if(!search_dir.exists("engines")){
search_dir.mkdir("engines"); search_dir.mkdir("engines");
} }
QFile package_file2(search_dir.path()+QDir::separator()+"engines"+QDir::separator()+"__init__.py"); QFile package_file2(search_dir.absolutePath().replace("\\", "/")+"/engines/__init__.py");
package_file2.open(QIODevice::WriteOnly | QIODevice::Text); package_file2.open(QIODevice::WriteOnly | QIODevice::Text);
package_file2.close(); package_file2.close();
// Copy search plugin files (if necessary) // Copy search plugin files (if necessary)
QString filePath = misc::searchEngineLocation()+QDir::separator()+"nova2.py"; QString filePath = search_dir.absoluteFilePath("nova2.py");
if(getPluginVersion(":/search_engine/nova2.py") > getPluginVersion(filePath)) { if(getPluginVersion(":/search_engine/nova2.py") > getPluginVersion(filePath)) {
if(QFile::exists(filePath)) if(QFile::exists(filePath))
QFile::remove(filePath); QFile::remove(filePath);
QFile::copy(":/search_engine/nova2.py", filePath); QFile::copy(":/search_engine/nova2.py", filePath);
} }
// Set permissions
QFile::Permissions perm=QFile::ReadOwner | QFile::WriteOwner | QFile::ExeOwner | QFile::ReadUser | QFile::WriteUser | QFile::ExeUser | QFile::ReadGroup | QFile::ReadGroup;
QFile(misc::searchEngineLocation()+QDir::separator()+"nova2.py").setPermissions(perm);
filePath = misc::searchEngineLocation()+QDir::separator()+"nova2dl.py"; filePath = search_dir.absoluteFilePath("nova2dl.py");
if(getPluginVersion(":/search_engine/nova2dl.py") > getPluginVersion(filePath)) { if(getPluginVersion(":/search_engine/nova2dl.py") > getPluginVersion(filePath)) {
if(QFile::exists(filePath)){ if(QFile::exists(filePath)){
QFile::remove(filePath); QFile::remove(filePath);
} }
QFile::copy(":/search_engine/nova2dl.py", filePath); QFile::copy(":/search_engine/nova2dl.py", filePath);
} }
QFile(misc::searchEngineLocation()+QDir::separator()+"nova2dl.py").setPermissions(perm);
filePath = misc::searchEngineLocation()+QDir::separator()+"novaprinter.py"; filePath = search_dir.absoluteFilePath("novaprinter.py");
if(getPluginVersion(":/search_engine/novaprinter.py") > getPluginVersion(filePath)) { if(getPluginVersion(":/search_engine/novaprinter.py") > getPluginVersion(filePath)) {
if(QFile::exists(filePath)){ if(QFile::exists(filePath)){
QFile::remove(filePath); QFile::remove(filePath);
} }
QFile::copy(":/search_engine/novaprinter.py", filePath); QFile::copy(":/search_engine/novaprinter.py", filePath);
} }
QFile(misc::searchEngineLocation()+QDir::separator()+"novaprinter.py").setPermissions(perm);
filePath = misc::searchEngineLocation()+QDir::separator()+"helpers.py"; filePath = search_dir.absoluteFilePath("helpers.py");
if(getPluginVersion(":/search_engine/helpers.py") > getPluginVersion(filePath)) { if(getPluginVersion(":/search_engine/helpers.py") > getPluginVersion(filePath)) {
if(QFile::exists(filePath)){ if(QFile::exists(filePath)){
QFile::remove(filePath); QFile::remove(filePath);
} }
QFile::copy(":/search_engine/helpers.py", filePath); QFile::copy(":/search_engine/helpers.py", filePath);
} }
QFile(misc::searchEngineLocation()+QDir::separator()+"socks.py").setPermissions(perm);
filePath = misc::searchEngineLocation()+QDir::separator()+"socks.py"; filePath = search_dir.absoluteFilePath("socks.py");
if(!QFile::exists(filePath)) { if(!QFile::exists(filePath)) {
QFile::copy(":/search_engine/socks.py", filePath); QFile::copy(":/search_engine/socks.py", filePath);
} }
QString destDir = misc::searchEngineLocation()+QDir::separator()+"engines"+QDir::separator(); QDir destDir(QDir(misc::searchEngineLocation()).absoluteFilePath("engines"));
QDir shipped_subDir(":/search_engine/engines/"); QDir shipped_subDir(":/search_engine/engines/");
QStringList files = shipped_subDir.entryList(); QStringList files = shipped_subDir.entryList();
foreach(const QString &file, files){ foreach(const QString &file, files){
QString shipped_file = shipped_subDir.path()+"/"+file; QString shipped_file = shipped_subDir.absoluteFilePath(file);
// Copy python classes // Copy python classes
if(file.endsWith(".py")) { if(file.endsWith(".py")) {
const QString dest_file = destDir+file; const QString dest_file = destDir.absoluteFilePath(file);
if(getPluginVersion(shipped_file) > getPluginVersion(dest_file) ) { if(getPluginVersion(shipped_file) > getPluginVersion(dest_file) ) {
qDebug("shippped %s is more recent then local plugin, updating", qPrintable(file)); qDebug("shipped %s is more recent then local plugin, updating...", qPrintable(file));
if(QFile::exists(dest_file)) { if(QFile::exists(dest_file)) {
qDebug("Removing old %s", qPrintable(dest_file)); qDebug("Removing old %s", qPrintable(dest_file));
QFile::remove(dest_file); QFile::remove(dest_file);
@ -540,8 +537,8 @@ void SearchEngine::updateNova() {
} else { } else {
// Copy icons // Copy icons
if(file.endsWith(".png")) { if(file.endsWith(".png")) {
if(!QFile::exists(destDir+file)) { if(!QFile::exists(destDir.absoluteFilePath(file))) {
QFile::copy(shipped_file, destDir+file); QFile::copy(shipped_file, destDir.absoluteFilePath(file));
} }
} }
} }

Loading…
Cancel
Save