on xenial help sign in
Updated scope tool to create proper config files after recent libunity-scopes-api changes.
commit53ded409338a6174fac181bf91636938fbb5a909 authorMichal Hruby <michal.mhr@gmail.com> dateFri 16 May 2014, 18:44 (12 years ago) parent87a275121a944d
1 file changed+33−26
tools/registry-tracker.cpp+33−26
tools/registry-tracker.cpp+33−26
@@ -49,58 +49,66 @@ RegistryTracker::~RegistryTracker()
4949"Registry.Identity = Registry\n" \
5050"Registry.ConfigFile = %1\n" \
5151"Default.Middleware = Zmq\n" \
52−"Zmq.ConfigFile = %2\n"
52+"Zmq.ConfigFile = %2\n" \
53+"Smartscopes.Registry.Identity = %3\n"
5354
5455#define REGISTRY_CONFIG \
5556"[Registry]\n" \
5657"Middleware = Zmq\n" \
57−"Zmq.Endpoint = ipc://%1/Registry\n" \
58−"Zmq.EndpointDir = %2\n" \
59−"Zmq.ConfigFile = %3\n" \
60−"Scope.InstallDir = %4\n" \
61−"Scoperunner.Path = %5\n" \
62−"%6"
58+"Zmq.ConfigFile = %1\n" \
59+"Scope.InstallDir = %2\n" \
60+"Scoperunner.Path = %3\n"
6361
6462#define MW_CONFIG \
6563"[Zmq]\n" \
66−"EndpointDir.Public = %1\n" \
67−"EndpointDir.Private = %2\n"
64+"EndpointDir = %1\n"
6865
6966void RegistryTracker::runRegistry()
7067{
7168 QDir tmp(QDir::temp());
72− m_runtime_config.setFileTemplate(tmp.filePath("Runtime.ini.XXXXXX"));
73− m_registry_config.setFileTemplate(tmp.filePath("Registry.ini.XXXXXX"));
74− m_mw_config.setFileTemplate(tmp.filePath("Zmq.ini.XXXXXX"));
69+ m_runtime_config.setFileTemplate(tmp.filePath("Runtime.XXXXXX.ini"));
70+ m_registry_config.setFileTemplate(tmp.filePath("Registry.XXXXXX.ini"));
71+ m_mw_config.setFileTemplate(tmp.filePath("Zmq.XXXXXX.ini"));
7572
7673 if (!m_runtime_config.open() || !m_registry_config.open() || !m_mw_config.open() || !m_endpoints_dir.isValid()) {
7774 qWarning("Unable to open temporary files!");
7875 return;
7976 }
8077
81− QString scopesLibdir;
78+ QString scopeInstallDir;
79+ QString scopeRegistryBin;
80+ QString scopeRunnerBin;
8281 {
8382 QProcess pkg_config;
83+ QByteArray output;
8484 QStringList arguments;
85− arguments << "--variable=libdir";
85+ arguments << "--variable=scopesdir";
8686 arguments << "libunity-scopes";
8787 pkg_config.start("pkg-config", arguments);
8888 pkg_config.waitForFinished();
89− QByteArray libdir = pkg_config.readAllStandardOutput();
90− scopesLibdir = QDir(QString::fromLocal8Bit(libdir)).path().trimmed();
89+ output = pkg_config.readAllStandardOutput();
90+ scopeInstallDir = QDir(QString::fromLocal8Bit(output)).path().trimmed();
91+
92+ arguments[0] = "--variable=scoperegistry_bin";
93+ pkg_config.start("pkg-config", arguments);
94+ pkg_config.waitForFinished();
95+ output = pkg_config.readAllStandardOutput();
96+ scopeRegistryBin = QString::fromLocal8Bit(output).trimmed();
97+
98+ arguments[0] = "--variable=scoperunner_bin";
99+ pkg_config.start("pkg-config", arguments);
100+ pkg_config.waitForFinished();
101+ output = pkg_config.readAllStandardOutput();
102+ scopeRunnerBin = QString::fromLocal8Bit(output).trimmed();
91103 }
92104
93− if (scopesLibdir.size() == 0) {
105+ if (scopeInstallDir.isEmpty() || scopeRegistryBin.isEmpty() || scopeRunnerBin.isEmpty()) {
94106 qWarning("Unable to find libunity-scopes package config file");
95107 return;
96108 }
97109
98− QString scopeRunnerPath = QDir(scopesLibdir).filePath("scoperunner/scoperunner");
99−
100− QString runtime_ini = QString(RUNTIME_CONFIG).arg(m_registry_config.fileName()).arg(m_mw_config.fileName());
101110 // FIXME: keep in sync with the SSRegistry config
102− QString serverRegistryConfig(m_serverScopes ? "SS.Registry.Identity = SSRegistry\nSS.Registry.Endpoint = ipc:///tmp/SSRegistry" : "");
103− QString scopeInstallDir(scopesLibdir + "/unity-scopes");
111+ QString runtime_ini = QString(RUNTIME_CONFIG).arg(m_registry_config.fileName()).arg(m_mw_config.fileName()).arg(m_serverScopes ? "SSRegistry" : "");
104112 if (!m_systemScopes) {
105113 m_scopeInstallDir.reset(new QTemporaryDir(tmp.filePath("scopes.XXXXXX")));
106114 if (!m_scopeInstallDir->isValid()) {
@@ -108,8 +116,8 @@ void RegistryTracker::runRegistry()
108116 }
109117 scopeInstallDir = m_scopeInstallDir->path();
110118 }
111− QString registry_ini = QString(REGISTRY_CONFIG).arg(m_endpoints_dir.path()).arg(m_endpoints_dir.path()).arg(m_mw_config.fileName()).arg(scopeInstallDir).arg(scopeRunnerPath).arg(serverRegistryConfig);
112− QString mw_ini = QString(MW_CONFIG).arg(m_endpoints_dir.path()).arg(m_endpoints_dir.path());
119+ QString registry_ini = QString(REGISTRY_CONFIG).arg(m_mw_config.fileName()).arg(scopeInstallDir).arg(scopeRunnerBin);
120+ QString mw_ini = QString(MW_CONFIG).arg(m_endpoints_dir.path());
113121
114122 m_runtime_config.write(runtime_ini.toUtf8());
115123 m_registry_config.write(registry_ini.toUtf8());
@@ -121,11 +129,10 @@ void RegistryTracker::runRegistry()
121129
122130 qputenv("UNITY_SCOPES_RUNTIME_PATH", m_runtime_config.fileName().toLocal8Bit());
123131
124− QString registryBin(QDir(scopesLibdir).filePath("scoperegistry/scoperegistry"));
125132 QStringList arguments;
126133 arguments << m_runtime_config.fileName();
127134 arguments << m_scopes;
128135
129136 m_registry.setProcessChannelMode(QProcess::ForwardedChannels);
130− m_registry.start(registryBin, arguments);
137+ m_registry.start(scopeRegistryBin, arguments);
131138}