#include #include #include #include "libs/argparse.h" #include "curl/curl.h" struct Scheme{ char fg_color[8]; char sub_fg_color[8]; char bg_color[8]; char sub_bg_color[8]; char accent[8]; char sub_accent[8]; }; void write_pallete(const struct Scheme *s){ //s->bg_color } int download_wall(const char *link){ CURL *curl; FILE *fp; CURLcode res; const char *outfilename = "wallpaper.jpg"; curl_global_init(CURL_GLOBAL_ALL); curl = curl_easy_init(); if(curl) { fp = fopen(outfilename, "wb"); if(fp == NULL) { fprintf(stderr, "ошибка: не удалось создать или открыть файл %s\n", outfilename); curl_easy_cleanup(curl); curl_global_cleanup(); return 1; } curl_easy_setopt(curl, CURLOPT_URL, link); curl_easy_setopt(curl, CURLOPT_WRITEDATA, fp); curl_easy_setopt(curl, CURLOPT_FOLLOWLOCATION, 1L); res = curl_easy_perform(curl); if(res != CURLE_OK) { fprintf(stderr, "ошибка скачивания: %s\n", curl_easy_strerror(res)); } fclose(fp); curl_easy_cleanup(curl); } curl_global_cleanup(); return 0; } int main(int argc, const char **argv) { const char* link = NULL; const char* scheme_output = NULL; const char* wall_output = NULL; int is_pastel = 0; struct argparse_option options[] = { OPT_HELP(), OPT_STRING(0,"link", &link, "ссылка на изображение с сайта wallhave.cc", NULL, 0, 0), OPT_BOOLEAN('p', "pastel", &is_pastel, "создать пастельные палитры", NULL, 0, 0), OPT_STRING(0,"scheme-output", &scheme_output, "директория для сохранения палитр", NULL, 0, 0), OPT_STRING(0,"wall-output", &wall_output, "директория для сохранения обоев", NULL, 0, 0), OPT_END(), }; struct argparse argparse; argparse_init(&argparse, options, NULL, 0); argc = argparse_parse(&argparse, argc, argv); download_wall(link); return 0; } /* zenith-cli --link="link" -p/--pastel --scheme-output="path" --wall-output="path" */