Add separate flag for generate-static overwrite

Previous implementation allowed static files to overwrite existing files
on generate if static-dir was specified and generate-enable-overwrite
was specified. Now, an additional flag
"--generate-static-enable-overwrite" determines if static-dir files
overwrite on generate.
This commit is contained in:
Stephen Seo 2024-11-25 14:17:32 +09:00
parent 8e58873ea9
commit a467cceb90
4 changed files with 7 additions and 3 deletions

View file

@ -46,6 +46,7 @@ void print_usage(void) {
puts(" --enable-static-dir=<DIR>");
puts(" --generate-dir=<DIR>");
puts(" --generate-enable-overwrite");
puts(" --generate-static-enable-overwrite");
}
Args parse_args(int32_t argc, char **argv) {
@ -189,6 +190,8 @@ Args parse_args(int32_t argc, char **argv) {
}
} else if (strcmp(argv[0], "--generate-enable-overwrite") == 0) {
args.flags |= 4;
} else if (strcmp(argv[0], "--generate-static-enable-overwrite") == 0) {
args.flags |= 8;
} else {
fprintf(stderr, "ERROR: Invalid args!\n");
print_usage();

View file

@ -29,6 +29,7 @@ typedef struct Args {
// xxxx xx0x - disable listen on config file for reloading.
// xxxx xx1x - enable listen on config file for reloading.
// xxxx x1xx - enable overwrite on generate.
// xxxx 1xxx - enable overwrite on generate for static dir.
uint16_t flags;
uint16_t port;
// Does not need to be free'd, this should point to a string in argv.

View file

@ -363,7 +363,7 @@ int main(int argc, char **argv) {
puts("Static dir option specified, copying over static dir entries...");
if (c_simple_http_static_copy_over_dir(args.static_dir,
args.generate_dir,
(args.flags & 4) != 0 ? 1 : 0)
(args.flags & 8) != 0 ? 1 : 0)
!= 0) {
fprintf(stderr, "ERROR during static-dir-entires copying!\n");
return 1;

View file

@ -421,8 +421,8 @@ int c_simple_http_static_copy_over_dir(const char *from,
if (fd) {
fprintf(
stderr,
"WARNING \"%s\" already exists and --generate-enable-overwrite not "
"specified, skipping!\n",
"WARNING \"%s\" already exists and "
"--generate-static-enable-overwrite not specified, skipping!\n",
combined_to);
continue;
}