Basic command structure\n

This commit is contained in:
Emil 2023-08-02 12:38:51 -06:00
parent fc31f9884b
commit 3d4a6cf8ff
4 changed files with 44 additions and 26 deletions

View File

@ -15,7 +15,8 @@ LDFLAGS='-lircclient'
mkdir -p $PREFIX && echo "Made directory: $PREFIX" mkdir -p $PREFIX && echo "Made directory: $PREFIX"
if [ ! -z ${DEBUG} ]; then CFLAG="$CFLAGS -Og -g3"; if [ ! -z ${DEBUG} ]; then CFLAG="$CFLAGS -Og -g3";
else CFLAG="$CFLAGS -O2 -flto=auto -fomit-frame-pointer -s"; fi else CPPFLAGS="$CPPFLAGS -DNDEBUG";
CFLAG="$CFLAGS -O2 -flto=auto -fomit-frame-pointer -s"; fi
[ ! -z ${SAN} ] && CFLAG="$CFLAGS -fsanitize=$SAN" [ ! -z ${SAN} ] && CFLAG="$CFLAGS -fsanitize=$SAN"

View File

@ -0,0 +1 @@
./probotic irc.rizon.net 6667 '#/g/chad' probotic

View File

@ -84,17 +84,47 @@ event_channel(irc_session_t * session,
const char ** params, const char ** params,
unsigned int count) unsigned int count)
{ {
size_t i = 0, len;
const char * channel = params[0]; const char * channel = params[0];
const char * message = params[1]; char * message = params[1];
char * arg;
char * swp;
(void) session; (void) session;
(void) event; (void) event;
(void) origin; (void) origin;
(void) channel; (void) channel;
(void) message; (void) message;
(void) count; (void) count;
char * swp = get_username(origin); swp = get_username(origin);
msg_wrapper("%s, you are a faggot for this opinion.", swp); /* msg_wrapper("%s, you are a faggot for this opinion.", swp); */
/* parses the command */
len = strlen(message);
while (message[i] != ' ')
{ ++i; }
message[i] = '\0';
arg = message + i + 1;
if (*message == '!')
{
++message;
/* if (strcmp(message, "stop") == 0) { exit(1); } */
if (strcmp(message, "remind") == 0)
{ msg_wrapper("%s: No current assignment.", swp); }
else if (strcmp(message, "next") == 0)
{ msg_wrapper("%s: No future assignments", swp); }
else if (strcmp(message, "raw") == 0)
{ msg_wrapper("%s: executing sql %s", arg); }
else if (strcmp(message, "dump") == 0)
{ msg_wrapper("%s: all projects... they don't seem to exist!"); }
else if (strcmp(message, "submit") == 0)
{ msg_wrapper("%s: Submitting project link '%s' to <random janny>", swp, arg); }
else if (strcmp(message, "reroll") == 0)
{ msg_wrapper("%s: No more rerolls possible.", swp); }
#ifdef NDEBUG
else
{ msg_wrapper("No such command '%s'", message); }
#endif /* NDEBUG */
}
free(swp); free(swp);
} }
@ -109,8 +139,9 @@ init(char const * username, char const * server, int port)
if (!session) if (!session)
{ ERR(1, "Error creating IRC session"); } { ERR(1, "Error creating IRC session"); }
irc_connect(session, server, port, 0, username, username, username); irc_connect(session, server, port, 0, username, username, username);
/* We should figure out how the failure happens so we can tell the user that. */
if (irc_run(session) != 0) if (irc_run(session) != 0)
{ ERR(1, "Error running IRC session\nNo net?"); } { ERR(1, "Error running IRC session\nPossible issue: bad URL, no network connection, bad port, refused connection."); }
return 0; return 0;
} }
@ -137,7 +168,9 @@ main(int argc,
channel = argv[3]; channel = argv[3];
port = atoi(argv[2]); port = atoi(argv[2]);
server = argv[1]; server = argv[1];
fprintf(stderr, "-- %s:%d %s %s --", server, port, channel, username); #ifdef NDEBUG
fprintf(stderr, "-- %s:%d %s %s --\n", server, port, channel, username);
#endif /* NDEBUG */
if (!init(username, server, port)) if (!init(username, server, port))
{ {
while(1) while(1)

View File

@ -44,23 +44,6 @@ int parse_repo(char const * arg)
} }
int int
parse_command(char const * command,
const char * arg /* NULLABLE */)
{
/* I know. */
#define COMMAND(cmd,fn) if (strcmp(command,cmd) == 0) { return fn(arg); } else
COMMAND("remind", parse_remind)
COMMAND("set_repo", parse_repo)
/* COMMAND("raw", sql_execute?) */
/* COMMAND("post", parse_post) */
/* COMMAND("prune", parse_prune) */
/* COMMAND("search", parse_search) */
/* COMMAND("list", parse_list) */
{ ERR(1,"No such command.\n"); }
#undef COMMAND
}
int
parse_creds(creds_t * creds, parse_creds(creds_t * creds,
char const * creds_file) char const * creds_file)
{ {