struct cmdline * cmdline_term_new(cmdline_parse_ctx_t *ctx, const char *prompt, char *ptyname) { int fd; struct cmdline *cl; fd = open(ptyname, O_RDWR); if (fd > 0) { cl = cmdline_new(ctx, prompt, fd, fd); #ifdef RTE_EXEC_ENV_LINUXAPP { struct termios oldterm, term; tcgetattr(fd, &oldterm); memcpy(&term, &oldterm, sizeof(term)); // term.c_lflag &= ~(ICANON | ECHO | ISIG); // term.c_lflag &= ~(ICANON | ECHO); /* To have GDB ctrl-c stop */ // tcsetattr(fd, TCSANOW, &term); if (cl) memcpy(&cl->oldterm, &oldterm, sizeof(term)); } #endif return cl; } else { return NULL; } }
struct cmdline * cmdline_file_new(cmdline_parse_ctx_t *ctx, const char *prompt, const char *path) { int fd; /* everything else is checked in cmdline_new() */ if (!path) return NULL; fd = open(path, O_RDONLY, 0); if (fd < 0) { dprintf("open() failed\n"); return NULL; } return cmdline_new(ctx, prompt, fd, -1); }
static cmdline_t local_cmdlineSetup(void) { cmdline_t cmdline; cmdline = cmdline_new(6, 6, "cubepm_dumpSelection"); (void)cmdline_addOpt(cmdline, "version", "This will output a version information.", false, CMDLINE_TYPE_NONE); (void)cmdline_addOpt(cmdline, "help", "This will print this help text.", false, CMDLINE_TYPE_NONE); (void)cmdline_addOpt(cmdline, "boxsize", "The boxsize in Mpc/h.", true, CMDLINE_TYPE_DOUBLE); (void)cmdline_addOpt(cmdline, "omega0", "Omega0", true, CMDLINE_TYPE_DOUBLE); (void)cmdline_addOpt(cmdline, "lambda0", "Lambda0", true, CMDLINE_TYPE_DOUBLE); (void)cmdline_addOpt(cmdline, "properUnits", "Converts from file units to Mpc/h and km/s.", false, CMDLINE_TYPE_NONE); (void)cmdline_addArg(cmdline, "The prefix of the filenames.", CMDLINE_TYPE_STRING); (void)cmdline_addArg(cmdline, "The stem of the filenames", CMDLINE_TYPE_STRING); (void)cmdline_addArg( cmdline, "The number of nodes (1D) used to write the files.", CMDLINE_TYPE_INT); (void)cmdline_addArg(cmdline, "The size of the grid.", CMDLINE_TYPE_INT); (void)cmdline_addArg(cmdline, "The number of particles to skip.", CMDLINE_TYPE_LONG); (void)cmdline_addArg(cmdline, "The number of particles to read.", CMDLINE_TYPE_LONG); return cmdline; } /* local_cmdlineSetup */
static cmdline_t local_cmdlineSetup(void) { cmdline_t cmdline; cmdline = cmdline_new(1, 2, localProgramName); (void)cmdline_addOpt(cmdline, "version", "This will output a version information.", false, CMDLINE_TYPE_NONE); (void)cmdline_addOpt(cmdline, "help", "This will print this help text.", false, CMDLINE_TYPE_NONE); (void)cmdline_addArg(cmdline, "The filename.", CMDLINE_TYPE_STRING); return cmdline; }
static cmdline_t local_cmdlineSetup(void) { cmdline_t cmdline; cmdline = cmdline_new(1, 3, localProgramName); (void)cmdline_addOpt(cmdline, "version", "This will output a version information.", false, CMDLINE_TYPE_NONE); (void)cmdline_addOpt(cmdline, "help", "This will print this help text.", false, CMDLINE_TYPE_NONE); (void)cmdline_addOpt(cmdline, "numFiles", "Gives the number of files in the file set.", true, CMDLINE_TYPE_INT); (void)cmdline_addArg(cmdline, "The name of the Gadget file.", CMDLINE_TYPE_STRING); return cmdline; }
int main(int argc, char* argv[]) { #ifdef SEQ_ALIGN_VERBOSE printf("VERBOSE: on\n"); #endif sw_set_default_scoring(); cmd = cmdline_new(argc, argv, &scoring, SEQ_ALIGN_SW_CMD); // Align! sw = smith_waterman_new(); result = alignment_create(256); if(cmd->seq1 != NULL) { // Align seq1 and seq2 align(cmd->seq1, cmd->seq2, NULL, NULL); } // Align from files size_t i, num_of_file_pairs = cmdline_get_num_of_file_pairs(cmd); for(i = 0; i < num_of_file_pairs; i++) { const char *file1 = cmdline_get_file1(cmd, i); const char *file2 = cmdline_get_file2(cmd, i); if(file1 != NULL && *file1 == '\0' && file2 == NULL) { wait_on_keystroke = 1; file1 = "-"; } align_from_file(file1, file2, &align_pair_from_file, !cmd->interactive); } // Free memory for storing alignment results smith_waterman_free(sw); alignment_free(result); cmdline_free(cmd); return EXIT_SUCCESS; }
struct cmdline * cmdline_stdin_new(cmdline_parse_ctx_t *ctx, const char *prompt) { struct cmdline *cl; #ifdef RTE_EXEC_ENV_LINUXAPP struct termios oldterm, term; tcgetattr(0, &oldterm); memcpy(&term, &oldterm, sizeof(term)); term.c_lflag &= ~(ICANON | ECHO | ISIG); tcsetattr(0, TCSANOW, &term); setbuf(stdin, NULL); #endif cl = cmdline_new(ctx, prompt, 0, 1); #ifdef RTE_EXEC_ENV_LINUXAPP if (cl) memcpy(&cl->oldterm, &oldterm, sizeof(term)); #endif return cl; }
struct cmdline * cmdline_stdin_new(cmdline_parse_ctx_t *ctx, const char *prompt) { struct cmdline *cl; struct termios oldterm, term; tcgetattr(0, &oldterm); memcpy(&term, &oldterm, sizeof(term)); #ifdef RTE_LIBRW_PIOT term.c_lflag &= ~(ICANON | ECHO); /* To have GDB ctrl-c stop */ #else term.c_lflag &= ~(ICANON | ECHO | ISIG); #endif tcsetattr(0, TCSANOW, &term); setbuf(stdin, NULL); cl = cmdline_new(ctx, prompt, 0, 1); if (cl) memcpy(&cl->oldterm, &oldterm, sizeof(term)); return cl; }
static cmdline_t local_cmdlineSetup(void) { cmdline_t cmdline; cmdline = cmdline_new(1, 3, THIS_PROGNAME); (void)cmdline_addOpt(cmdline, "version", "This will output a version information.", false, CMDLINE_TYPE_NONE); (void)cmdline_addOpt(cmdline, "help", "This will print this help text.", false, CMDLINE_TYPE_NONE); (void)cmdline_addOpt( cmdline, "sectionName", "The name of the section in the configuration file.", true, CMDLINE_TYPE_STRING); (void)cmdline_addArg(cmdline, "Gives the name of the configuration file.", CMDLINE_TYPE_STRING); return cmdline; }
static int pipeline_run(void *pipeline) { struct pipeline_master *p = (struct pipeline_master *) pipeline; int status; if (p->script_file_done == 0) { struct app_params *app = p->app; int fd = open(app->script_file, O_RDONLY); if (fd < 0) printf("Cannot open CLI script file \"%s\"\n", app->script_file); else { struct cmdline *file_cl; printf("Running CLI script file \"%s\" ...\n", app->script_file); file_cl = cmdline_new(p->cl->ctx, "", fd, 1); cmdline_interact(file_cl); close(fd); } p->script_file_done = 1; } status = cmdline_poll(p->cl); if (status < 0) rte_panic("CLI poll error (%" PRId32 ")\n", status); else if (status == RDLINE_EXITED) { cmdline_stdin_exit(p->cl); rte_exit(0, "Bye!\n"); } return 0; }