summaryrefslogtreecommitdiff
path: root/render.awk
blob: db97f47073b703891e8f522b95d8f4a577f811e2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
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"]]);
	}
	

}