/* Command line tool to control trli-syslog */ #include #include #include #include #include #include #include "fdpass.h" using namespace std; #include "proto/trli_syslog_control.protoch" int main (int argc, char *argv[]) { glocal int ret = -1; glocal const char *control = "/var/run/blackhole/trli-syslog.sock"; glocal.ret = (argc,argv); setproginfo ("trli-syslog-control",VERSION ,"Command line tool to control trli-mon\n" "\n" "\tdebug 0/1\n" "\tdebugfile filename\n" "\tlogs\n" "\tquit\n" "\treseterrors\n" "\tstatus\n" "\ttail\n" ); setarg ('p',"control","Unix socket to reach trli-syslog",glocal.control,false); glocal 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); glocal.ret = 0; }else if (strcmp(argv[0],"logs")==0 && argc==1){ glocal bool done = false; glocal unsigned offset = 0; while (!glocal.done){ (con,glocal.offset,10); for (auto x:lines) printf ("%s\n",x); glocal.ret = 0; if (glocal.offset + 10 < nblines){ glocal.offset += 10; }else{ glocal.done = true; } } }else if (strcmp(argv[0],"tail")==0 && argc==1){ (con); char date[20]; fdpass_asctime (lastmsg,date); printf ("nblines=%u lastmsg=%s\n",nblines,date); for (auto x:lines) printf ("%s\n",x); glocal.ret = 0; }else if (strcmp(argv[0],"quit")==0){ (con); glocal.ret = 0; }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],"reseterrors")==0 && argc==1){ (con); glocal.ret = 0; }else if (strcmp(argv[0],"clearlogs")==0 && argc==1){ (con); glocal.ret = 0; }else{ tlmp_error ("Invalid command: %s\n",argv[0]); usage(); } return glocal.ret; return glocal.ret; }