xref: /plan9/sys/src/9/port/mkbootrules (revision dc5a79c1208f0704eeb474acc990728f8b4854f5)
16a9fc400SDavid du Colombier#!/bin/rc
26a9fc400SDavid du Colombier
3*dc5a79c1SDavid du Colombierrfork e
4*dc5a79c1SDavid du Colombierif(~ $#CONF 0)
5*dc5a79c1SDavid du Colombier	CONF=$1
6*dc5a79c1SDavid du Colombierawk -v 'objtype='$objtype -v 'CONF='$CONF '
7*dc5a79c1SDavid du ColombierBEGIN { nfs = 0 }
86a9fc400SDavid du Colombier/^$/{
96a9fc400SDavid du Colombier	next;
106a9fc400SDavid du Colombier}
116a9fc400SDavid du Colombier/^#/{
126a9fc400SDavid du Colombier	next;
136a9fc400SDavid du Colombier}
146a9fc400SDavid du Colombiercollect && /^[^ \t]/{
156a9fc400SDavid du Colombier	collect = 0;
166a9fc400SDavid du Colombier}
176a9fc400SDavid du Colombiercollect && section ~ "bootdir" {
18*dc5a79c1SDavid du Colombier	if(NF >= 2)
19*dc5a79c1SDavid du Colombier		x = $2;
20*dc5a79c1SDavid du Colombier	else{
21*dc5a79c1SDavid du Colombier		x = $1;
22*dc5a79c1SDavid du Colombier		sub(/.*\//, "", x);
23*dc5a79c1SDavid du Colombier	}
24*dc5a79c1SDavid du Colombier	fsname[nfs] = x;
256a9fc400SDavid du Colombier	x = $1;
266a9fc400SDavid du Colombier	gsub(/[^a-zA-Z0-9_]/, "_", x);
27*dc5a79c1SDavid du Colombier	fs[nfs] = x;
28*dc5a79c1SDavid du Colombier	file[nfs] = $1;
29*dc5a79c1SDavid du Colombier	nfs++;
306a9fc400SDavid du Colombier}
316a9fc400SDavid du Colombier$0 ~ /^[^ \t]/{
326a9fc400SDavid du Colombier	if($0 ~ "bootdir"){
336a9fc400SDavid du Colombier		section = $0;
346a9fc400SDavid du Colombier		collect = 1;
356a9fc400SDavid du Colombier	}
366a9fc400SDavid du Colombier	next;
376a9fc400SDavid du Colombier}
386a9fc400SDavid du Colombier
39*dc5a79c1SDavid du ColombierEND{
40*dc5a79c1SDavid du Colombier	printf "%s.root.s:D:", CONF;
41*dc5a79c1SDavid du Colombier	for(i=0; i<nfs; i++)
42*dc5a79c1SDavid du Colombier		printf " %s", file[i];
43*dc5a79c1SDavid du Colombier	printf "\n";
44*dc5a79c1SDavid du Colombier	printf "\t../port/mkrootall \\\n";
45*dc5a79c1SDavid du Colombier	for(i=0; i<nfs; i++)
46*dc5a79c1SDavid du Colombier		printf "\t\t%s %s %s\\\n", fsname[i], fs[i], file[i];
47*dc5a79c1SDavid du Colombier	printf "\t>$target\n";
48*dc5a79c1SDavid du Colombier
49*dc5a79c1SDavid du Colombier	printf "%s.rootc.c:D:", CONF;
50*dc5a79c1SDavid du Colombier	for(i=0; i<nfs; i++)
51*dc5a79c1SDavid du Colombier		printf " %s", file[i];
52*dc5a79c1SDavid du Colombier	printf "\n";
53*dc5a79c1SDavid du Colombier	printf "\t../port/mkrootc \\\n";
54*dc5a79c1SDavid du Colombier	for(i=0; i<nfs; i++)
55*dc5a79c1SDavid du Colombier		printf "\t\t%s %s %s\\\n", fsname[i], fs[i], file[i];
56*dc5a79c1SDavid du Colombier	printf "\t>$target\n";
57*dc5a79c1SDavid du Colombier}
58*dc5a79c1SDavid du Colombier
596a9fc400SDavid du Colombier' $*
60