diff options
Diffstat (limited to 'render.awk')
-rw-r--r-- | render.awk | 115 |
1 files changed, 115 insertions, 0 deletions
diff --git a/render.awk b/render.awk new file mode 100644 index 0000000..db97f47 --- /dev/null +++ b/render.awk @@ -0,0 +1,115 @@ + +function info_line(name, sel, host, port, dst){ + printf("[i|%s|%s|%s|%s]\r\n", name, sel, host, port) > dst; +} + +function show_link(l, i, dst){ + + if(l[i,"Category"] == "") + print "Uncategorised link:", l[i,"Selector"] > /dev/stderr; + else{ + printf("[1|%s|%s|%s|%s]\r\n", l[i,"LinkName"], l[i,"Selector"], l[i,"Host"], l[i,"Port"] ) > dst; + info_line(l[i,"Description"],"Err", HOST, PORT, dst); + info_line("", "Err", HOST, PORT, dst); + } + +} + + +function show_category_link(category, i, dst){ + printf("[1|%s|%s|%s|%s]\r\n", category[i,"LinkName"], category[i,"Selector"], category[i,"Host"], category[i,"Port"]) > dst; +} + + + +function get_parents(a){ + delete pars; + split(a, pars, /[:blank:]*,[:blank:]*/); + for (k in pars){ + gsub(/ +/, "", pars[k]); + #printf("%d: %s\n", k, pars[k]); + } + +} + +function category_in_parents(category, i){ + + get_parents(category[i,"Parent"]); + for (p in pars){ + #printf("pars[%d]: %s\n", p, pars[p]); + if (pars[p]!="none"){### this is the root page + f = pars[p]; + ##print "cfiles[pars[p]]:", cfiles[f]; + show_category_link(category, i, cfiles[f]); + } + } +} + +function category_header(category, i, dst){ + info_line(category[i,"Title"], "Err", HOST, PORT, dst); + info_line("", "Err", HOST, PORT, dst); + info_line("Categories:", "Err", HOST, PORT, dst); +} + +function get_link_categories(a){ + delete cats; + split(a, cats, /[:blank:]*,[:blank:]*/); + for (k in cats){ + gsub(/ +/, "", cats[k]); + } +} + +######################################## + + +function render_init(){ + +} + + +function render_categories(category, cnum, link, lnum){ + for (i=1; i<=cnum; i++){ + cname=category[i,"Name"]; + #print "'" cname "'"; + cfiles[cname]=BASEDIR category[i,"Selector"]; + #print cname ":" cfiles[cname]; + cmd=sprintf("rm -f %s", cfiles[cname]); + system(cmd); + category_header(category, i, cfiles[cname]); + category_in_parents(category, i); + } +} + +function render_post_categories(category, cnum){ + + for(i=1;i<=cnum; i++){ + info_line("_______________", "Err", HOST, PORT, cfiles[category[i,"Name"]]); + info_line("Links:", "Err", HOST, PORT, cfiles[category[i,"Name"]]); + } + +} + + +function render_links(category, cnum, link, lnum){ + + for (i=1;i<=lnum;i++){ + get_link_categories(link[i,"Category"]); + for (c in cats){ + if (cfiles[cats[c]]!=""){ + show_link(link, i, cfiles[cats[c]]); + } + } + } +} + + +function render_finalise(category, cnum, link, lnum){ + + for(i=1;i<=cnum; i++){ + info_line("_______________", "Err", HOST, PORT, cfiles[category[i,"Name"]]); + printf("[1|%s|%s|%s|%s]\r\n", "Back to the lawn", ROOTSEL, HOST, PORT ) > cfiles[category[i,"Name"]]; + info_line("Links:", "Err", HOST, PORT, cfiles[category[i,"Name"]]); + } + + +} |