Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | cmdr::validate::common - Added commands to generate more specific error messages, while still general - From stackato client. Bumped version to 1.2. |
---|---|
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA1: |
8e18e110df650dfec0f8643dab886285 |
User & Date: | andreask 2014-04-16 19:46:22.879 |
Context
2014-04-22
| ||
06:56 | Merged branch back, making the channel v-types official. check-in: c7a27f1422 user: aku tags: trunk | |
06:55 | Merged trunk extensions. Closed-Leaf check-in: 6163942da7 user: aku tags: more-vtypes | |
2014-04-16
| ||
19:46 | cmdr::validate::common - Added commands to generate more specific error messages, while still general - From stackato client. Bumped version to 1.2. check-in: 8e18e110df user: andreask tags: trunk | |
2014-04-15
| ||
21:04 | Fixed multi-section help setup of the limit command. check-in: abb1eb8115 user: andreask tags: trunk | |
Changes
Changes to vcommon.tcl.
︙ | ︙ | |||
33 34 35 36 37 38 39 | namespace eval ::cmdr::validate { namespace export common namespace ensemble create } namespace eval ::cmdr::validate::common { | | > > > > | > > > | > > | > > > > > > | > | > > > > > > > > > > > > > > > > > > > > > > > > > > > > | | | < < > > | 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 | namespace eval ::cmdr::validate { namespace export common namespace ensemble create } namespace eval ::cmdr::validate::common { namespace export \ complete-enum complete-glob \ fail fail-unknown-thing fail-known-thing \ p-name lead-in namespace ensemble create } # # ## ### ##### ######## ############# ##################### debug define cmdr/validate/common debug level cmdr/validate/common debug prefix cmdr/validate/common {[debug caller] | } # # ## ### ##### ######## ############# ##################### ## Different forms of validation failure messages proc ::cmdr::validate::common::fail {p code type x {context {}}} { # Generic failure: "Expected foo, got x". debug.cmdr/validate/common {} append msg "Expected $type for [$p type] \"[p-name $p]\"$context," append msg " got \"$x\"" return -code error -errorcode [list CMDR VALIDATE {*}$code] $msg } proc ::cmdr::validate::common::fail-unknown-thing {p code type x {context {}}} { # Specific failure for a named thing: Expected existence, found it missing. debug.cmdr/validate/common {} append msg "Found a problem with [$p type] \"[p-name $p]\":" append msg " [lead-in $type] \"$x\" does not exist$context." append msg " Please use a different value." return -code error -errorcode [list CMDR VALIDATE {*}$code] $msg } proc ::cmdr::validate::common::fail-known-thing {p code type x {context {}}} { # Specific failure for a named thing: Expected non-existence, found a definition. debug.cmdr/validate/common {} append msg "Found a problem with [$p type] \"[p-name $p]\":" append msg " [lead-in $type] named \"$x\" already exists$context." append msg " Please use a different name." return -code error -errorcode [list CMDR VALIDATE {*}$code] $msg } # # ## ### ##### ######## ############# ##################### ## Support commands for construction of messages. proc ::cmdr::validate::common::lead-in {type} { if {[string match {A *} $type] || [string match {An *} $type]} { set lead {} } elseif {[string match {[aeiouAEIOU]*} $type]} { set lead {An } } else { set lead {A } } return $lead$type } proc ::cmdr::validate::common::p-name {p} { if {[$p type] eq "option"} { return [$p flag] } else { return [$p label] } } # # ## ### ##### ######## ############# ##################### proc ::cmdr::validate::common::complete-enum {choices nocase buffer} { # As a helper function for command completion printing anything # here would mix with the output of linenoise. Do that only on # explicit request (level 10). debug.cmdr/validate/common {} 10 |
︙ | ︙ | |||
105 106 107 108 109 110 111 | debug.cmdr/validate/common {= [join $candidates "\n= "]} 10 return $candidates } # # ## ### ##### ######## ############# ##################### ## Ready | | | 149 150 151 152 153 154 155 156 157 | debug.cmdr/validate/common {= [join $candidates "\n= "]} 10 return $candidates } # # ## ### ##### ######## ############# ##################### ## Ready package provide cmdr::validate::common 1.2 return |