Refactoring in C, currently in development
This commit is contained in:
parent
9733003e9e
commit
e3508eee23
@ -1,12 +0,0 @@
|
|||||||
cmake_minimum_required(VERSION 3.15)
|
|
||||||
|
|
||||||
set(CMAKE_CXX_STANDARD 11)
|
|
||||||
set(CMAKE_CXX_STANDARD_REQUIRED On)
|
|
||||||
|
|
||||||
set(CMAKE_EXPORT_COMPILE_COMMANDS On)
|
|
||||||
|
|
||||||
project(teaui)
|
|
||||||
|
|
||||||
add_executable(teaui)
|
|
||||||
|
|
||||||
add_subdirectory(src)
|
|
8
build.sh
Executable file
8
build.sh
Executable file
@ -0,0 +1,8 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
set -xe
|
||||||
|
|
||||||
|
CFLAGS=$(pkg-config --cflags ncurses libcurl)
|
||||||
|
LIBS=$(pkg-config --libs ncurses libcurl)
|
||||||
|
|
||||||
|
gcc ${CFLAGS} -o main main.c giteaAPI.c ${LIBS}
|
41
giteaAPI.c
Normal file
41
giteaAPI.c
Normal file
@ -0,0 +1,41 @@
|
|||||||
|
#include "giteaAPI.h"
|
||||||
|
#include <curl/curl.h>
|
||||||
|
#include <curl/easy.h>
|
||||||
|
#include <string.h>
|
||||||
|
#include <malloc.h>
|
||||||
|
|
||||||
|
|
||||||
|
SESSION teaui_gitea_session(const char *instance){
|
||||||
|
curl_global_init(0);
|
||||||
|
CURL *handle = curl_easy_init();
|
||||||
|
SESSION ret = {.handle=handle};
|
||||||
|
memcpy(ret.instance, instance, strlen(instance));
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
void teaui_gitea_cleanup(SESSION s){
|
||||||
|
curl_global_cleanup();
|
||||||
|
curl_easy_cleanup(s.handle);
|
||||||
|
}
|
||||||
|
|
||||||
|
void teaui_gitea_auth_basic(SESSION s, const char *user, const char *pass){
|
||||||
|
curl_easy_setopt(s.handle, CURLOPT_USERNAME, user);
|
||||||
|
curl_easy_setopt(s.handle, CURLOPT_PASSWORD, pass);
|
||||||
|
}
|
||||||
|
|
||||||
|
void teaui_gitea_auth_token(SESSION s, const char *token){
|
||||||
|
char header[256] = "Authorization: ";
|
||||||
|
strcat(header, token);
|
||||||
|
curl_easy_setopt(s.handle , CURLOPT_HEADERDATA, header);
|
||||||
|
}
|
||||||
|
|
||||||
|
const char* teaui_gitea_auth_generateToken(SESSION s, const char * username){
|
||||||
|
char endpoint[1024];
|
||||||
|
strcpy(endpoint, s.instance);
|
||||||
|
strcat(endpoint, "/api/v1/users/");
|
||||||
|
strcat(endpoint, username);
|
||||||
|
strcat(endpoint, "/tokens");
|
||||||
|
curl_easy_setopt(s.handle, CURLOPT_URL, endpoint);
|
||||||
|
curl_easy_perform(s.handle);
|
||||||
|
return "";
|
||||||
|
}
|
19
giteaAPI.h
Normal file
19
giteaAPI.h
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
#ifndef GITEA_API_H_
|
||||||
|
#define GITEA_API_H_
|
||||||
|
|
||||||
|
#include <curl/curl.h>
|
||||||
|
|
||||||
|
typedef struct {
|
||||||
|
CURL* handle;
|
||||||
|
char* instance;
|
||||||
|
} SESSION;
|
||||||
|
|
||||||
|
SESSION teaui_gitea_session(const char *instance);
|
||||||
|
void teaui_gitea_cleanup(SESSION s);
|
||||||
|
|
||||||
|
void teaui_gitea_auth_basic(SESSION s, const char *user, const char *pass);
|
||||||
|
void teaui_gitea_auth_token(SESSION s, const char *token);
|
||||||
|
|
||||||
|
const char* teaui_gitea_auth_generateToken(SESSION s, const char *username);
|
||||||
|
|
||||||
|
#endif /* ifndef GITEA_API_H_ */
|
40
main.c
Normal file
40
main.c
Normal file
@ -0,0 +1,40 @@
|
|||||||
|
#include <curses.h>
|
||||||
|
#include <stdio.h>
|
||||||
|
#include "giteaAPI.h"
|
||||||
|
|
||||||
|
#include <ncurses.h>
|
||||||
|
|
||||||
|
int main(void)
|
||||||
|
{
|
||||||
|
SESSION s = teaui_gitea_session("https://git.herisson.ovh");
|
||||||
|
|
||||||
|
#if 0
|
||||||
|
initscr();
|
||||||
|
start_color();
|
||||||
|
init_pair(1, COLOR_RED, COLOR_GREEN);
|
||||||
|
WINDOW* test = newwin(16, 9, 2, 2);
|
||||||
|
wattron(test, COLOR_PAIR(1));
|
||||||
|
box(test, 0, 0);
|
||||||
|
wattroff(test, COLOR_PAIR(1));
|
||||||
|
noecho();
|
||||||
|
timeout(0);
|
||||||
|
refresh();
|
||||||
|
bool should_quit = false;
|
||||||
|
while(!should_quit){
|
||||||
|
wrefresh(test);
|
||||||
|
int in = getch();
|
||||||
|
if(in != ERR){
|
||||||
|
switch (in) {
|
||||||
|
case 'a':
|
||||||
|
should_quit = true;
|
||||||
|
break;
|
||||||
|
case 'd':
|
||||||
|
wattron(test, COLOR_PAIR(1));
|
||||||
|
wprintw(test, "Hello, Dari!");
|
||||||
|
wattroff(test, COLOR_PAIR(1));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
endwin();
|
||||||
|
#endif
|
||||||
|
}
|
@ -1,3 +0,0 @@
|
|||||||
target_sources(${CMAKE_PROJECT_NAME} PRIVATE
|
|
||||||
main.cpp
|
|
||||||
)
|
|
@ -1,7 +0,0 @@
|
|||||||
#include <ncurses.h>
|
|
||||||
|
|
||||||
int main(int argc, char *argv[])
|
|
||||||
{
|
|
||||||
printf("Hello, World!");
|
|
||||||
return 0;
|
|
||||||
}
|
|
Loading…
Reference in New Issue
Block a user