static int seaf_controller_init (SeafileController *ctl, char *central_config_dir, char *config_dir, char *seafile_dir, char *logdir) { init_seafile_path (); if (!g_file_test (config_dir, G_FILE_TEST_IS_DIR)) { seaf_warning ("invalid config_dir: %s\n", config_dir); return -1; } if (!g_file_test (seafile_dir, G_FILE_TEST_IS_DIR)) { seaf_warning ("invalid seafile_dir: %s\n", seafile_dir); return -1; } ctl->client = ccnet_client_new (); ctl->sync_client = ccnet_client_new (); if (ccnet_client_load_confdir (ctl->client, central_config_dir, config_dir) < 0) { seaf_warning ("Failed to load ccnet confdir\n"); return -1; } if (ccnet_client_load_confdir (ctl->sync_client, central_config_dir, config_dir) < 0) { seaf_warning ("Failed to load ccnet confdir\n"); return -1; } if (logdir == NULL) { char *topdir = g_path_get_dirname(config_dir); logdir = g_build_filename (topdir, "logs", NULL); if (checkdir_with_mkdir(logdir) < 0) { fprintf (stderr, "failed to create log folder \"%s\": %s\n", logdir, strerror(errno)); return -1; } g_free (topdir); } ctl->central_config_dir = central_config_dir; ctl->config_dir = config_dir; ctl->seafile_dir = seafile_dir; ctl->logdir = logdir; if (read_seafdav_config() < 0) { return -1; } init_pidfile_path (ctl); setup_env (); return 0; }
static int seaf_controller_init (SeafileController *ctl, char *bin_dir, char *config_dir, char *seafile_dir, gboolean cloud_mode) { if (bin_dir) { if (!g_file_test (bin_dir, G_FILE_TEST_IS_DIR)) { seaf_warning ("invalid config_dir: %s\n", config_dir); return -1; } } if (!g_file_test (config_dir, G_FILE_TEST_IS_DIR)) { seaf_warning ("invalid config_dir: %s\n", config_dir); return -1; } if (!g_file_test (seafile_dir, G_FILE_TEST_IS_DIR)) { seaf_warning ("invalid seafile_dir: %s\n", seafile_dir); return -1; } ctl->client = ccnet_client_new (); ctl->sync_client = ccnet_client_new (); if (ccnet_client_load_confdir (ctl->client, config_dir) < 0) { seaf_warning ("Failed to load ccnet confdir\n"); return -1; } if (ccnet_client_load_confdir (ctl->sync_client, config_dir) < 0) { seaf_warning ("Failed to load ccnet confdir\n"); return -1; } ctl->config_dir = config_dir; ctl->bin_dir = bin_dir; ctl->seafile_dir = seafile_dir; ctl->cloud_mode = cloud_mode; init_pidfile_path(ctl); return 0; }