added cli parsing functions
This commit is contained in:
parent
5b284899ea
commit
7cb6f902b6
8
makefile
8
makefile
@ -22,3 +22,11 @@ clean:
|
|||||||
.PHONY: uninstall
|
.PHONY: uninstall
|
||||||
uninstall:
|
uninstall:
|
||||||
rm /usr/local/bin/ics_analyzer
|
rm /usr/local/bin/ics_analyzer
|
||||||
|
|
||||||
|
.PHONY: test
|
||||||
|
test:
|
||||||
|
./a.out
|
||||||
|
@echo
|
||||||
|
./a.out -h
|
||||||
|
@echo
|
||||||
|
./a.out -f tests/calendar.ics
|
||||||
|
41
src/cli_arg_parsing.c
Normal file
41
src/cli_arg_parsing.c
Normal file
@ -0,0 +1,41 @@
|
|||||||
|
#include "cli_arg_parsing.h"
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <stdlib.h>
|
||||||
|
#include <unistd.h>
|
||||||
|
#include <string.h>
|
||||||
|
|
||||||
|
void usage() {
|
||||||
|
printf ("-h\tprint this help\n");
|
||||||
|
printf ("-f\tspecify ics file path\n");
|
||||||
|
exit(0);
|
||||||
|
}
|
||||||
|
|
||||||
|
void get_cli_args(int argc, char **argv, char **file_name) {
|
||||||
|
int opt = 0;
|
||||||
|
|
||||||
|
memset(file_name, '\0', strlen(*file_name));
|
||||||
|
|
||||||
|
if (argc < 2) {
|
||||||
|
char *home = getenv("HOME");
|
||||||
|
*file_name = home;
|
||||||
|
|
||||||
|
if (home != NULL) {
|
||||||
|
strcat(*file_name, "/.local/share/evolution/calendar/system/calendar.ics");
|
||||||
|
} else {
|
||||||
|
printf ("Environment variable HOME is not set.\n");
|
||||||
|
exit(1);
|
||||||
|
}
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
while ((opt = getopt(argc, argv, "f:h")) != -1) {
|
||||||
|
switch(opt) {
|
||||||
|
case 'f':
|
||||||
|
*file_name = optarg;
|
||||||
|
break;
|
||||||
|
case 'h':
|
||||||
|
usage();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
5
src/cli_arg_parsing.h
Normal file
5
src/cli_arg_parsing.h
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
#pragma once
|
||||||
|
|
||||||
|
void usage();
|
||||||
|
|
||||||
|
void get_cli_args(int argc, char **argv, char **file_name);
|
17
src/main.c
17
src/main.c
@ -1,3 +1,4 @@
|
|||||||
|
#include "cli_arg_parsing.h"
|
||||||
#include "date_time_handling.h"
|
#include "date_time_handling.h"
|
||||||
#include "list_handling.h"
|
#include "list_handling.h"
|
||||||
#include "cut_string.h"
|
#include "cut_string.h"
|
||||||
@ -12,21 +13,13 @@
|
|||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include <limits.h>
|
#include <limits.h>
|
||||||
|
|
||||||
int main() {
|
int main(int argc, char **argv) {
|
||||||
//const char ICS_PATH[] = "tests/calendar.ics";
|
char *ics_path = "";
|
||||||
char *ICS_PATH;
|
get_cli_args(argc, argv, &ics_path);
|
||||||
char *HOME = getenv("HOME");
|
|
||||||
|
|
||||||
if (HOME != NULL) {
|
|
||||||
ICS_PATH = strcat(HOME, "/.local/share/evolution/calendar/system/calendar.ics");
|
|
||||||
} else {
|
|
||||||
printf ("Environment variable HOME is not set.\n");
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
char my_line[4096] = "";
|
char my_line[4096] = "";
|
||||||
|
|
||||||
int myfd = open(ICS_PATH, O_RDONLY);
|
int myfd = open(ics_path, O_RDONLY);
|
||||||
if (myfd == -1) {
|
if (myfd == -1) {
|
||||||
perror ("Error opening file");
|
perror ("Error opening file");
|
||||||
return 1;
|
return 1;
|
||||||
|
Loading…
Reference in New Issue
Block a user