#include #include #include #include #include #include "rubiks.h" int generate(char **params, char *av0) { t_params p; FILE *f; int i; srand(time(NULL) * getpid()); if (!parse_params(params, &p, av0)) { xfree(p.output); return -1; } if (p.output == NULL) f = stdout; else if ((f = fopen(p.output, "a+")) == NULL) { fprintf(stderr, "Cannot open %s for writting\n", p.output); free(p.output); return -1; } for (i=0; i < p.count; i++) { t_rubiks *r = doGenerate(&p); rubik_output(r, f); fprintf(f, "\n"); free(r); } xfree(p.output); return 0; } int main(int ac, char **av) { (void) ac; if (av[1] && (!strcmp(av[1], "generate") || !strcmp(av[1], "gen"))) return generate(&av[2], av[0]); fprintf(stderr, "Expected valid action\n"); usage(av[0]); return -1; }