index_writer.c (931B)
1 #include "writer/gopher/index_writer.h" 2 3 #include <stdio.h> 4 #include <stdlib.h> 5 6 #include "git/repo.h" 7 #include "utils.h" 8 #include "writer/gopher/repo_index.h" 9 10 struct GopherIndexWriter { 11 GopherRepoIndex* index; 12 }; 13 14 GopherIndexWriter* gopher_indexwriter_create() { 15 GopherIndexWriter* writer = ecalloc(1, sizeof(GopherIndexWriter)); 16 FILE* out = stdout; 17 writer->index = gopher_repoindex_create(out); 18 return writer; 19 } 20 21 void gopher_indexwriter_free(GopherIndexWriter* writer) { 22 if (!writer) { 23 return; 24 } 25 gopher_repoindex_free(writer->index); 26 writer->index = NULL; 27 free(writer); 28 } 29 30 void gopher_indexwriter_begin(GopherIndexWriter* writer) { 31 gopher_repoindex_begin(writer->index); 32 } 33 34 void gopher_indexwriter_add_repo(GopherIndexWriter* writer, GitRepo* repo) { 35 gopher_repoindex_add_repo(writer->index, repo); 36 } 37 38 void gopher_indexwriter_end(GopherIndexWriter* writer) { 39 gopher_repoindex_end(writer->index); 40 }