FreeCalypso > hg > fc-sim-tools
comparison simtool/main.c @ 77:3fe1954f5dec
fc-simtool batch stdin mode implemented
| author | Mychaela Falconia <falcon@freecalypso.org> |
|---|---|
| date | Fri, 09 Apr 2021 02:46:01 +0000 |
| parents | e2ef4b8e4136 |
| children |
comparison
equal
deleted
inserted
replaced
| 76:526193acfb3f | 77:3fe1954f5dec |
|---|---|
| 9 main(argc, argv) | 9 main(argc, argv) |
| 10 char **argv; | 10 char **argv; |
| 11 { | 11 { |
| 12 extern int optind; | 12 extern int optind; |
| 13 char command[512]; | 13 char command[512]; |
| 14 int rc; | 14 int rc, batch_stdin; |
| 15 | 15 |
| 16 parse_global_options(argc, argv); | 16 parse_global_options(argc, argv); |
| 17 launch_backend(); | 17 launch_backend(); |
| 18 collect_backend_init_strings(); | 18 collect_backend_init_strings(); |
| 19 if (argc > optind) { | 19 if (argc > optind) { |
| 27 printf("Card reader name: %s\n", be_reader_name); | 27 printf("Card reader name: %s\n", be_reader_name); |
| 28 if (be_atr_string[0]) | 28 if (be_atr_string[0]) |
| 29 printf("ATR: %s\n", be_atr_string); | 29 printf("ATR: %s\n", be_atr_string); |
| 30 if (be_extra_info[0]) | 30 if (be_extra_info[0]) |
| 31 puts(be_extra_info); | 31 puts(be_extra_info); |
| 32 batch_stdin = !isatty(0); | |
| 32 for (;;) { | 33 for (;;) { |
| 33 if (isatty(0)) { | 34 if (!batch_stdin) { |
| 34 fputs("simtool> ", stdout); | 35 fputs("simtool> ", stdout); |
| 35 fflush(stdout); | 36 fflush(stdout); |
| 36 } | 37 } |
| 37 if (!fgets(command, sizeof command, stdin)) | 38 if (!fgets(command, sizeof command, stdin)) |
| 38 good_exit(); | 39 good_exit(); |
| 39 simtool_dispatch_cmd(command, 0); | 40 if (batch_stdin) |
| 41 printf("Stdin command: %s", command); | |
| 42 rc = simtool_dispatch_cmd(command, 0); | |
| 43 if (batch_stdin && rc) | |
| 44 exit(1); | |
| 40 } | 45 } |
| 41 } | 46 } |
