main.c 853 B

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. #include <time.h>
  2. #include <stdio.h>
  3. #include <stdlib.h>
  4. #include <string.h>
  5. #include <unistd.h>
  6. #include "rubiks.h"
  7. int generate(char **params, char *av0)
  8. {
  9. t_params p;
  10. FILE *f;
  11. int i;
  12. srand(time(NULL) * getpid());
  13. if (!parse_params(params, &p, av0))
  14. {
  15. xfree(p.output);
  16. return -1;
  17. }
  18. if (p.output == NULL)
  19. f = stdout;
  20. else if ((f = fopen(p.output, "a+")) == NULL)
  21. {
  22. fprintf(stderr, "Cannot open %s for writting\n", p.output);
  23. free(p.output);
  24. return -1;
  25. }
  26. for (i=0; i < p.count; i++)
  27. {
  28. t_rubiks *r = doGenerate(&p);
  29. rubik_output(r, f);
  30. fprintf(f, "\n");
  31. free(r);
  32. }
  33. xfree(p.output);
  34. return 0;
  35. }
  36. int main(int ac, char **av)
  37. {
  38. (void) ac;
  39. if (av[1] && (!strcmp(av[1], "generate") || !strcmp(av[1], "gen")))
  40. return generate(&av[2], av[0]);
  41. fprintf(stderr, "Expected valid action\n");
  42. usage(av[0]);
  43. return -1;
  44. }