#include <u.h>
#include <libc.h>

int touch(int, char *);
ulong now;

void
usage(void)
{
	fprint(2, "usage: touch [-c] [-t time] files\n");
	exits("usage");
}

void
main(int argc, char **argv)
{
	int nocreate = 0;
	int status = 0;

	now = time(0);
	ARGBEGIN{
	case 't':
		now = strtoul(EARGF(usage()), 0, 0);
		break;
	case 'c':
		nocreate = 1;
		break;
	default:	
		usage();
	}ARGEND

	if(!*argv)
		usage();
	while(*argv)
		status += touch(nocreate, *argv++);
	if(status)
		exits("touch");
	exits(0);
}

int
touch(int nocreate, char *name)
{
	Dir stbuff;
	int fd;

	nulldir(&stbuff);
	stbuff.mtime = now;
	if(dirwstat(name, &stbuff) >= 0)
		return 0;
	if(nocreate){
		fprint(2, "touch: %s: cannot wstat: %r\n", name);
		return 1;
	}
	if ((fd = create(name, OREAD, 0666)) < 0) {
		fprint(2, "touch: %s: cannot create: %r\n", name);
		return 1;
	}
	dirfwstat(fd, &stbuff);
	close(fd);
	return 0;
}
