roh/conf/area/
roh/game/talk/
roh/help/
roh/monsters/ocean/
roh/objects/ocean/
roh/player/
roh/rooms/area/1/
roh/rooms/misc/
roh/rooms/ocean/
roh/src-2.44b/
/*
 * purge.cpp
 *	 Code to handle a purge.
 *   ____            _               
 *  |  _ \ ___  __ _| |_ __ ___  ___ 
 *  | |_) / _ \/ _` | | '_ ` _ \/ __|
 *  |  _ <  __/ (_| | | | | | | \__ \
 *  |_| \_\___|\__,_|_|_| |_| |_|___/
 *
 * Permission to use, modify and distribute is granted via the
 *  Creative Commons - Attribution - Non Commercial - Share Alike 3.0 License
 *    http://creativecommons.org/licenses/by-nc-sa/3.0/
 *  
 * 	Copyright (C) 2007-2009 Jason Mitchell, Randi Mitchell
 * 	   Contributions by Tim Callahan, Jonathan Hseu
 *  Based on Mordor (C) Brooke Paul, Brett J. Vickers, John P. Freeman
 *
 */
void log(const char *fmt,...);
int PURGED=0;
#define ACC             00660
#define PATH "/home/realms/mud/player"
int main() {
	DIR     *dirfd;
	struct dirent  *dirp;

	if((dirfd = opendir(PATH)) == NULL) {
		printf("Directory could not be opened.\n");
		return;
	}
	while((dirp = readdir(dirfd)) != NULL) {
		if(dirp->d_name[0] == '.')
			continue;
		if(!isupper(dirp->d_name[0]))
			continue;
		do_stat(dirp->d_name);
	}
	return;
}

int do_stat(char *name) {
	struct stat stats;
	char temp[160];
	stat(name, &stats);
	//	printf("%20s last logged on %s", name, ctime(&stats.st_mtime));
	if(stats.st_mtime < 915000000) {
		unlink(name);
		sprintf(temp,"%20s: %s", name, ctime(&stats.st_mtime));
		log("deleted", temp);
	} else
		log("skipped", "%20s: %s", name, ctime(&stats.st_mtime));

	return;
}

void log(const char *fmt,...) {
	char            file[80];
	char            str[2048];
	int             fd;
	va_list         ap;

	va_start(ap, fmt);

	sprintf(file, "/home/realms/mud/%s", name);
	fd = open(file, O_RDWR | O_APPEND, 0);
	if(fd < 0) {
		fd = open(file, O_RDWR | O_CREAT, ACC);
		if(fd < 0)
			return;
	}
	lseek(fd, 0L, 2);

	// prevent string overruns with vsn
	vsnprintf(str, 2000, fmt, ap);
	va_end(ap);

	write(fd, str, strlen(str));

	close(fd);
}