Example #1
0
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);
}
Example #2
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;
}
Example #3
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);
}
Example #4
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);
}