/* This file is part of Bolixo. Bolixo is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. Bolixo is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with Bolixo. If not, see . */ /* Command line tool to control documentd */ #include #include #include #include #include #include #include #include "bolixo.m" using namespace std; #include "proto/documentd_control.protoch" int main (int argc, char *argv[]) { glocal int ret = -1; glocal const char *control = "/var/run/documentd.sock"; glocal.ret = (argc,argv,"bolixo"); setproginfo ("documentd-control",VERSION ,MSG_U(I_DOCUMENTD_CONTROL ,"Command line tool to control documentd\n" "\n" "\tdebug 0/1\n" "\tdebugfile filename\n" "\tinstrument 0|1\n" "\tquit\n" "\tstatus\n" )); setarg ('p',"control","Unix socket to reach documentd",glocal.control,false); int ret = -1; CONNECT_INFO con; con.port = glocal.control; if (strcmp(argv[0],"status")==0 && argc==1){ (con); for (auto x:lines) printf ("%s\n",x); }else if (strcmp(argv[0],"quit")==0 && argc==1){ (con); }else if (strcmp(argv[0],"debug")==0 && argc==2){ (con,atoi(argv[1])); }else if (strcmp(argv[0],"debugfile")==0 && argc==2){ (con,argv[1]); }else if (strcmp(argv[0],"load")==0 && argc == 2){ (con,argv[1]); printf ("success=%d msg=%s\n",success,msg); }else if (strcmp(argv[0],"save")==0 && argc == 2){ (con,argv[1]); printf ("success=%d msg=%s\n",success,msg); }else if (strcmp(argv[0],"startgame")==0 && argc == 3){ (con,argv[1],argv[2]); printf ("success=%d msg=%s\n",success,msg); }else if (strcmp(argv[0],"endgame")==0 && argc == 2){ (con,argv[1]); printf ("success=%d msg=%s\n",success,msg); }else if (strcmp(argv[0],"resetgame")==0 && argc == 2){ (con,argv[1]); printf ("success=%d msg=%s\n",success,msg); }else if (strcmp(argv[0],"playstep")==0 && argc > 2){ vector args; for (int i=2; i(con,argv[1],args); if (!success){ printf ("success=%d msg=%s\n",success,msg); }else{ for (auto &r:res){ if (strcmp(r.var,"content")==0){ printf ("Content:\n%s\n",r.val); }else{ printf ("var=%s val=%s\n",r.var,r.val); } } } }else if (strcmp(argv[0],"instrument")==0 && argc==2){ (con,atoi(argv[1])); }else{ tlmp_error ("Invalid command: %s\n",argv[0]); usage(); } return ret; return glocal.ret; }