fpp/docs/users-guide/scripts/extract.awk
2020-08-31 15:26:42 -07:00

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
}