int filter_main(int argc, char* argv[]){ FLT_OPTS mopts=getFilterOptions(argc,argv); int flag_a = detect_filetype(mopts.r1); if(flag_a & FILE_NONE || flag_a & FILE_UNKN || flag_a & FILE_FASTA) return 1; mopts.qualityCutoff += flag_a & FILE_PHRED33 ? BASE_SANGER : BASE_SOLEXA; mopts.meanQuality += flag_a & FILE_PHRED33 ? BASE_SANGER : BASE_SOLEXA; if(mkdir_report(mopts.output) != 0) return 1; if(strcmp(mopts.r2,"none") != 0){ int flag_b = detect_filetype(mopts.r2); if(flag_a != flag_b){ fprintf(stderr,"This two files:%s,%s are not same type\n",mopts.r1,mopts.r2); return 1; } if( flag_a & FILE_FASTQ ) { if( flag_a & FILE_BZ2 ) #ifdef HAVE_BZLIB filter_pe_fastq_bz2(&mopts); #else error_msg("Do not support bzip2 file"); #endif else filter_pe_fastq(&mopts); }else{
GretlFileType gretl_detect_filetype (const char *fname) { if (fname == NULL) { return GRETL_UNRECOGNIZED; } return detect_filetype((char *) fname, OPT_NONE); }
static int cli_open_append (CMD *cmd, DATASET *dset, MODEL *model, PRN *prn) { gretlopt opt = cmd->opt; PRN *vprn = prn; char newfile[MAXLEN] = {0}; char response[3]; int http = 0, dbdata = 0; int ftype; int err = 0; if (opt & OPT_K) { /* --frompkg=whatever */ err = get_package_data_path(cmd->param, newfile); if (err) { errmsg(err, prn); return err; } } else { err = cli_try_http(cmd->param, newfile, &http); if (err) { errmsg(err, prn); return err; } if (!http && !(opt & OPT_O)) { /* not using http or ODBC */ err = get_full_filename(cmd->param, newfile, (opt & OPT_W)? OPT_W : OPT_NONE); if (err) { errmsg(err, prn); return err; } } } if (opt & OPT_W) { ftype = GRETL_NATIVE_DB_WWW; } else if (opt & OPT_O) { ftype = GRETL_ODBC; } else { ftype = detect_filetype(newfile, OPT_P); } dbdata = (ftype == GRETL_NATIVE_DB || ftype == GRETL_NATIVE_DB_WWW || ftype == GRETL_RATS_DB || ftype == GRETL_PCGIVE_DB || ftype == GRETL_ODBC); if (data_status && !batch && !dbdata && cmd->ci != APPEND && strcmp(newfile, datafile)) { fprintf(stderr, _("Opening a new data file closes the " "present one. Proceed? (y/n) ")); if (fgets(response, sizeof response, stdin) != NULL && *response != 'y' && *response != 'Y') { pprintf(prn, _("OK, staying with current data set\n")); return 0; } } if (!dbdata && cmd->ci != APPEND) { cli_clear_data(cmd, dset, model); } if (opt & OPT_Q) { /* --quiet, but in case we hit any problems below... */ vprn = gretl_print_new(GRETL_PRINT_BUFFER, NULL); } if (ftype == GRETL_XML_DATA || ftype == GRETL_BINARY_DATA) { err = gretl_read_gdt(newfile, dset, opt, vprn); } else if (ftype == GRETL_CSV) { err = import_csv(newfile, dset, opt, vprn); } else if (SPREADSHEET_IMPORT(ftype)) { err = import_spreadsheet(newfile, ftype, cmd->list, cmd->parm2, dset, opt, vprn); } else if (OTHER_IMPORT(ftype)) { err = import_other(newfile, ftype, dset, opt, vprn); } else if (ftype == GRETL_ODBC) { err = set_odbc_dsn(cmd->param, vprn); } else if (dbdata) { err = set_db_name(newfile, ftype, vprn); } else { err = gretl_get_data(newfile, dset, opt, vprn); } if (vprn != prn) { if (err) { /* The user asked for --quiet operation, but something went wrong so let's print any info we got on vprn. */ const char *buf = gretl_print_get_buffer(vprn); if (buf != NULL && *buf != '\0') { pputs(prn, buf); } } else { /* print minimal success message */ pprintf(prn, _("Read datafile %s\n"), newfile); } gretl_print_destroy(vprn); } if (err) { errmsg(err, prn); return err; } if (!dbdata && !http && cmd->ci != APPEND) { strncpy(datafile, newfile, MAXLEN - 1); } data_status = 1; if (dset->v > 0 && !dbdata && !(opt & OPT_Q)) { varlist(dset, prn); } if (http) { remove(newfile); } return err; }
static void handle_datafile (char *filearg, char *runfile, DATASET *dset, PRN *prn, PRN *cmdprn) { char given_file[MAXLEN]; int load_datafile = 1; int ftype, err = 0; strcpy(given_file, filearg); strcpy(datafile, filearg); ftype = detect_filetype(datafile, OPT_P); switch (ftype) { case GRETL_UNRECOGNIZED: case GRETL_NATIVE_DB: case GRETL_RATS_DB: exit(EXIT_FAILURE); break; case GRETL_XML_DATA: case GRETL_BINARY_DATA: err = gretl_read_gdt(datafile, dset, OPT_NONE, prn); break; case GRETL_CSV: err = import_csv(datafile, dset, OPT_NONE, prn); break; case GRETL_XLS: case GRETL_GNUMERIC: case GRETL_ODS: err = import_spreadsheet(datafile, ftype, NULL, NULL, dset, OPT_NONE, prn); break; case GRETL_DTA: case GRETL_SAV: case GRETL_SAS: case GRETL_JMULTI: case GRETL_OCTAVE: case GRETL_WF1: err = import_other(datafile, ftype, dset, OPT_NONE, prn); break; case GRETL_SCRIPT: runit = 1; strcpy(runfile, datafile); memset(datafile, 0, sizeof datafile); load_datafile = 0; break; default: break; } if (load_datafile) { if (err) { errmsg(err, prn); if (err == E_FOPEN) { show_paths(); } exit(EXIT_FAILURE); } data_status = 1; if (!batch) { pprintf(cmdprn, "open %s\n", given_file); } } }