chiark / gitweb /
where-vessels: WIP argument parsing; library load changes
[ypp-sc-tools.web-live.git] / yarrg / where-vessels
index f7bbef6b728234ffdd5ed70699215ba2041f9a42..50c38b3595e0f399ba4f8e61590bb06136bba099 100755 (executable)
@@ -1,19 +1,40 @@
 #!/usr/bin/wish
 
-pkg_mkIndex .
-set auto_path [concat . $auto_path]
+source yarrglib.tcl
+source panner.tcl
 
-package require panner
+set pirate { }
 
-set us Aristarchus
+proc badusage {m} {
+    puts stderr "where-vessels: bad usage: $m"
+    exit 1
+}
 
-proc manyset {list args} {
-    foreach val $list var $args {
-        upvar 1 $var my
-        set my $val
+set ai 0
+proc nextarg {} {
+    global ai argv
+    if {$ai >= [llength $argv]} {
+       badusage "option [lindex $argv [expr {$ai-1}]] needs a value"
     }
+    set v [lindex $argv $ai]
+    incr ai
+    return $v
 }
 
+while {[regexp {^\-} [set arg [lindex $argv $ai]]]} {
+    incr ai
+    switch -exact -- $arg {
+       -- { break }
+       --pirate { set pirate [string totitle [nextarg]] }
+       --ocean { set ocean [string totitle [nextarg]] }
+       --clipboard-file { set clipboard_file [nextarg] }
+       --notes { set notes_loc [nextarg] }
+       default { badusage "unknown option $arg" }
+    }
+}
+set argv [lrange $argv $ai end]
+if {[llength $argv]} { badusage "non-option args not allowed" }
+    
 set itemre { (\w+) = ([^=]*) }
 set manyitemre "^\\\[ $itemre ( (?: ,\\ $itemre)* ) \\]\$"
 puts $manyitemre
@@ -29,7 +50,7 @@ while {[gets $vn l] >= 0} {
 close $vn
 
 proc vessel {vin} {
-       global us
+       global pirate
        upvar #0 $vin vi
        switch -exact $vi(vesselClass) {
                smsloop         { set sz 00sl }
@@ -66,7 +87,7 @@ proc vessel {vin} {
        upvar #0 notes($nk) note
        if {[info exists note]} {
                manyset $note owner xabbrev
-               if {![string compare $owner $us]} {
+               if {![string compare $owner $pirate]} {
                        append abbrev =
                } else {
                        append abbrev -