
#include <stdio.h>
#include <sys/types.h>
#include <dirent.h>
#include <sys/stat.h>
#include <unistd.h>

int main(int argc, char *argv[])
{
	DIR *dir;
	struct dirent *entry;
	char path[1024];
	struct stat st;

	dir = opendir(argv[1]);

	if (dir == NULL)
		return 1;

	while ((entry = readdir(dir)))
	{
		if (entry->d_name[0] == '.')
			continue;

		snprintf(path, sizeof(path), "%s/%s", argv[1], entry->d_name);

		if (lstat(path, &st) < 0)
			continue;

		if (S_ISDIR(st.st_mode))
			printf("D %s\n", path);
		else if (S_ISREG(st.st_mode))
			printf("F %s (%ld bytes)\n", path, st.st_size);
	}

	return 0;
}

