int main(void) { double start; Eina_Hash *headers; eina_init(); ecore_init(); ecore_file_init(); if (ecore_file_exists(DST)) ecore_file_unlink(DST); start = ecore_time_get(); if (ecore_file_download(URL, DST, completion_cb, progress_cb, NULL, NULL)) { printf("Download started successfully:\n URL: %s\n DEST: %s\n", URL, DST); ecore_main_loop_begin(); printf("\nTime elapsed: %f seconds\n", ecore_time_get() - start); printf("Downloaded %lld bytes\n", ecore_file_size(DST)); } else { printf("Error, can't start download\n"); goto done; } headers = eina_hash_string_small_new(NULL); eina_hash_add(headers, "Content-type", "application/x-gzip"); if (ecore_file_download_full(URL, DST_MIME, completion_cb, progress_cb, NULL, NULL, headers)) { printf("Download started successfully:\n URL: %s\n DEST: %s\n", URL, DST_MIME); ecore_main_loop_begin(); printf("\nTime elapsed: %f seconds\n", ecore_time_get() - start); printf("Downloaded %lld bytes\n", ecore_file_size(DST)); } else { printf("Error, can't start download\n"); goto done; } done: if (headers) eina_hash_free(headers); ecore_file_shutdown(); ecore_shutdown(); eina_shutdown(); return 0; }
int ex_config_read(Extrackt *ex) { Eet_File *ef; char buf[PATH_MAX]; char *home; char **matches; int count; if(ex->config.cd) { /* FIXME: free everything! */ E_FREE(ex->config.cd->cdrom); E_FREE(ex->config.cd); } home = getenv("HOME"); if(!home) return 0; snprintf(buf, sizeof(buf), "%s/.e/extrackt/config.eet", home); if(!ecore_file_exists(buf) || ecore_file_size(buf) == 0) { /* default config values */ return ex_config_defaults_apply(ex); } ef = eet_open(buf, EET_FILE_MODE_READ); if(!ef) { ERROR("Cant open configuration file! Using program defaults."); return ex_config_defaults_apply(ex); } /* Make sure we are compatible - same version numbers */ ex->config.version = NULL; ex->config.version = eet_data_read(ef, _ex_config_version_edd, "config/version"); if(!ex->config.version) { ERROR("Incompatible configuration file! Creating new one."); eet_close(ef); return ex_config_defaults_apply(ex); } else { Ex_Config_Version *v; v = ex_config_version_parse(VERSION); if(ex_config_version_compare(v, ex->config.version) != 0) { ERROR("Your version / configuration of Extrackt is not valid! Overwriting with program defaults"); return ex_config_defaults_apply(ex); } } /* Read config data for cdrom */ ex->config.cd = NULL; ex->config.cd = eet_data_read(ef, _ex_config_cd_edd, "config/cd"); if(!ex->config.cd) { ERROR("Cant read config! Using program defaults."); eet_close(ef); return ex_config_defaults_apply(ex); } /* Read config data for cddb */ ex->config.cddb = NULL; ex->config.cddb = eet_data_read(ef, _ex_config_cddb_edd, "config/cddb"); if(!ex->config.cddb) { ERROR("Cant read config! Using program defaults."); eet_close(ef); return ex_config_defaults_apply(ex); } /* Read config data for rippers */ matches = eet_list(ef, "config/rippers/*", &count); ex->config.rippers = NULL; if(count > 0) { int i; for(i = 0; i < count; i++) { char *match; match = matches[i]; ex->config.rippers = eina_list_append(ex->config.rippers, eet_data_read(ef, _ex_config_exe_edd, match)); } } /* Read config data for encode */ ex->config.encode = NULL; ex->config.encode = eet_data_read(ef, _ex_config_encode_edd, "config/encode"); eet_close(ef); return 1; }
/** * @brief Loads Etk's config from disk * @return Returns ETK_TRUE on a successful load, ETK_FALSE otherwise. */ Etk_Bool etk_config_load(void) { Eet_File *ef; char buf[PATH_MAX]; char *home; home = getenv("HOME"); if (!home) { _etk_config_defaults_apply(); return ETK_FALSE; } snprintf(buf, sizeof(buf), "%s/.e/etk/config.eet", home); if (!ecore_file_exists(buf) || ecore_file_size(buf) == 0) { /* no saved config */ _etk_config_defaults_apply(); return ETK_FALSE; } ef = eet_open(buf, EET_FILE_MODE_READ); if (!ef) { ETK_WARNING("Cant open configuration file! Using program defaults."); return ETK_FALSE; } if (!_etk_config) _etk_config = malloc(sizeof(Etk_Config)); else { free(_etk_config->version); if (_etk_config->general) { free(_etk_config->general->wm_theme); free(_etk_config->general->widget_theme); free(_etk_config->general->font); free(_etk_config->general->engine); free(_etk_config->general); } } _etk_config->version = NULL; _etk_config->version = eet_data_read(ef, _etk_config_ver_edd, "config/version"); if(!_etk_config->version) { ETK_WARNING("Incompatible configuration file! Creating new one."); eet_close(ef); _etk_config_defaults_apply(); return ETK_FALSE; } else { Etk_Config_Version *v; v = _etk_config_version_parse(VERSION); if(_etk_config_version_compare(v, _etk_config->version) != 0) { ETK_WARNING("Your version / configuration of Etk is not valid!"); eet_close(ef); free(v); _etk_config_defaults_apply(); return ETK_FALSE; } free(v); } _etk_config->general = eet_data_read(ef, _etk_config_gen_edd, "config/general"); if (!_etk_config->general) _etk_config_defaults_apply(); eet_close(ef); return ETK_TRUE; }