mirror of
https://expo.survex.com/repositories/expoweb/.git/
synced 2024-11-22 23:31:56 +00:00
67 lines
2.0 KiB
Bash
67 lines
2.0 KiB
Bash
|
#!/bin/sh
|
||
|
echo preparing table of svx *ref links to wallets
|
||
|
# Checks that *ref in .svx files link to valid surveyscans folders
|
||
|
# Just prepares the data as a table, does no error checking itself.
|
||
|
# The validation checking is done by check-refs.sh & check-refs.awk
|
||
|
# 2020-04-05 Philip Sargent
|
||
|
#
|
||
|
# usage:
|
||
|
# cd /loser/
|
||
|
# ./check-svx.sh
|
||
|
#
|
||
|
# To make this run in a cron job on the server, we need to do:
|
||
|
# 1. make the paths correct for the server in chk-refs.sh
|
||
|
# 2020-04-13
|
||
|
#
|
||
|
# Many formats used in svx files for *ref statements:
|
||
|
# ; ref.:
|
||
|
# ;ref.:
|
||
|
# ; Ref.:
|
||
|
# ; Ref.
|
||
|
# ; Referenz.:
|
||
|
# ;Referenz.:
|
||
|
# ; ref:
|
||
|
# ; ref
|
||
|
# *Ref
|
||
|
# *ref
|
||
|
# *ref
|
||
|
# *include galatica ; ref
|
||
|
# *ref 2040#31 ; (additonal comment....)
|
||
|
#
|
||
|
find . -name "*.svx" -type f -print0 | xargs -0 -n 1 awk '
|
||
|
function ltrim(s) { sub(/^[ \t\r\n]+/, "", s); return s } # remove leading whitespace
|
||
|
function rtrim(s) { sub(/[ \t\r\n]+$/, "", s); return s } # remove trailing whitespace
|
||
|
function trim(s) { return rtrim(ltrim(s)); }
|
||
|
BEGIN {
|
||
|
reftag = "^([ ]*[;]|[*])[ ]?[Rr]ef(erenz)?[.]?[ ]?[:]?"
|
||
|
spctag = "[1-2][0-9][0-9][0-9] #X?[0-9][0-9]"
|
||
|
walltag = "[1-2][0-9][0-9][0-9]#X?[0-9][0-9]"
|
||
|
inctag = "\\*include .*;[ ]*ref"
|
||
|
}
|
||
|
$0 ~ reftag {
|
||
|
gsub(reftag,"") # remove the *ref tag
|
||
|
$0=trim($0)
|
||
|
wallet=match($0,spctag) # matches 2014 #03
|
||
|
if (wallet != 0) {
|
||
|
$0=substr($0,0,wallet+3) substr($0,wallet+5,length($0)) # makes 2014#03
|
||
|
}
|
||
|
wallet=match($0,walltag) # matches 2014#X03
|
||
|
if (wallet != 0) { # insert a space after the wallet code
|
||
|
$0=substr($0,0,wallet+RLENGTH-1) " " substr($0,wallet+RLENGTH,length($0))
|
||
|
}
|
||
|
|
||
|
svxfile=ARGV[1]
|
||
|
print substr(svxfile,3,length(svxfile)), $0 # chop off the "./"
|
||
|
}
|
||
|
$0 ~ inctag { #Also references from *include statements:
|
||
|
$0=trim($0)
|
||
|
svxfile=ARGV[1]
|
||
|
svxfile = substr(svxfile,3,length(svxfile)) # chop off the "./"
|
||
|
wallet = $5
|
||
|
refsvxfile = $2
|
||
|
printf("%s %s %s INCLUDE\n",svxfile, wallet, refsvxfile)
|
||
|
}
|
||
|
END {
|
||
|
}
|
||
|
' > svx-refs
|