int aggiorna_pacchetti (int opzioni_confronto) { if (getuid () != 0) { printf ("ilenia: only root can update or install packages\n\n"); return (-1); } struct db *p = NULL; p = confronta (pacchetti, ports, AGGIORNATI, opzioni_confronto, 0); while (p != NULL) { printf ("%s\n", p->nome); if (aggiorna_pacchetto_ (opzioni_confronto, p->nome) != 0) return (-1); p = p->prossimo; } return (0); }
int main(void) { Data d1, d2; printf("Inserisci la prima data, formato dd/mm/YYYY: "); scanf("%d / %d / %d", &(d1.giorno), &(d1.mese), &(d1.anno)); fflush(stdin); printf("\nInserisci la seconda data, formato dd/mm/YYYY: "); scanf("%d / %d / %d", &(d2.giorno), &(d2.mese), &(d2.anno)); switch(confronta(d1, d2)) { case 0: printf("La data "); stampa(d1); printf(" e' uguale alla data "); stampa(d2); printf("!\n"); break; case 1: printf("La data "); stampa(d1); printf(" e' antecedente alla data "); stampa(d2); printf("!\n"); break; case -1: printf("La data "); stampa(d1); printf(" e' successiva alla data "); stampa(d2); printf("!\n"); break; } free(test); 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); }
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); }