aboutsummaryrefslogtreecommitdiff
path: root/src/main.c
diff options
context:
space:
mode:
authordec05eba <dec05eba@protonmail.com>2020-07-14 06:55:18 +0200
committerdec05eba <dec05eba@protonmail.com>2020-07-14 06:55:18 +0200
commit94c45e3c4d185b3f0d70f0d2d761b72c6561e1b5 (patch)
tree7c3c06987f82f726422bda9e5de86172f60c3065 /src/main.c
parenta15d7ad07a5865f2f51e85d5e4e049922c50deec (diff)
Implement add_html
Diffstat (limited to 'src/main.c')
-rw-r--r--src/main.c18
1 files changed, 13 insertions, 5 deletions
diff --git a/src/main.c b/src/main.c
index 11b2a5d..bc554b5 100644
--- a/src/main.c
+++ b/src/main.c
@@ -4,6 +4,7 @@
#include "fileutils.h"
#include "stringutils.h"
#include "rss.h"
+#include "html.h"
#include "json.h"
#include <stdio.h>
@@ -12,6 +13,7 @@
#include <limits.h>
#include <dirent.h>
+#include <libgen.h>
#define NAME_MAX_LEN 250
@@ -136,8 +138,7 @@ static void data_file_get_downloaded(const char *dir_name, const char *data_file
}
cleanup:
- if(json_root)
- free(json_root);
+ free(json_root);
free(file_data);
}
@@ -185,7 +186,7 @@ static int compare_downloaded_item(const void *a, const void *b) {
return list_data_a->timestamp - list_data_b->timestamp;
}
-static void command_add(int argc, char **argv, char *rss_config_dir, char *html_config_dir) {
+static void command_add(int argc, char **argv, char *rss_config_dir, char *html_config_dir, char *program_dir) {
if(argc < 2)
usage_add();
@@ -246,7 +247,14 @@ static void command_add(int argc, char **argv, char *rss_config_dir, char *html_
if(add_rss(media_name, media_url, rss_config_dir, start_after) != 0)
exit(1);
} else if(strcmp(media_type, "html") == 0) {
- (void)html_config_dir;
+ int res = create_directory_recursive(html_config_dir);
+ if(res != 0) {
+ fprintf(stderr, "Failed to create %s, error: %s\n", html_config_dir, strerror(res));
+ exit(1);
+ }
+
+ if(add_html(media_name, media_url, html_config_dir, program_dir, start_after) != 0)
+ exit(1);
} else {
fprintf(stderr, "type should be either rss or html\n");
usage_add();
@@ -307,7 +315,7 @@ int main(int argc, char **argv) {
const char *command = argv[1];
if(strcmp(command, "add") == 0) {
- command_add(argc - 2, argv + 2, rss_config_dir, html_config_dir);
+ command_add(argc - 2, argv + 2, rss_config_dir, html_config_dir, dirname(argv[0]));
} else if(strcmp(command, "sync") == 0) {
command_sync(argc - 2, argv + 2);
} else if(strcmp(command, "downloaded") == 0) {