std::vector<FileData*> FileData::getFavoritesRecursive(unsigned int typeMask) const
{
	std::vector<FileData*> out;
	std::vector<FileData*> files = getFilesRecursive(typeMask);

	for (auto it = files.begin(); it != files.end(); it++)
	{
		if ((*it)->metadata.get("favorite").compare("yes") == 0)
		{
			out.push_back(*it);
		}
	}

	return out;
}
Exemple #2
0
int main(int argc, char** argv) {
    createDirectory(".");
    if(argc >= 2) {
        if(strcmp(argv[1], "status") == 0) {
            GList* changed_list = NULL;
            GList* untracked_list = NULL;
            getFilesRecursive(".", &changed_list, &untracked_list);
            printStatus(changed_list, untracked_list);
        } else if(strcmp(argv[1], "add") == 0) {
            //DO THE ADDING
            if(argc < 3) {
                printf("# No files to add were specified\n");
                printf("#\n");
            } else {
                GList* list = NULL;
                for(int i=2; i<argc; i++) {
                    list = g_list_append(list, argv[i]);
                }
                for(GList* current = list; current != NULL; current = g_list_next(current)) {
                    char* filename = (char*) current->data;
                    int result = addFile(filename);
                    if(result != 1) {
                        printf("# Error adding file");
                    }
                }
            }
        } else if(strcmp(argv[1], "send") == 0) {
            if(argc < 3) {
                printf("# No host name given. Format: %s hostname\n", argv[0]);
                exit(EXIT_FAILURE);
            }
            perform_send(argv[2]);
        } else if(strcmp(argv[1], "receive") == 0) {
            perform_receive();
        }
    }
}