/* vi: set sw=4 ts=4: */
/*
 * Mini mktemp implementation for busybox
 *
 *
 * Copyright (C) 2000 by Daniel Jacobowitz
 * Written by Daniel Jacobowitz <dan@debian.org>
 *
 * Licensed under the GPL v2 or later, see the file LICENSE in this tarball. 
 */

#include <stdio.h>
#include <errno.h>
#include <string.h>
#include <unistd.h>
#include <stdlib.h>
#include "busybox.h"

extern int mktemp_main(int argc, char **argv)
{
	unsigned long flags = bb_getopt_ulflags(argc, argv, "dq");
	
	if (optind + 1 != argc)
		bb_show_usage();

	if (flags & 1) {
		if (mkdtemp(argv[optind]) == NULL)
			return EXIT_FAILURE;
	}
	else {
		if (mkstemp(argv[optind]) < 0)
			return EXIT_FAILURE;
	}

	puts(argv[optind]);

	return EXIT_SUCCESS;
}
