Ejemplo n.º 1
0
static void dump_map(OSyncGroupEnv *env, const char *groupname)
{

	OSyncGroup *group = osync_group_env_find_group(env, groupname);
	int num_objtypes;
	
	if (!group) {
		printf("Unable to find group with name \"%s\"\n", groupname);
		return;
	}
	
	OSyncList *objtypes = osync_group_get_objtypes(group);
	num_objtypes = osync_list_length(objtypes); 
	if (num_objtypes == 0) { 
		printf("Group has no objtypes. Have the objtypes already been discovered?\n"); 
		return;
	}

	OSyncList *o;
	for (o = objtypes; o; o = o->next) {
		const char *objtype = (char *) o->data;
		printf("Mappings for objtype \"%s\":\n", objtype);
		dump_map_objtype(env, objtype, groupname);
	}
	osync_list_free(objtypes);
}
Ejemplo n.º 2
0
static void dump_map(OSyncGroupEnv *env, const char *groupname)
{

  OSyncGroup *group = osync_group_env_find_group(env, groupname);
  int i, num_objtypes;
	
  if (!group) {
    printf("Unable to find group with name \"%s\"\n", groupname);
    return;
  }

  num_objtypes = osync_group_num_objtypes(group); 
  if (num_objtypes == 0) { 
    printf("Group has no objtypes. Have the objtypes already been discovered?\n"); 
    return;
  }

  for (i = 0; i < num_objtypes; i++) {
    const char *objtype = osync_group_nth_objtype(group, i);
    printf("Mappings for objtype \"%s\":\n", objtype);
    dump_map_objtype(env, objtype, groupname);
  }

}
Ejemplo n.º 3
0
int main (int argc, char *argv[])
{
	int i;
	char *groupname = NULL;
	char *membername = NULL;
	ToolAction action = DUMPMAPS;
	char *configdir = NULL;
	char *objtype = NULL;
	OSyncError *error = NULL;
	OSyncGroupEnv *env = NULL;
	
	if (argc == 1)
		usage (argv[0], 1);

	groupname = argv[1];
	for (i = 2; i < argc; i++) {
		char *arg = argv[i];
		if (!strcmp (arg, "--mappings")) {
			action = DUMPMAPS;
			objtype = argv[i + 1];
			i++;
			if (!objtype)
				usage (argv[0], 1);
		} else if (!strcmp (arg, "--hash")) {
			action = DUMPHASH;
			objtype = argv[i + 1];
			membername = argv[i + 2];
			i += 2;
			if (!objtype || !membername)
				usage (argv[0], 1);
		} else if (!strcmp (arg, "--reset")) {
			action = RESET;
		} else if (!strcmp (arg, "--help")) {
			usage (argv[0], 0);
		} else if (!strcmp (arg, "--configdir")) {
			configdir = argv[i + 1];
			i++;
			if (!configdir)
				usage (argv[0], 1);
		} else if (!strcmp (arg, "--")) {
			break;
		} else if (arg[0] == '-') {
			usage (argv[0], 1);
		} else {
			usage (argv[0], 1);
		}
	}
	
	env = osync_group_env_new(&error);
	if (!env)
		goto error;
	
	if (!osync_group_env_load_groups(env, configdir, &error))
		goto error;
	
	switch (action) {
	case DUMPMAPS:
		if (objtype)
			dump_map_objtype(env, objtype, groupname);
		else
			dump_map(env, groupname);
		break;
	case DUMPHASH:
		dump_hash(env, objtype, groupname, membername);
		break;
	case RESET:
		reset(env, groupname);
		break;
	}
	osync_group_env_unref(env);
	return 0;

 error:
	if (env)
		osync_group_env_unref(env);
	printf("ERROR: %s", osync_error_print(&error));
	osync_error_unref(&error);
	return 1;
}