diff options
-rw-r--r-- | data.c | 8 | ||||
-rw-r--r-- | snac.h | 1 | ||||
-rw-r--r-- | utils.c | 24 |
3 files changed, 27 insertions, 6 deletions
@@ -156,6 +156,14 @@ int srv_open(const char *basedir, int auto_upgrade) /* read (and drop) emojis.json, possibly creating it */ xs_free(emojis()); + /* if style.css does not exist, create it */ + xs *css_fn = xs_fmt("%s/style.css", srv_basedir); + + if (mtime(css_fn) == 0) { + srv_log(xs_fmt("Writing style.css")); + write_default_css(); + } + return ret; } @@ -347,6 +347,7 @@ int html_post_handler(const xs_dict *req, const char *q_path, char **body, int *b_size, char **ctype); xs_str *timeline_to_rss(snac *user, const xs_list *timeline, char *title, char *link, char *desc); +int write_default_css(void); int snac_init(const char *_basedir); int adduser(const char *uid); int resetpwd(snac *snac); @@ -107,6 +107,22 @@ static const char *greeting_html = "<p>This site is powered by <abbr title=\"Social Networks Are Crap\">snac</abbr>.</p>\n" "</body></html>\n"; + +int write_default_css(void) +{ + FILE *f; + + xs *sfn = xs_fmt("%s/style.css", srv_basedir); + if ((f = fopen(sfn, "w")) == NULL) + return 1; + + fwrite(default_css, strlen(default_css), 1, f); + fclose(f); + + return 0; +} + + int snac_init(const char *basedir) { FILE *f; @@ -217,15 +233,11 @@ int snac_init(const char *basedir) fwrite(gh, strlen(gh), 1, f); fclose(f); - xs *sfn = xs_fmt("%s/style.css", srv_basedir); - if ((f = fopen(sfn, "w")) == NULL) { - printf("ERROR: cannot create '%s'\n", sfn); + if (write_default_css()) { + printf("ERROR: cannot create style.css\n"); return 1; } - fwrite(default_css, strlen(default_css), 1, f); - fclose(f); - xs *cfn = xs_fmt("%s/server.json", srv_basedir); if ((f = fopen(cfn, "w")) == NULL) { printf("ERROR: cannot create '%s'\n", cfn); |