#ifndef LANDERCTL #define LANDERCTL #include #include typedef struct landerctl_cfg { const char *api_key; const char *server_url; } landerctl_cfg; typedef enum landerctl_cfg_err { landerctl_cfg_err_ok = 0, landerctl_cfg_err_not_found, landerctl_cfg_err_invalid, landerctl_cfg_err_incomplete, } landerctl_cfg_err; /** * Try to parse the required config arguments from the config file * * @param out config to write values to. Existing values are overwritten * @param path path to config file */ landerctl_cfg_err landerctl_cfg_parse(landerctl_cfg *out, const char *path); typedef enum landerctl_mode { landerctl_mode_none = 0, landerctl_mode_short, landerctl_mode_paste, landerctl_mode_file, } landerctl_mode; struct curl_slist *landerctl_set_common(const landerctl_cfg *cfg, CURL *curl, landerctl_mode mode, bool secure, const char *key); void landerctl_post_short(CURL *curl, const char *url); void landerctl_post_paste(CURL *curl, const char *path); void landerctl_post_file(CURL *curl, const char *path); #endif