mirror of
https://github.com/nasa/fpp.git
synced 2025-12-14 18:43:51 -06:00
52 lines
963 B
Awk
52 lines
963 B
Awk
#!/usr/bin/env awk -f
|
|
|
|
# ----------------------------------------------------------------------
|
|
# extract.awk
|
|
# ----------------------------------------------------------------------
|
|
|
|
BEGIN {
|
|
if (mode == "") mode = "ok"
|
|
if (mode != "ok" && mode != "err") {
|
|
print "extract.awk: invalid mode " mode > "/dev/stderr"
|
|
exit 1
|
|
}
|
|
OUTSIDE = 0
|
|
HEADER = 1
|
|
BODY = 2
|
|
state = outside
|
|
num_lines = 0
|
|
start_line = 0
|
|
}
|
|
|
|
state == OUTSIDE && /\[source,fpp\]/ {
|
|
start_line = NR
|
|
state = HEADER
|
|
next
|
|
}
|
|
|
|
state == HEADER && $1 ~ "^----" {
|
|
if (mode == "ok" && length($1) == 4)
|
|
state = BODY
|
|
else if (mode == "err" && length($1) > 4)
|
|
state = BODY
|
|
else state = OUTSIDE
|
|
next
|
|
}
|
|
|
|
state == BODY && $1 ~ "^----" {
|
|
path = path_prefix start_line ".fpp"
|
|
printf("") > path
|
|
for (i = 1; i <= num_lines; ++i)
|
|
print lines[i] >> path
|
|
close(path)
|
|
state = OUTSIDE
|
|
num_lines = 0
|
|
next
|
|
}
|
|
|
|
state == BODY {
|
|
lines[++num_lines] = $0
|
|
next
|
|
}
|
|
|