forb

Log

Files

Refs

README

LICENSE

simpleTemplates.c (1457B)

     1 #include "libsheepyObject.h"
     2 
     3 bool simpleTemplatesInsertFiles(char *templ, char *dst, smallDictt *keyFiles) {
     4         if (!fileExists(templ)) {
     5                 return false;
     6         }
     7 
     8         // load templates
     9         createAllocateSmallArray(template);
    10         readFileG(template, templ);
    11         //logVarG(template);
    12 
    13         forEachSmallDict(keyFiles, k, V) {
    14                 castS(v, V);
    15                 smallStringt *path = dupG(v);
    16                 expandHomeG(path);
    17                 if (!fileExistsG(path)) {
    18                         printf("File for key %s not found: %s\n", k, ssGet(v));
    19                         return false;
    20                 }
    21                 createAllocateSmallString(s);
    22                 readFileG(s, ssGet(path));
    23                 terminateG(path);
    24                 if (getG(s, unusedV , -1) == '\n') {
    25                         setG(s, -1, 0);
    26                 }
    27                 setG(keyFiles, k, s);
    28                 finishG(v);
    29         }
    30         listFreeS(libsheepyInternalKeys);
    31 
    32         char **keys = keysG(keyFiles);
    33 
    34         enumerateSmallArray(template, L, i) {
    35                 castS(l, L);
    36                 forEachS(keys, k) {
    37                         smallStringt *s = getG(keyFiles, rtSmallStringt, k);
    38                         replaceSO_max(l, k, ssGet(s));
    39                         finishG(s);
    40                 }
    41                 setPG(template, i, l);
    42                 finishG(l);
    43         }
    44         freeG(keys);
    45 
    46         //logVarG(template);
    47 
    48         writeFileG(template, dst);
    49 
    50         terminateG(template);
    51         return true;
    52 }
    53 
    54 
    55 
    56 
    57 bool simpleTemplatesReplaceKeysWithValues(smallArrayt *index, smallDictt *pageValues) {
    58         iter(index, L) {
    59                 castS(l, L);
    60                 iterK(pageValues, k) {
    61                         replaceG(l, k, getG(pageValues, rtChar, k), 0);
    62                 }
    63                 setPG(index, iterIndexG(index), l);
    64         }
    65 }
    66 
    67 
    68 
    69 
    70 
    71 bool checkLibsheepyVersionSimpleTemplates(const char *currentLibsheepyVersion) {
    72   return eqG(currentLibsheepyVersion, LIBSHEEPY_VERSION);
    73 }