NetBSD/etc/mtree/mkcompattree.awk

33 lines
536 B
Awk

BEGIN { split(COMPATDIRS, dirs); n = 1; last_prefix = "" }
/^#/ { print; }
{
if (NF > 0) {
pos = index($0, S);
if (pos == 0) {
print;
next;
}
prefix = substr($0, 1, pos)
if (prefix != last_prefix) {
for (d in dirs) {
for (f = 1; f < n; f++) {
x=files[f]; sub(S, S "/" dirs[d], x);
print x;
}
}
delete files;
n = 1;
last_prefix = prefix;
}
files[n++] = $0;
}
next
}
END {
for (d in dirs) {
for (f = 1; f < n; f++) {
x=files[f]; sub(S, S "/" dirs[d], x); print x;
}
}
}