appname = housecat | appname = housecat | ||||
build: | build: | ||||
gcc -O3 -o $(appname) src/*.c -std=c99 | |||||
gcc -O3 -o $(appname) src/*.c -std=c99 -D_XOPEN_SOURCE=700 | |||||
debug: | debug: | ||||
gcc -o $(appname) src/*.c -std=c99 -DDEBUG=1 | |||||
gcc -o $(appname) src/*.c -std=c99 -DDEBUG=1 -D_XOPEN_SOURCE=700 | |||||
install: | install: | ||||
mv $(appname) /usr/bin/$(appname) | mv $(appname) /usr/bin/$(appname) |
cms_err* cms_build_make_tree(cms_page* root, char* path, char* dirname) | cms_err* cms_build_make_tree(cms_page* root, char* path, char* dirname) | ||||
{ | { | ||||
DIR* dp = opendir(path); | |||||
if (dp == NULL) | |||||
struct dirent** namelist; | |||||
int n = scandir(path, &namelist, 0, alphasort); | |||||
if (n == -1) | |||||
return cms_err_from_std_err(errno); | return cms_err_from_std_err(errno); | ||||
struct dirent* ep; | struct dirent* ep; | ||||
if (st == NULL) | if (st == NULL) | ||||
return cms_err_create(CMS_ERR_ALLOC, NULL); | return cms_err_create(CMS_ERR_ALLOC, NULL); | ||||
while (ep = readdir(dp)) | |||||
for (int i = 0; i < n; ++i) | |||||
{ | { | ||||
ep = namelist[i]; | |||||
if (ep->d_name[0] == '.') | if (ep->d_name[0] == '.') | ||||
continue; | continue; | ||||
free(entpath); | free(entpath); | ||||
} | } | ||||
closedir(dp); | |||||
free(st); | free(st); | ||||
free(namelist); | |||||
return cms_err_create(CMS_ERR_NONE, NULL); | return cms_err_create(CMS_ERR_NONE, NULL); | ||||
} | } |
#include "cms_page.h" | #include "cms_page.h" | ||||
#include "cms_build.h" | #include "cms_build.h" | ||||
//Temporary, for testing purposes | |||||
static void print_page_tree(cms_page* page) | |||||
{ | |||||
printf("Page: %s\n", page->title); | |||||
//Loop over posts | |||||
size_t i; | |||||
for (i = 0; i < page->numposts; ++i) | |||||
{ | |||||
printf("\tPost: %s\n", (page->posts[i]).title); | |||||
} | |||||
//Loop over subs | |||||
for (i = 0; i < page->numsubs; ++i) | |||||
{ | |||||
print_page_tree(&page->subs[i]); | |||||
} | |||||
printf("---------\n"); | |||||
} | |||||
int main(int argc, char** argv) | int main(int argc, char** argv) | ||||
{ | { | ||||
if (argc < 2) | if (argc < 2) | ||||
free(path); | free(path); | ||||
if (err) | if (err) | ||||
cms_err_panic(err); | cms_err_panic(err); | ||||
print_page_tree(root); | |||||
} | } | ||||
//Nothing, print usage | //Nothing, print usage |