mirror of
https://github.com/HifiExperiments/overte.git
synced 2025-04-07 08:53:40 +02:00
Change Launcher config.json location
Launcher `config.json` can not be inside Interface's app bundle, as it will break signing.
This commit is contained in:
parent
f80fb39447
commit
c2e0e6a976
3 changed files with 41 additions and 16 deletions
|
@ -14,6 +14,7 @@
|
|||
#include <QtCore/QProcess>
|
||||
#include <QDebug>
|
||||
#include <QDir>
|
||||
#include <QFileInfo>
|
||||
#include <QLocalSocket>
|
||||
#include <QLocalServer>
|
||||
#include <QSharedMemory>
|
||||
|
@ -117,21 +118,27 @@ int main(int argc, const char* argv[]) {
|
|||
}
|
||||
|
||||
QString applicationPath;
|
||||
// A temporary application instance is needed to get the location of the running executable
|
||||
// Tests using high_resolution_clock show that this takes about 30-50 microseconds (on my machine, YMMV)
|
||||
// If we wanted to avoid the QCoreApplication, we would need to write our own
|
||||
// cross-platform implementation.
|
||||
{
|
||||
// A temporary application instance is needed to get the location of the running executable
|
||||
// Tests using high_resolution_clock show that this takes about 30-50 microseconds (on my machine, YMMV)
|
||||
// If we wanted to avoid the QCoreApplication, we would need to write our own
|
||||
// cross-platform implementation.
|
||||
QCoreApplication tempApp(argc, const_cast<char**>(argv));
|
||||
#ifdef Q_OS_OSX
|
||||
if (QFileInfo::exists(QCoreApplication::applicationDirPath() + "/../../../config.json")) {
|
||||
applicationPath = QCoreApplication::applicationDirPath() + "/../../../";
|
||||
} else {
|
||||
applicationPath = QCoreApplication::applicationDirPath();
|
||||
}
|
||||
#else
|
||||
applicationPath = QCoreApplication::applicationDirPath();
|
||||
#endif
|
||||
}
|
||||
|
||||
static const QString APPLICATION_CONFIG_FILENAME = "config.json";
|
||||
QDir applicationDir(applicationPath);
|
||||
QString configFileName = applicationDir.filePath(APPLICATION_CONFIG_FILENAME);
|
||||
QFile configFile(configFileName);
|
||||
QString launcherPath;
|
||||
|
||||
if (configFile.exists()) {
|
||||
if (!configFile.open(QIODevice::ReadOnly)) {
|
||||
qWarning() << "Found application config, but could not open it";
|
||||
|
|
|
@ -50,6 +50,8 @@
|
|||
repeats: YES];
|
||||
NSError *error = nil;
|
||||
NSFileManager *fileManager = [NSFileManager defaultManager];
|
||||
Launcher* sharedLauncher = [Launcher sharedLauncher];
|
||||
NSString* appPath = [sharedLauncher getAppPath];
|
||||
NSString *destinationFileName = downloadTask.originalRequest.URL.lastPathComponent;
|
||||
NSString* finalFilePath = [[[Launcher sharedLauncher] getAppPath] stringByAppendingPathComponent:destinationFileName];
|
||||
NSURL *destinationURL = [NSURL URLWithString: [finalFilePath stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLFragmentAllowedCharacterSet]] relativeToURL: [NSURL URLWithString:@"file://"]];
|
||||
|
@ -59,7 +61,12 @@
|
|||
}
|
||||
[fileManager moveItemAtURL:location toURL:destinationURL error:&error];
|
||||
|
||||
Launcher* sharedLauncher = [Launcher sharedLauncher];
|
||||
NSURL *oldInterfaceURL = [NSURL URLWithString: [[appPath stringByAppendingString:@"interface.app"] stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLFragmentAllowedCharacterSet]] relativeToURL: [NSURL URLWithString:@"file://"]];
|
||||
|
||||
if([fileManager fileExistsAtPath:[oldInterfaceURL path]])
|
||||
{
|
||||
[fileManager removeItemAtURL:oldInterfaceURL error:nil];
|
||||
}
|
||||
|
||||
if (error) {
|
||||
NSLog(@"Download Interface: failed to move file to destination -> error: %@", error);
|
||||
|
@ -68,7 +75,6 @@
|
|||
return;
|
||||
}
|
||||
[sharedLauncher setDownloadFilename:destinationFileName];
|
||||
NSString* appPath = [sharedLauncher getAppPath];
|
||||
NSString* downloadFileName = [sharedLauncher getDownloadFilename];
|
||||
|
||||
NSLog(@"extract interface zip");
|
||||
|
|
|
@ -14,19 +14,32 @@
|
|||
return sharedSettings;
|
||||
}
|
||||
|
||||
- (NSString*) getOldFilePath {
|
||||
Launcher* sharedLauncher = [Launcher sharedLauncher];
|
||||
NSString* appPath = [sharedLauncher getAppPath];
|
||||
NSString* filePath = [appPath stringByAppendingString:@"interface.app/Contents/MacOS/"];
|
||||
return filePath;
|
||||
}
|
||||
|
||||
- (NSString*) getFilePath
|
||||
{
|
||||
Launcher* sharedLauncher = [Launcher sharedLauncher];
|
||||
NSString* appPath = [sharedLauncher getAppPath];
|
||||
NSString* filePath = [appPath stringByAppendingString:@"interface.app/Contents/MacOS/"];
|
||||
|
||||
return filePath;
|
||||
return appPath;
|
||||
}
|
||||
|
||||
- (void) readDataFromJsonFile
|
||||
{
|
||||
NSString* oldPath = [self getOldFilePath];
|
||||
NSString* fileAtOldPath = [oldPath stringByAppendingString:@"config.json"];
|
||||
NSString* filePath = [self getFilePath];
|
||||
NSString* fileAtPath = [filePath stringByAppendingString:@"config.json"];
|
||||
|
||||
if ([[NSFileManager defaultManager] fileExistsAtPath:fileAtOldPath] && ![[NSFileManager defaultManager] fileExistsAtPath:fileAtPath]) {
|
||||
BOOL success = [[NSFileManager defaultManager] moveItemAtPath:fileAtOldPath toPath:fileAtPath error:nil];
|
||||
NSLog(@"move config to new location -> status: %@", success ? @"SUCCESS" : @"FAILED");
|
||||
}
|
||||
|
||||
if ([[NSFileManager defaultManager] fileExistsAtPath:fileAtPath]) {
|
||||
NSString* jsonString = [[NSString alloc] initWithData:[NSData dataWithContentsOfFile:fileAtPath] encoding:NSUTF8StringEncoding];
|
||||
NSError * err;
|
||||
|
@ -34,7 +47,6 @@
|
|||
NSDictionary * json;
|
||||
if (data != nil) {
|
||||
json = (NSDictionary *)[NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableContainers error:&err];
|
||||
|
||||
self.loggedIn = [[json valueForKey:@"loggedIn"] boolValue];
|
||||
self.build = [[json valueForKey:@"build_version"] integerValue];
|
||||
self.launcher = [json valueForKey:@"luancherPath"];
|
||||
|
@ -64,18 +76,18 @@
|
|||
NSError * err;
|
||||
NSData * jsonData = [NSJSONSerialization dataWithJSONObject:json options:0 error:&err];
|
||||
NSString * jsonString = [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding];
|
||||
|
||||
|
||||
NSString* filePath = [self getFilePath];
|
||||
NSString* fileAtPath = [filePath stringByAppendingString:@"config.json"];
|
||||
|
||||
|
||||
if (![[NSFileManager defaultManager] fileExistsAtPath:fileAtPath]) {
|
||||
NSError * error = nil;
|
||||
[[NSFileManager defaultManager] createDirectoryAtPath:filePath withIntermediateDirectories:FALSE attributes:nil error:&error];
|
||||
[[NSFileManager defaultManager] createFileAtPath:fileAtPath contents:nil attributes:nil];
|
||||
|
||||
|
||||
}
|
||||
[[jsonString dataUsingEncoding:NSUTF8StringEncoding] writeToFile:fileAtPath atomically:NO];
|
||||
|
||||
|
||||
}
|
||||
|
||||
-(id)init
|
||||
|
|
Loading…
Reference in a new issue