X-Git-Url: http://lists.indexdata.com/cgi-bin?a=blobdiff_plain;f=shell.tcl;h=a6a1c926bca101539e5efcfdb04ec4266464a171;hb=35b50f2f119e882cd67f977bc02b7e9d15830c80;hp=5a9161aefd92848bb91a6a1a3136de4eec0da9d2;hpb=b7bac2322e7a6855f60d167509108eff3d21bd65;p=ir-tcl-moved-to-github.git diff --git a/shell.tcl b/shell.tcl index 5a9161a..a6a1c92 100644 --- a/shell.tcl +++ b/shell.tcl @@ -1,23 +1,61 @@ -# $Id: shell.tcl,v 1.1 1995-06-30 12:39:27 adam Exp $ +# $Id: shell.tcl,v 1.3 1996-08-21 11:24:03 adam Exp $ # source display.tcl -proc target {name database} { - ir z - z failback {puts "Connection failed"} +ir z +set pref(base) Default +set pref(format) usmarc + +proc help {} { + puts "Commands:" + puts " target " + puts " base " + puts " format " + puts " find " + puts " show " + puts "" +} + +proc fail-response {} { + global ok + set ok -1 +} +proc target {name} { + global ok pref + + set ok 0 + z disconnect + z failback {fail-response} z callback {connect-response} - z databaseNames $database - z connect $name + if [catch "z connect $name"] { + fail-response + } else { + vwait ok + } return {} } +proc base {base} { + global pref + set pref(base) $base +} + +proc format {format} { + global pref + set pref(format) $format +} + proc connect-response {} { z callback {init-response} z init } proc init-response {} { - puts "Connect and initalized. ok" + global ok pref + + set ok 1 + puts "Connected and initialized." + ir-set z.1 z } proc find-response {z} { @@ -32,15 +70,18 @@ proc find-response {z} { } proc common-response {z from} { - set status [lindex [$z responseStatus] 0] - switch $status { + global ok pref + + set ok 1 + set status [$z responseStatus] + switch [lindex $status 0] { NSD { puts -nonewline "NSD" - puts -nonewline [lindex [$z responseStatus] 1] + puts -nonewline [lindex $status 1] puts -nonewline " " - puts -nonewline [lindex [$z responseStatus] 2] + puts -nonewline [lindex $status 2] puts -nonewline ": " - puts -nonewline [lindex [$z responseStatus] 3] + puts -nonewline [lindex $status 3] puts "" } DBOSD { @@ -57,14 +98,24 @@ proc common-response {z from} { } proc show {from number} { + global ok pref + + set ok 0 z callback "common-response z.1 $from" z.1 present $from $number + vwait ok + return {} } proc find {query} { - ir-set z.1 z - z failback {puts "Connection closed"} + global ok pref + + set ok 0 + z.1 databaseNames $pref(base) + z.1 preferredRecordSyntax $pref(format) z callback {find-response z.1} z.1 search $query + vwait ok + return {} }