From 160009d5ba3ab74b0e18c22019cdddc8920f0bad Mon Sep 17 00:00:00 2001
From: Philip Sargent <philip.sargent@klebos.com>
Date: Wed, 26 Oct 2022 00:16:59 +0100
Subject: [PATCH] Outdated scripts moved from loser repo

---
 scripts/old_or_unused/check-refs.awk | 109 +++++++++++++++++++++++++++
 scripts/old_or_unused/check-refs.sh  |  27 +++++++
 scripts/old_or_unused/check-svx.sh   |  66 ++++++++++++++++
 3 files changed, 202 insertions(+)
 create mode 100644 scripts/old_or_unused/check-refs.awk
 create mode 100644 scripts/old_or_unused/check-refs.sh
 create mode 100644 scripts/old_or_unused/check-svx.sh

diff --git a/scripts/old_or_unused/check-refs.awk b/scripts/old_or_unused/check-refs.awk
new file mode 100644
index 000000000..0122124f4
--- /dev/null
+++ b/scripts/old_or_unused/check-refs.awk
@@ -0,0 +1,109 @@
+#!/bin/awk
+# Checks that *ref in .svx files link to valid surveyscans folders
+# Assumes that svx-refs has been generated.
+# usage:
+# cd /loser/
+# ./check-refs.sh 
+#
+# 2020-04-05 Philip Sargent
+#
+# Does not check whether move than one svx file points at the same wallet (might be real)
+# Does not check whether more than one wallet json points to the same svx file (an error)
+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 {
+    walltag = "[1-2][0-9][0-9][0-9]#X?[0-9][0-9]"
+    ss ="/home/expo/expofiles/surveyscans/"
+    ssurl ="expofiles/surveyscans/"
+    svxurl ="survexfile/"
+    }
+$2 ~ walltag {
+    svxfile = $1
+    urlsvxfile = svxurl svxfile
+    year = substr($2,0,4)
+    wallet = $2
+    walldir = year "/" wallet
+    path = ss year "/" wallet
+    json = path "/contents.json"
+    urljson = ssurl year "/"  year "%23" substr(wallet,6,length(wallet))  "/contents.json"
+    #printf("%s :: ", wallet)
+    included =""
+    if ($NF ~ "INCLUDE") {
+        included = "(*includes " $(NF-1) " )"
+    }
+           
+    if (system("test -d " path)!=0) {
+        printf("Missing WALLET %s <a href=\"%s\">%s</a>\n", walldir, urlsvxfile, svxfile) > "svx-refs.tmp"
+        print "mkdir ", path > "svx-refs.tmp"
+    } else if (system("test -f " json)!=0) {
+        print "Missing JSON  ", walldir, $1 > "svx-refs.tmp"
+        print "cp -p " ss "template.json ", json > "svx-refs.tmp"
+    } else if (system("test -s " json)!=0) {
+        print "Zerolength JSON  ", walldir, $1 > "svx-refs.tmp"
+        # copy an empty template  into it
+        print "cp -p " ss "template.json ", json > "svx-refs.tmp"
+    } else if (system("grep \"survex file\" " json ">> grep.txt")!=0 ) { 
+            print "CORRUPT json  - missing survex file line",walldir, $1 > "svx-refs.tmp"
+    } else {
+        # Now scan the content.json file and look for the reference to the svx file
+        i=0
+        jline[0]=""
+        for (k in jline ) delete jline[k]
+        while (getline line <json > 0) {
+            n=gsub(/\"/,"",line) # " syntax colouring bad in VS code for awk
+            i += 1
+            jline[i]=line
+            result="working"
+            if (line ~ /survex file/) { 
+                result="survexline"
+                n = split(line,arr,":")
+                jsonsvx = trim(arr[n])
+                n=gsub(/,$/,"",jsonsvx) # if it is the last field then no comma
+                urljsonsvx = svxurl jsonsvx
+                #printf("[%s] {%s} ",jsonsvx, urljsonsvx)
+                if (jsonsvx == "") {
+                    print "UNSET json  ", walldir, $1 > "svx-refs.tmp"
+                    printf("sed -i '/survex file/ s;\"\";\"%s\";' %s\n",svxfile, json) > "svx-refs.tmp"
+                    printf("%s :: ", wallet)
+                    printf("UNSET - json field blank\nsvx :%s:\n",svxfile)
+                    result="unset"
+                    #break # behaves like next not break
+                } else if (jsonsvx  == svxfile ) {
+                    printf("<a href=\"%s\">%s</a> :: ", urljson,wallet) > "ok.tmp"
+                    printf("OK - svx filenames match - <a href='%s'>%s</a>\n",urljsonsvx,jsonsvx) > "ok.tmp"
+                    result="ok"
+                    #break # behaves like next not break
+                } else  { 
+                    printf("%s :: ", wallet)
+                    printf("MISMATCH <a href='%s'>%s</a> <-svx  <a href=\"%s\">%s</a> %s\nMISMATCH <a href=\"%s\">%s</a> json-> <a href='%s'>%s</a>\n",urljson,wallet,urlsvxfile,svxfile,included,urljson,wallet,urljsonsvx,jsonsvx) > "svx-refs.tmp"
+                    result="mismatch"
+                    #break # behaves like next not break
+                }
+                if (result =="survexline") {
+                    printf("%s + FAILTOSET ", wallet)
+                } else {
+                    # printf("%s + SET =%s= ", wallet, result)
+                }
+            } else {
+                # This wasn't the right line, read the next one..
+            }
+        } # end of look going through a json file, result should be ok, mismatch or unset
+        if (result=="working") {
+            # as expected if there are lines after the survex line in the json file
+        } else if (result=="survexline") {
+            # the last line in the json was the survex line but failed to set to ok, mismatch or unset
+            printf("%s :: FAILTOSET %s\n", wallet, jsonsvx)
+            #system("cat " json)
+            #for (i in jline ) printf("%s %s\n",i,jline[i])
+        } else {
+            printf("%s :: BIZARRE\n", wallet)
+            #printf("%s :: BIZZARE should not get here\n", wallet) > "svx-refs.tmp"              
+            #system("cat " json)
+            #for (i in jline ) printf("%s %s\n",i,jline[i])
+        } 
+    } # end of test for missing or empty path or json file
+} # end of test for matching a wallet tag
+END {
+
+}
diff --git a/scripts/old_or_unused/check-refs.sh b/scripts/old_or_unused/check-refs.sh
new file mode 100644
index 000000000..790582f86
--- /dev/null
+++ b/scripts/old_or_unused/check-refs.sh
@@ -0,0 +1,27 @@
+#!/bin/sh
+# Checks that *ref in .svx files link to valid surveyscans folders
+# Assumes that svx-refs has been generated.
+# usage:
+# cd /loser/
+# ./check-refs.sh 
+#
+# 2020-04-06 Philip Sargent
+#
+# 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
+#
+awk -f check-refs.awk svx-refs 
+sort < ok.tmp > svx-refs.ok
+rm ok.tmp
+sort < svx-refs.tmp > svx-refs.err
+rm svx-refs.tmp
+echo "<html><head><meta name="keywords" content="NOEDIT"></head><body><pre>"  >../expoweb/svx-refs.err.html
+cat svx-refs.err                      >>../expoweb/svx-refs.err.html
+echo "</pre><div id="menu"><ul id="links">&nbsp;</ul></div></body></html>"           >>../expoweb/svx-refs.err.html
+echo "<html><head><meta name="keywords" content="NOEDIT"></head><body><pre>"  >../expoweb/svx-refs.ok.html
+cat svx-refs.ok                       >>../expoweb/svx-refs.ok.html
+echo "</pre><div id="menu"><ul id="links">&nbsp;</ul></div></body></html>"           >>../expoweb/svx-refs.ok.html
+
+if test -s svx-refs.err ; then true ; else rm svx-refs.err ; fi
diff --git a/scripts/old_or_unused/check-svx.sh b/scripts/old_or_unused/check-svx.sh
new file mode 100644
index 000000000..72c0e29a1
--- /dev/null
+++ b/scripts/old_or_unused/check-svx.sh
@@ -0,0 +1,66 @@
+#!/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