hibot/source/main.c

68 lines
954 B
C
Raw Normal View History

2023-12-15 17:45:27 -05:00
#define PROGRAM_NAME "hibot"
2023-12-15 18:23:46 -05:00
#define _GNU_SOURCE
2023-12-15 17:45:27 -05:00
#include "config.inc"
char * channel;
char * server;
char * port;
2023-12-16 20:38:41 -05:00
typedef enum {
C,
ADA,
} language_t;
language_t language = ADA;
typedef void (*syntax_setter_t)(void);
2023-12-15 17:45:27 -05:00
#include <stdio.h>
FILE * log_file;
#include "log.h"
2023-12-15 18:27:56 -05:00
#include "syntax.h"
2023-12-15 17:45:27 -05:00
#include "bot.h"
2023-12-16 20:38:41 -05:00
syntax_setter_t syntax_functions[] = {
[C] = &syntax_c,
[ADA] = &syntax_ada,
};
2023-12-15 17:45:27 -05:00
const char help_message[] =
PROGRAM_NAME " <server>:<port> <channel>\n"
;
signed main(int argc, char * * argv) {
if (argc != 3) {
goto USAGE_ERROR;
}
channel = argv[2];
server = strdup(argv[1]);
port = strchr(server, ':');
if (port) {
*port = '\0';
} else {
goto USAGE_ERROR;
}
++port;
int port_i = 0;
if(!sscanf(port, "%hd", &port_i)) {
goto USAGE_ERROR;
}
log_file = stdout;
2023-12-16 20:38:41 -05:00
syntax_functions[language]();
2023-12-15 18:27:56 -05:00
2023-12-15 18:23:46 -05:00
connect_bot(server, port_i);
2023-12-15 17:45:27 -05:00
connection_loop();
return 0;
USAGE_ERROR:
puts(help_message);
return 1;
}