lander/landerctl/include/landerctl.h

43 lines
1.1 KiB
C
Raw Normal View History

#ifndef LANDERCTL
#define LANDERCTL
#include <stdbool.h>
#include <curl/curl.h>
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