comparison simtool/dispatch.c @ 123:b391204d3cd5

fc-simtool: add scripting facility in the form of exec command
author Mychaela Falconia <falcon@freecalypso.org>
date Thu, 28 Jan 2021 18:42:24 +0000
parents f18704e91393
children 6c4567dd8946
comparison
equal deleted inserted replaced
122:f18704e91393 123:b391204d3cd5
13 #include "globals.h" 13 #include "globals.h"
14 14
15 extern int cmd_change_chv(); 15 extern int cmd_change_chv();
16 extern int cmd_disable_chv(); 16 extern int cmd_disable_chv();
17 extern int cmd_enable_chv(); 17 extern int cmd_enable_chv();
18 extern int cmd_exec();
18 extern int cmd_fix_sysmo_msisdn(); 19 extern int cmd_fix_sysmo_msisdn();
19 extern int cmd_iccid(); 20 extern int cmd_iccid();
20 extern int cmd_imsi(); 21 extern int cmd_imsi();
21 extern int cmd_pb_dump(); 22 extern int cmd_pb_dump();
22 extern int cmd_pb_dump_rec(); 23 extern int cmd_pb_dump_rec();
62 {"change-pin2", 2, 2, cmd_change_chv}, 63 {"change-pin2", 2, 2, cmd_change_chv},
63 {"disable-chv", 1, 1, cmd_disable_chv}, 64 {"disable-chv", 1, 1, cmd_disable_chv},
64 {"disable-pin", 1, 1, cmd_disable_chv}, 65 {"disable-pin", 1, 1, cmd_disable_chv},
65 {"enable-chv", 1, 1, cmd_enable_chv}, 66 {"enable-chv", 1, 1, cmd_enable_chv},
66 {"enable-pin", 1, 1, cmd_enable_chv}, 67 {"enable-pin", 1, 1, cmd_enable_chv},
68 {"exec", 1, 1, cmd_exec},
67 {"exit", 0, 0, cmd_exit}, 69 {"exit", 0, 0, cmd_exit},
68 {"fix-sysmo-msisdn", 0, 0, cmd_fix_sysmo_msisdn}, 70 {"fix-sysmo-msisdn", 0, 0, cmd_fix_sysmo_msisdn},
69 {"iccid", 0, 0, cmd_iccid}, 71 {"iccid", 0, 0, cmd_iccid},
70 {"imsi", 0, 0, cmd_imsi}, 72 {"imsi", 0, 0, cmd_imsi},
71 {"pb-dump", 1, 2, cmd_pb_dump}, 73 {"pb-dump", 1, 2, cmd_pb_dump},
99 {"verify-pin1", 1, 1, cmd_verify_chv}, 101 {"verify-pin1", 1, 1, cmd_verify_chv},
100 {"verify-pin2", 1, 1, cmd_verify_chv}, 102 {"verify-pin2", 1, 1, cmd_verify_chv},
101 {0, 0, 0, 0} 103 {0, 0, 0, 0}
102 }; 104 };
103 105
104 simtool_dispatch_cmd(cmd) 106 simtool_dispatch_cmd(cmd, is_script)
105 char *cmd; 107 char *cmd;
106 { 108 {
107 char *argv[10]; 109 char *argv[10];
108 char *cp, **ap; 110 char *cp, **ap;
109 struct cmdtab *tp; 111 struct cmdtab *tp;
110 112
111 for (cp = cmd; isspace(*cp); cp++) 113 for (cp = cmd; isspace(*cp); cp++)
112 ; 114 ;
113 if (!*cp || *cp == '#') 115 if (!*cp || *cp == '#')
114 return(0); 116 return(0);
117 if (is_script)
118 printf("Script command: %s\n", cp);
115 argv[0] = cp; 119 argv[0] = cp;
116 while (*cp && !isspace(*cp)) 120 while (*cp && !isspace(*cp))
117 cp++; 121 cp++;
118 if (*cp) 122 if (*cp)
119 *cp++ = '\0'; 123 *cp++ = '\0';