int cmd_interactive(struct arguments *args) { int rc; struct db *db; char pass[MAX_PASS_LENGTH + 1]; rc = -1; db = NULL; if (!args->dbfile) { fprintf(stderr, "missing db path\n"); goto out; } if (get_pass(PASS_PROMPT, pass, MAX_PASS_LENGTH + 1, stdin)) { fprintf(stderr, "%s\n", GET_PASS_FAIL); goto out; } if (!(db = pwsdb_open(pass, args->dbfile))) { fprintf(stderr, "couldn't open db\n"); goto out; } rc = pwcurs_start(args->dbfile, pass, db); print_db(db); out: destroy_db(db); free(db); return rc; }
int cmd_list(struct arguments *args) { int rc; struct db *db; char pass[MAX_PASS_LENGTH + 1]; rc = -1; db = NULL; if (!args->dbfile) { fprintf(stderr, "%s\n", NO_DB_FILE); goto out; } if (get_pass(PASS_PROMPT, pass, MAX_PASS_LENGTH + 1, stdin)) { fprintf(stderr, "%s\n", GET_PASS_FAIL); goto out; } if (!(db = pwsdb_open(pass, args->dbfile))) { fprintf(stderr, "bad list\n"); goto out; } print_db(db); rc = 0; out: destroy_db(db); return rc; }
/* heavily outdated */ int main(int argc, char **argv) { wchar_t *database = mbstowcs_alloc("test_file"); /* if (database == NULL) memerrmsg("main in dbio.c"); */ /* REMEMBER: set the INDEXDIR environment variable. */ setProgramName(*argv); findUtf8OrDie(); set_dbase_dir(); /* Testing with book.idx and db, renamed, then edited sending output to stdout, so I can compare! */ fprintf(stderr, "Reading indexfile\n"); read_idxfile(database); fprintf(stderr, "Reading databasefile\n"); read_database(database); print_db(database, NULL); dbmodified = 1; save_db(); release_idx(); release_db(); return 0; }
int main (int argc, char *argv[]) { if (argc < 2) { aiuto (); return (0); } int i; int azione[argc]; char opzione[argc][255]; int azioni = -1; int opzioni = -1; int opzioni_confronto = 0; for (i = 1; i < argc; i++) { if (strcmp (argv[i], "-u") == 0 || strcmp (argv[i], "--update") == 0) { azioni++; azione[azioni] = AGGIORNA; } else if (strcmp (argv[i], "-l") == 0 || strcmp (argv[i], "--list") == 0) { azioni++; azione[azioni] = LSPORTS; } else if (strcmp (argv[i], "-d") == 0 || strcmp (argv[i], "--diff") == 0) { azioni++; azione[azioni] = DIFFERENZE; } else if (strcmp (argv[i], "-p") == 0 || strcmp (argv[i], "--updated") == 0) { azioni++; azione[azioni] = AGGIORNATI; } else if (strcmp (argv[i], "-v") == 0 || strcmp (argv[i], "--version") == 0) { azioni++; azione[azioni] = VERSIONE; } else if (strcmp (argv[i], "-h") == 0 || strcmp (argv[i], "--help") == 0) { azioni++; azione[azioni] = AIUTO; } else if (strcmp (argv[i], "--no-favorite-repo") == 0) { opzioni_confronto += NO_REPO; } else if (strcmp (argv[i], "--no-favorite-version") == 0) { opzioni_confronto += NO_VERSION; } else { opzioni++; strcpy (opzione[opzioni], argv[i]); } } for (i = 0; i <= azioni; i++) { switch (azione[i]) { case AGGIORNA: if (opzioni < 0) { aggiorna_ports (); } else { int j; for (j = 0; j <= opzioni; j++) { aggiorna_collezione (opzione[j]); } } break; case LSPORTS: print_db (lsports ()); break; case DIFFERENZE: confronta (lspacchetti (), lsports (), DIFFERENZE, opzioni_confronto); break; case AGGIORNATI: confronta (lspacchetti (), lsports (), AGGIORNATI, opzioni_confronto); break; case VERSIONE: versione(); break; case AIUTO: aiuto (); break; } } return (0); }
/** @brief Runs the program and calls funcitons from the headerfile lagerhantering.h @return always 0 */ int main() { bool should_continue = true; db_t db1 = malloc(sizeof(struct db_t)); db1->amount = 0; db_t backup; int i = 0; while (should_continue) { print_menu(); switch (ask_char_question("What do you want to do?", "AaRrEeUuPpQq")){ // Add case 'a': puts("You chose 'Add'"); if (i > 0){ free_db(backup); } backup = db_copy(db1); i++; add_item(db1); break; // Remove case 'r': puts("You chose 'Remove'"); if(i>0){ free_db(backup); } backup = db_copy(db1); i++; remove_item(db1); break; // Edit case 'e': puts("You chose 'Edit'"); if (i>0){ free_db(backup); } backup = db_copy(db1); i++; edit_item(db1); break; // Undo case 'u': puts("You chose 'Undo'"); if(i>0){ free_db(db1); } db1 = db_copy(backup); i++; // backup = db_copy(db1); break; // Print case 'p': puts("You chose 'Print'"); print_db(db1); break; // Quit case 'q': if (ask_char_question("Do you wish to exit the programme?", "YyNn") == 'y') { puts("Goodbye!"); should_continue = false; free_db(db1); if(i > 0){ free_db(backup); } /* if(db1 != NULL){ free_db(db1); } else free(db1); if (backup != NULL) { free_db(backup); } else if(backup == NULL){ free(backup); }*/ } break; default: puts("Did not enter any valid command, please try again.\n"); } } return 0; }
int main (int argc, char *argv[]) { if (argc < 2) { aiuto (); return (0); } int i; int azione[argc]; char opzione[argc][255]; char opzione_p[argc][255]; char opzione_d[argc][255]; char opzione_l[argc][255]; char opzione_r[argc][255]; char opzione_t[argc][255]; int azioni = -1; int opzioni = -1; int opzioni_p = -1; int opzioni_d = -1; int opzioni_l = -1; int opzioni_r = -1; int opzioni_t = -1; int opzioni_confronto = 0; int controlla_dipendenze = 0; int all = 0; int rebuild_cache = 0; for (i = 1; i < argc; i++) { if (strcmp (argv[i], "-u") == 0 || strcmp (argv[i], "--update") == 0) { azioni++; azione[azioni] = AGGIORNA; } else if (strcmp (argv[i], "-l") == 0 || strcmp (argv[i], "--list") == 0) { azioni++; azione[azioni] = LSPORTS; } else if (strcmp (argv[i], "-d") == 0 || strcmp (argv[i], "--diff") == 0) { azioni++; azione[azioni] = DIFFERENZE; } else if (strcmp (argv[i], "-p") == 0 || strcmp (argv[i], "--updated") == 0) { azioni++; azione[azioni] = AGGIORNATI; } else if (strcmp (argv[i], "-v") == 0 || strcmp (argv[i], "--version") == 0) { azioni++; azione[azioni] = VERSIONE; } else if (strcmp (argv[i], "-h") == 0 || strcmp (argv[i], "--help") == 0) { azioni++; azione[azioni] = AIUTO; } else if (strcmp (argv[i], "--no-favorite-repo") == 0) { opzioni_confronto += NO_REPO; } else if (strcmp (argv[i], "--no-favorite-version") == 0) { opzioni_confronto += NO_VERSION; } else if (strcmp (argv[i], "--no-deps") == 0) { controlla_dipendenze = NODEPS; } else if (strcmp (argv[i], "--all") == 0) { all = 1; } else if (strcmp (argv[i], "-U") == 0) { azioni++; azione[azioni] = AGGIORNA_P; } else if (strcmp (argv[i], "-D") == 0) { azioni++; azione[azioni] = DIPENDENZE; } else if (strcmp (argv[i], "-R") == 0) { azioni++; azione[azioni] = RIMUOVI; } else if (strcmp (argv[i], "-T") == 0) { azioni++; azione[azioni] = DEPENDENT; } else if (strcmp (argv[i], "--cache") == 0) { azioni++; rebuild_cache = 1; } else { if (azione[azioni] == AGGIORNA) { opzioni++; strcpy (opzione[opzioni], argv[i]); } else if (azione[azioni] == AGGIORNA_P) { opzioni_p++; strcpy (opzione_p[opzioni_p], argv[i]); } else if (azione[azioni] == DIPENDENZE) { opzioni_d++; strcpy (opzione_d[opzioni_d], argv[i]); } else if (azione[azioni] == LSPORTS) { opzioni_l++; strcpy (opzione_l[opzioni_l], argv[i]); } else if (azione[azioni] == RIMUOVI) { opzioni_r++; strcpy (opzione_r[opzioni_r], argv[i]); } else if (azione[azioni] == DEPENDENT) { opzioni_t++; strcpy (opzione_t[opzioni_t], argv[i]); } } } if (azioni < 0) { aiuto (); return (0); } if (parse_ileniarc () != 0) return (1); repository = build_repolist (); if (rebuild_cache) { FILE *file; if ((file = fopen (CACHE, "w"))) fclose (file); } ports = lsports (); pacchetti = lspacchetti (); for (i = 0; i <= (azioni + rebuild_cache); i++) { switch (azione[i]) { case DIPENDENZE: if (opzioni_d != -1) { int j; for (j = 0; j <= opzioni_d; j++) { stampa_dipendenze (opzione_d[j]); } } else { printf ("pacchetto\n"); } break; case AGGIORNA_P: if (opzioni_confronto) opzioni = opzioni_confronto * controlla_dipendenze; else opzioni = controlla_dipendenze; if (opzioni_p != -1) { int j; for (j = 0; j <= opzioni_p; j++) { aggiorna_pacchetto (opzioni, opzione_p[j]); } } else { aggiorna_pacchetti (opzioni); } break; case AGGIORNA: if (opzioni < 0) { aggiorna_ports (); } else { int j; for (j = 0; j <= opzioni; j++) { aggiorna_collezione (opzione[j]); } } break; case LSPORTS: if (opzioni_l == -1) print_db (ports); else { struct db *p = NULL; int j; for (j = 0; j <= opzioni_l; j++) { p = cerca (opzione_l[j], ports); print_db (p); } } break; case DIFFERENZE: confronta (pacchetti, ports, DIFFERENZE, opzioni_confronto, 1); break; case RIMUOVI: if (opzioni_r != -1) { int j; for (j = 0; j <= opzioni_r; j++) { pkgrm (opzione_r[j], controlla_dipendenze, all); } } else { printf ("package(s)\n"); } break; case DEPENDENT: if (opzioni_t != -1) { int j; for (j = 0; j <= opzioni_t; j++) { stampa_dipendenti (opzione_t[j], all); } } else { printf ("package(s)\n"); } break; case AGGIORNATI: confronta (pacchetti, ports, AGGIORNATI, opzioni_confronto, 1); break; case VERSIONE: versione (); break; case AIUTO: aiuto (); break; } } return (0); }