FreeCalypso > hg > freecalypso-sw
view rvinterf/etmsync/fsiomain.c @ 863:78c894c7c471
top README: project status update
author | Space Falcon <falcon@ivan.Harhan.ORG> |
---|---|
date | Sun, 10 May 2015 05:28:05 +0000 |
parents | 792f164b63a6 |
children | 7b805007dcfc |
line wrap: on
line source
/* * This module contains the main() function for fc-fsio. */ #include <stdio.h> #include <stdlib.h> #include <unistd.h> #include "exitcodes.h" char *socket_pathname = "/tmp/rvinterf_socket"; int sock; extern char *rvinterf_ttyport, *rvinterf_Bopt, *rvinterf_lopt, *rvinterf_wopt; main(argc, argv) char **argv; { extern int optind; extern char *optarg; int c, sopt = 0; char command[512]; while ((c = getopt(argc, argv, "B:l:p:s:w:")) != EOF) switch (c) { case 'B': rvinterf_Bopt = optarg; continue; case 'l': rvinterf_lopt = optarg; continue; case 'p': rvinterf_ttyport = optarg; continue; case 's': socket_pathname = optarg; sopt++; continue; case 'w': rvinterf_wopt = optarg; continue; case '?': default: usage: fprintf(stderr, "usage: %s [options] [command]\n", argv[0]); exit(ERROR_USAGE); } if (rvinterf_ttyport) { if (sopt) { fprintf(stderr, "%s error: -p and -s options are mutually exclusive\n", argv[0]); exit(ERROR_USAGE); } launch_rvinterf(); } else { if (rvinterf_Bopt || rvinterf_lopt || rvinterf_wopt) { fprintf(stderr, "%s error: -B, -l and -w options are meaningful only when launching rvinterf\n", argv[0]); exit(ERROR_USAGE); } connect_local_socket(); } setlinebuf(stdout); if (argv[optind]) return dispatch_ready_argv(argc - optind, argv + optind); for (;;) { if (isatty(0)) { rx_control(0); fputs("fsio> ", stdout); fflush(stdout); } if (!fgets(command, sizeof command, stdin)) exit(0); parse_and_dispatch_cmd(command, 0); } }