git-svn-id: svn://db.shs.com.ru/pip@247 12ceb7fc-bf1f-11e4-8940-5bc7170c53b5

This commit is contained in:
2016-09-01 12:21:01 +00:00
parent ab7b9e8941
commit e4d76ac5a7
10 changed files with 373 additions and 12 deletions

View File

@@ -255,6 +255,10 @@ public:
if (e.key == PIKbdListener::Esc) menuRequest();
//piCout << "key" << e.key;
}
EVENT_HANDLER1(void, messageFromApp, const PIByteArray & , m) {
if (m[0] == 'k') PIKbdListener::exiting = true;
}
Daemon & daemon_;
PIScreenTile * tmenu, * tinfo, * tfm, * tdaemon, * tpeer, * tpeerdiag;
TileList * peers_tl, * addrs_tl, * peermap_tl;
@@ -271,10 +275,11 @@ void usage() {
piCout << PICoutManipulators::Bold << "PIP System Daemon";
piCout << PICoutManipulators::Cyan << "Version" << PICoutManipulators::Bold << PIPVersion() << PICoutManipulators::NewLine;
piCout << PICoutManipulators::Green << PICoutManipulators::Bold << "Usage:" << PICoutManipulators::Default
<< "\"pisd [-hdf] [-n <name>]\"" << PICoutManipulators::NewLine;
<< "\"pisd [-hdfk] [-n <name>]\"" << PICoutManipulators::NewLine;
piCout << PICoutManipulators::Green << PICoutManipulators::Bold << "Details:";
piCout << "-h --help " << PICoutManipulators::Green << "- display this message and exit";
piCout << "-d --daemon " << PICoutManipulators::Green << "- start as daemon";
piCout << "-k --kill " << PICoutManipulators::Green << "- kill daemon";
piCout << "-f --force " << PICoutManipulators::Green << "- don`t check for another running instance";
piCout << "-n --name <name> " << PICoutManipulators::Green << "- set daemon name";
}
@@ -286,6 +291,7 @@ int main(int argc, char * argv[]) {
cli.addArgument("help");
cli.addArgument("daemon");
cli.addArgument("force");
cli.addArgument("kill");
cli.addArgument("1");
cli.addArgument("name", true);
if (cli.hasArgument("help")) {
@@ -294,10 +300,16 @@ int main(int argc, char * argv[]) {
}
PIString name = cli.argumentValue("name");
PISingleApplication * sapp = 0;
if (cli.hasArgument("1") && !cli.hasArgument("force")) {
if ((cli.hasArgument("1") && !cli.hasArgument("force")) || cli.hasArgument("kill")) {
sapp = new PISingleApplication("pisd");
if (!sapp->isFirst()) {
piCout << "Another pisd is running, exit";
if (cli.hasArgument("1")) {
if (!sapp->isFirst()) {
piCout << "Another pisd is running, exit";
return 0;
}
}
if (cli.hasArgument("kill")) {
sapp->sendMessage(PIByteArray("k", 1));
return 0;
}
}
@@ -320,6 +332,7 @@ int main(int argc, char * argv[]) {
if (!name.isEmpty())
daemon->changeName(pisd_prefix + name);
MainMenu * menu = new MainMenu(*daemon);
if (sapp) CONNECTU(sapp, messageReceived, menu, messageFromApp)
screen->start();
screen->waitForFinish();
delete menu;