16
16
* Authored by: Alan Griffiths <alan@octopull.co.uk>
19
#include "server_configuration.h"
21
#include "mir/abnormal_exit.h"
22
#include "mir/frontend/connector.h"
23
#include "mir/options/option.h"
24
#include "mir/report_exception.h"
19
25
#include "mir/run_mir.h"
20
#include "mir/report_exception.h"
21
#include "server_configuration.h"
23
27
#include <iostream>
31
char const* const launch_child_opt = "launch-client";
33
struct ServerConfiguration : mir::examples::ServerConfiguration
35
ServerConfiguration(int argc, char const** argv) :
36
mir::examples::ServerConfiguration(argc, argv)
38
namespace po = boost::program_options;
41
(launch_child_opt, po::value<std::string>(), "system() command to launch client");
46
if (the_options()->is_set(launch_child_opt))
48
char buffer[128] = {0};
49
sprintf(buffer, "fd://%d", the_connector()->client_socket_fd());
50
setenv("MIR_SOCKET", buffer, 1);
51
auto ignore = system((the_options()->get(launch_child_opt, "") + "&").c_str());
56
using mir::examples::ServerConfiguration::the_options;
25
60
int main(int argc, char const* argv[])
28
mir::examples::ServerConfiguration config(argc, argv);
63
ServerConfiguration config(argc, argv);
30
run_mir(config, [](mir::DisplayServer&) {/* empty init */});
65
run_mir(config, [&](mir::DisplayServer&){ config.launch_client(); });