Mercurial > hg > egg-tcls
annotate utillib.tcl @ 428:04021e2e26c3
utillib: Fix silly bugs.
author | Matti Hamalainen <ccr@tnsp.org> |
---|---|
date | Sun, 08 Jan 2017 04:15:50 +0200 |
parents | 84d3d7abeb8a |
children | 124b97f5a19d |
rev | line source |
---|---|
290
cad1041b5bc4
Revamp the utility functions library.
Matti Hamalainen <ccr@tnsp.org>
parents:
262
diff
changeset
|
1 ########################################################################## |
cad1041b5bc4
Revamp the utility functions library.
Matti Hamalainen <ccr@tnsp.org>
parents:
262
diff
changeset
|
2 # |
cad1041b5bc4
Revamp the utility functions library.
Matti Hamalainen <ccr@tnsp.org>
parents:
262
diff
changeset
|
3 # TCL functions library by Matti 'ccr' Hamalainen <ccr@tnsp.org> |
cad1041b5bc4
Revamp the utility functions library.
Matti Hamalainen <ccr@tnsp.org>
parents:
262
diff
changeset
|
4 # (C) Copyright 2015 Tecnic Software productions (TNSP) |
cad1041b5bc4
Revamp the utility functions library.
Matti Hamalainen <ccr@tnsp.org>
parents:
262
diff
changeset
|
5 # |
cad1041b5bc4
Revamp the utility functions library.
Matti Hamalainen <ccr@tnsp.org>
parents:
262
diff
changeset
|
6 # This script is freely distributable under GNU GPL (version 2) license. |
cad1041b5bc4
Revamp the utility functions library.
Matti Hamalainen <ccr@tnsp.org>
parents:
262
diff
changeset
|
7 # |
cad1041b5bc4
Revamp the utility functions library.
Matti Hamalainen <ccr@tnsp.org>
parents:
262
diff
changeset
|
8 ########################################################################## |
cad1041b5bc4
Revamp the utility functions library.
Matti Hamalainen <ccr@tnsp.org>
parents:
262
diff
changeset
|
9 |
cad1041b5bc4
Revamp the utility functions library.
Matti Hamalainen <ccr@tnsp.org>
parents:
262
diff
changeset
|
10 set utl_html_ent_str "-|-|'|'|—|-|‏||—|-|–|--|‪||‬|" |
cad1041b5bc4
Revamp the utility functions library.
Matti Hamalainen <ccr@tnsp.org>
parents:
262
diff
changeset
|
11 append utl_html_ent_str "|‎||å|å|Å|Å|é|é|:|:| | " |
cad1041b5bc4
Revamp the utility functions library.
Matti Hamalainen <ccr@tnsp.org>
parents:
262
diff
changeset
|
12 append utl_html_ent_str "|”|\"|“|\"|«|<<|»|>>|"|\"" |
cad1041b5bc4
Revamp the utility functions library.
Matti Hamalainen <ccr@tnsp.org>
parents:
262
diff
changeset
|
13 append utl_html_ent_str "|ä|ä|ö|ö|Ä|Ä|Ö|Ö|&|&|<|<|>|>" |
cad1041b5bc4
Revamp the utility functions library.
Matti Hamalainen <ccr@tnsp.org>
parents:
262
diff
changeset
|
14 append utl_html_ent_str "|ä|ä|å|ö|—|-|'|'|–|-|"|\"" |
cad1041b5bc4
Revamp the utility functions library.
Matti Hamalainen <ccr@tnsp.org>
parents:
262
diff
changeset
|
15 append utl_html_ent_str "|||-|’|'|ü|ü|Ü|Ü|•|*|€|€" |
317
994c398cb3fc
utillib: Add some entity conversions.
Matti Hamalainen <ccr@tnsp.org>
parents:
316
diff
changeset
|
16 append utl_html_ent_str "|”|\"|‘|'|ä|ä|·|*|®|®|´|'" |
330
c42c900daf08
utillib: Add more entity conversions.
Matti Hamalainen <ccr@tnsp.org>
parents:
326
diff
changeset
|
17 append utl_html_ent_str "|ö|ö|ö|ö|#|#|'|'|­||–|-|”|\"" |
337
e01963cb88fd
utillib: Add some more entity etc. conversions.
Matti Hamalainen <ccr@tnsp.org>
parents:
333
diff
changeset
|
18 append utl_html_ent_str "|…|...|…|...|"|\"|­||@|#" |
e01963cb88fd
utillib: Add some more entity etc. conversions.
Matti Hamalainen <ccr@tnsp.org>
parents:
333
diff
changeset
|
19 append utl_html_ent_str "| | " |
290
cad1041b5bc4
Revamp the utility functions library.
Matti Hamalainen <ccr@tnsp.org>
parents:
262
diff
changeset
|
20 set utl_html_ent_list [split [encoding convertfrom "utf-8" $utl_html_ent_str] "|"] |
cad1041b5bc4
Revamp the utility functions library.
Matti Hamalainen <ccr@tnsp.org>
parents:
262
diff
changeset
|
21 |
cad1041b5bc4
Revamp the utility functions library.
Matti Hamalainen <ccr@tnsp.org>
parents:
262
diff
changeset
|
22 |
cad1041b5bc4
Revamp the utility functions library.
Matti Hamalainen <ccr@tnsp.org>
parents:
262
diff
changeset
|
23 proc utl_convert_html_ent {udata} { |
cad1041b5bc4
Revamp the utility functions library.
Matti Hamalainen <ccr@tnsp.org>
parents:
262
diff
changeset
|
24 global utl_html_ent_list |
cad1041b5bc4
Revamp the utility functions library.
Matti Hamalainen <ccr@tnsp.org>
parents:
262
diff
changeset
|
25 return [string map -nocase $utl_html_ent_list [string map $utl_html_ent_list $udata]] |
31
1ddfada536ff
Add utility "library" for database conversion and creation scripts.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
26 } |
1ddfada536ff
Add utility "library" for database conversion and creation scripts.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
27 |
290
cad1041b5bc4
Revamp the utility functions library.
Matti Hamalainen <ccr@tnsp.org>
parents:
262
diff
changeset
|
28 |
cad1041b5bc4
Revamp the utility functions library.
Matti Hamalainen <ccr@tnsp.org>
parents:
262
diff
changeset
|
29 proc utl_str_split {str maxlen} { |
424
825cac46b1cb
Cosmetic / stray trailing whitespace cleanup.
Matti Hamalainen <ccr@tnsp.org>
parents:
422
diff
changeset
|
30 set pos 0 |
290
cad1041b5bc4
Revamp the utility functions library.
Matti Hamalainen <ccr@tnsp.org>
parents:
262
diff
changeset
|
31 set len [string length $str] |
cad1041b5bc4
Revamp the utility functions library.
Matti Hamalainen <ccr@tnsp.org>
parents:
262
diff
changeset
|
32 set ulen 0 |
cad1041b5bc4
Revamp the utility functions library.
Matti Hamalainen <ccr@tnsp.org>
parents:
262
diff
changeset
|
33 set ustr "" |
cad1041b5bc4
Revamp the utility functions library.
Matti Hamalainen <ccr@tnsp.org>
parents:
262
diff
changeset
|
34 set result {} |
cad1041b5bc4
Revamp the utility functions library.
Matti Hamalainen <ccr@tnsp.org>
parents:
262
diff
changeset
|
35 while {$pos < $len} { |
cad1041b5bc4
Revamp the utility functions library.
Matti Hamalainen <ccr@tnsp.org>
parents:
262
diff
changeset
|
36 set end [string wordend $str $pos] |
cad1041b5bc4
Revamp the utility functions library.
Matti Hamalainen <ccr@tnsp.org>
parents:
262
diff
changeset
|
37 set new [expr $end - $pos + 1] |
cad1041b5bc4
Revamp the utility functions library.
Matti Hamalainen <ccr@tnsp.org>
parents:
262
diff
changeset
|
38 if {$ulen + $new < $maxlen} { |
cad1041b5bc4
Revamp the utility functions library.
Matti Hamalainen <ccr@tnsp.org>
parents:
262
diff
changeset
|
39 append ustr [string range $str $pos $end] |
cad1041b5bc4
Revamp the utility functions library.
Matti Hamalainen <ccr@tnsp.org>
parents:
262
diff
changeset
|
40 set ulen [expr $ulen + $new] |
cad1041b5bc4
Revamp the utility functions library.
Matti Hamalainen <ccr@tnsp.org>
parents:
262
diff
changeset
|
41 } else { |
cad1041b5bc4
Revamp the utility functions library.
Matti Hamalainen <ccr@tnsp.org>
parents:
262
diff
changeset
|
42 append ustr [string range $str $pos $end] |
cad1041b5bc4
Revamp the utility functions library.
Matti Hamalainen <ccr@tnsp.org>
parents:
262
diff
changeset
|
43 lappend result $ustr |
cad1041b5bc4
Revamp the utility functions library.
Matti Hamalainen <ccr@tnsp.org>
parents:
262
diff
changeset
|
44 set ustr "" |
cad1041b5bc4
Revamp the utility functions library.
Matti Hamalainen <ccr@tnsp.org>
parents:
262
diff
changeset
|
45 set ulen 0 |
cad1041b5bc4
Revamp the utility functions library.
Matti Hamalainen <ccr@tnsp.org>
parents:
262
diff
changeset
|
46 } |
cad1041b5bc4
Revamp the utility functions library.
Matti Hamalainen <ccr@tnsp.org>
parents:
262
diff
changeset
|
47 set pos [expr $end + 1] |
cad1041b5bc4
Revamp the utility functions library.
Matti Hamalainen <ccr@tnsp.org>
parents:
262
diff
changeset
|
48 } |
cad1041b5bc4
Revamp the utility functions library.
Matti Hamalainen <ccr@tnsp.org>
parents:
262
diff
changeset
|
49 if {$ustr != ""} { |
cad1041b5bc4
Revamp the utility functions library.
Matti Hamalainen <ccr@tnsp.org>
parents:
262
diff
changeset
|
50 lappend result $ustr |
cad1041b5bc4
Revamp the utility functions library.
Matti Hamalainen <ccr@tnsp.org>
parents:
262
diff
changeset
|
51 } |
cad1041b5bc4
Revamp the utility functions library.
Matti Hamalainen <ccr@tnsp.org>
parents:
262
diff
changeset
|
52 return $result |
31
1ddfada536ff
Add utility "library" for database conversion and creation scripts.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
53 } |
1ddfada536ff
Add utility "library" for database conversion and creation scripts.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
54 |
1ddfada536ff
Add utility "library" for database conversion and creation scripts.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
55 |
314
1cf897164a25
utillib: Add utl_match_delim_list helper function.
Matti Hamalainen <ccr@tnsp.org>
parents:
310
diff
changeset
|
56 proc utl_match_delim_list {ulist ustr} { |
1cf897164a25
utillib: Add utl_match_delim_list helper function.
Matti Hamalainen <ccr@tnsp.org>
parents:
310
diff
changeset
|
57 foreach ukey [split $ulist ";"] { |
316 | 58 if {[string match $ukey $ustr]} { |
314
1cf897164a25
utillib: Add utl_match_delim_list helper function.
Matti Hamalainen <ccr@tnsp.org>
parents:
310
diff
changeset
|
59 return 1 |
1cf897164a25
utillib: Add utl_match_delim_list helper function.
Matti Hamalainen <ccr@tnsp.org>
parents:
310
diff
changeset
|
60 } |
1cf897164a25
utillib: Add utl_match_delim_list helper function.
Matti Hamalainen <ccr@tnsp.org>
parents:
310
diff
changeset
|
61 } |
1cf897164a25
utillib: Add utl_match_delim_list helper function.
Matti Hamalainen <ccr@tnsp.org>
parents:
310
diff
changeset
|
62 return 0 |
1cf897164a25
utillib: Add utl_match_delim_list helper function.
Matti Hamalainen <ccr@tnsp.org>
parents:
310
diff
changeset
|
63 } |
1cf897164a25
utillib: Add utl_match_delim_list helper function.
Matti Hamalainen <ccr@tnsp.org>
parents:
310
diff
changeset
|
64 |
1cf897164a25
utillib: Add utl_match_delim_list helper function.
Matti Hamalainen <ccr@tnsp.org>
parents:
310
diff
changeset
|
65 |
426
84d3d7abeb8a
Add utl_msg_do() function into utillib and refactor out similar things in quotedb and weather scripts.
Matti Hamalainen <ccr@tnsp.org>
parents:
424
diff
changeset
|
66 proc utl_msg_do {upreferredmsg upublic unick uchan umsg} { |
84d3d7abeb8a
Add utl_msg_do() function into utillib and refactor out similar things in quotedb and weather scripts.
Matti Hamalainen <ccr@tnsp.org>
parents:
424
diff
changeset
|
67 foreach uline [utl_str_split $umsg 450] { |
428 | 68 if {$upublic == 1} { |
69 putserv "$upreferredmsg $uchan :$uline" | |
426
84d3d7abeb8a
Add utl_msg_do() function into utillib and refactor out similar things in quotedb and weather scripts.
Matti Hamalainen <ccr@tnsp.org>
parents:
424
diff
changeset
|
70 } else { |
84d3d7abeb8a
Add utl_msg_do() function into utillib and refactor out similar things in quotedb and weather scripts.
Matti Hamalainen <ccr@tnsp.org>
parents:
424
diff
changeset
|
71 putserv "$upreferredmsg $unick :$uline" |
84d3d7abeb8a
Add utl_msg_do() function into utillib and refactor out similar things in quotedb and weather scripts.
Matti Hamalainen <ccr@tnsp.org>
parents:
424
diff
changeset
|
72 } |
84d3d7abeb8a
Add utl_msg_do() function into utillib and refactor out similar things in quotedb and weather scripts.
Matti Hamalainen <ccr@tnsp.org>
parents:
424
diff
changeset
|
73 } |
84d3d7abeb8a
Add utl_msg_do() function into utillib and refactor out similar things in quotedb and weather scripts.
Matti Hamalainen <ccr@tnsp.org>
parents:
424
diff
changeset
|
74 } |
84d3d7abeb8a
Add utl_msg_do() function into utillib and refactor out similar things in quotedb and weather scripts.
Matti Hamalainen <ccr@tnsp.org>
parents:
424
diff
changeset
|
75 |
84d3d7abeb8a
Add utl_msg_do() function into utillib and refactor out similar things in quotedb and weather scripts.
Matti Hamalainen <ccr@tnsp.org>
parents:
424
diff
changeset
|
76 |
422
880a07485275
Add utl_ctime() to utillib and use it elsewhere.
Matti Hamalainen <ccr@tnsp.org>
parents:
337
diff
changeset
|
77 proc utl_ctime {utime} { |
880a07485275
Add utl_ctime() to utillib and use it elsewhere.
Matti Hamalainen <ccr@tnsp.org>
parents:
337
diff
changeset
|
78 if {$utime == "" || $utime == "*"} { |
880a07485275
Add utl_ctime() to utillib and use it elsewhere.
Matti Hamalainen <ccr@tnsp.org>
parents:
337
diff
changeset
|
79 set utime 0 |
880a07485275
Add utl_ctime() to utillib and use it elsewhere.
Matti Hamalainen <ccr@tnsp.org>
parents:
337
diff
changeset
|
80 } |
880a07485275
Add utl_ctime() to utillib and use it elsewhere.
Matti Hamalainen <ccr@tnsp.org>
parents:
337
diff
changeset
|
81 return [clock format $utime -format "%d.%m.%Y %H:%M"] |
880a07485275
Add utl_ctime() to utillib and use it elsewhere.
Matti Hamalainen <ccr@tnsp.org>
parents:
337
diff
changeset
|
82 } |
880a07485275
Add utl_ctime() to utillib and use it elsewhere.
Matti Hamalainen <ccr@tnsp.org>
parents:
337
diff
changeset
|
83 |
880a07485275
Add utl_ctime() to utillib and use it elsewhere.
Matti Hamalainen <ccr@tnsp.org>
parents:
337
diff
changeset
|
84 |
290
cad1041b5bc4
Revamp the utility functions library.
Matti Hamalainen <ccr@tnsp.org>
parents:
262
diff
changeset
|
85 ### |
cad1041b5bc4
Revamp the utility functions library.
Matti Hamalainen <ccr@tnsp.org>
parents:
262
diff
changeset
|
86 ### SQL database handling |
cad1041b5bc4
Revamp the utility functions library.
Matti Hamalainen <ccr@tnsp.org>
parents:
262
diff
changeset
|
87 ### |
cad1041b5bc4
Revamp the utility functions library.
Matti Hamalainen <ccr@tnsp.org>
parents:
262
diff
changeset
|
88 proc utl_tdbc_sql_init {ndb_handle db_type db_name db_host db_port db_user db_pass} { |
cad1041b5bc4
Revamp the utility functions library.
Matti Hamalainen <ccr@tnsp.org>
parents:
262
diff
changeset
|
89 upvar $ndb_handle udb_handle |
424
825cac46b1cb
Cosmetic / stray trailing whitespace cleanup.
Matti Hamalainen <ccr@tnsp.org>
parents:
422
diff
changeset
|
90 |
290
cad1041b5bc4
Revamp the utility functions library.
Matti Hamalainen <ccr@tnsp.org>
parents:
262
diff
changeset
|
91 if {$db_type == "sqlite"} { |
cad1041b5bc4
Revamp the utility functions library.
Matti Hamalainen <ccr@tnsp.org>
parents:
262
diff
changeset
|
92 if {$db_name == ""} { |
cad1041b5bc4
Revamp the utility functions library.
Matti Hamalainen <ccr@tnsp.org>
parents:
262
diff
changeset
|
93 putlog " SQLite3 database file not set." |
cad1041b5bc4
Revamp the utility functions library.
Matti Hamalainen <ccr@tnsp.org>
parents:
262
diff
changeset
|
94 return 0 |
cad1041b5bc4
Revamp the utility functions library.
Matti Hamalainen <ccr@tnsp.org>
parents:
262
diff
changeset
|
95 } |
cad1041b5bc4
Revamp the utility functions library.
Matti Hamalainen <ccr@tnsp.org>
parents:
262
diff
changeset
|
96 if {![file exists $db_name]} { |
cad1041b5bc4
Revamp the utility functions library.
Matti Hamalainen <ccr@tnsp.org>
parents:
262
diff
changeset
|
97 putlog " URLLog SQLite3 database file '$db_name' not found, or not accessible!" |
cad1041b5bc4
Revamp the utility functions library.
Matti Hamalainen <ccr@tnsp.org>
parents:
262
diff
changeset
|
98 return 0 |
cad1041b5bc4
Revamp the utility functions library.
Matti Hamalainen <ccr@tnsp.org>
parents:
262
diff
changeset
|
99 } |
cad1041b5bc4
Revamp the utility functions library.
Matti Hamalainen <ccr@tnsp.org>
parents:
262
diff
changeset
|
100 package require tdbc::sqlite3 1.0 |
310
d56509a6f435
utillib: Simplify SQL connection creation.
Matti Hamalainen <ccr@tnsp.org>
parents:
295
diff
changeset
|
101 if {[catch {set udb_handle [tdbc::sqlite3::connection new $db_name]} db_errmsg]} { |
290
cad1041b5bc4
Revamp the utility functions library.
Matti Hamalainen <ccr@tnsp.org>
parents:
262
diff
changeset
|
102 putlog " Could not open SQLite3 database '$db_name': $db_errmsg" |
cad1041b5bc4
Revamp the utility functions library.
Matti Hamalainen <ccr@tnsp.org>
parents:
262
diff
changeset
|
103 return 0 |
cad1041b5bc4
Revamp the utility functions library.
Matti Hamalainen <ccr@tnsp.org>
parents:
262
diff
changeset
|
104 } |
cad1041b5bc4
Revamp the utility functions library.
Matti Hamalainen <ccr@tnsp.org>
parents:
262
diff
changeset
|
105 putlog " (Using SQLite3 database $db_name)" |
cad1041b5bc4
Revamp the utility functions library.
Matti Hamalainen <ccr@tnsp.org>
parents:
262
diff
changeset
|
106 } elseif {$db_type == "postgres" || $db_type == "mysql"} { |
cad1041b5bc4
Revamp the utility functions library.
Matti Hamalainen <ccr@tnsp.org>
parents:
262
diff
changeset
|
107 # Check parameters |
cad1041b5bc4
Revamp the utility functions library.
Matti Hamalainen <ccr@tnsp.org>
parents:
262
diff
changeset
|
108 set db_args {} |
cad1041b5bc4
Revamp the utility functions library.
Matti Hamalainen <ccr@tnsp.org>
parents:
262
diff
changeset
|
109 if {$db_user != ""} { lappend db_args -user $db_user } |
cad1041b5bc4
Revamp the utility functions library.
Matti Hamalainen <ccr@tnsp.org>
parents:
262
diff
changeset
|
110 if {$db_pass != ""} { lappend db_args -passwd $db_pass } |
cad1041b5bc4
Revamp the utility functions library.
Matti Hamalainen <ccr@tnsp.org>
parents:
262
diff
changeset
|
111 if {$db_host != ""} { |
cad1041b5bc4
Revamp the utility functions library.
Matti Hamalainen <ccr@tnsp.org>
parents:
262
diff
changeset
|
112 lappend db_args -host $db_pass |
cad1041b5bc4
Revamp the utility functions library.
Matti Hamalainen <ccr@tnsp.org>
parents:
262
diff
changeset
|
113 if {$db_posrt != 0} { |
cad1041b5bc4
Revamp the utility functions library.
Matti Hamalainen <ccr@tnsp.org>
parents:
262
diff
changeset
|
114 lappend db_args -port $db_port |
cad1041b5bc4
Revamp the utility functions library.
Matti Hamalainen <ccr@tnsp.org>
parents:
262
diff
changeset
|
115 set db_host "${db_host}:${db_port}" |
cad1041b5bc4
Revamp the utility functions library.
Matti Hamalainen <ccr@tnsp.org>
parents:
262
diff
changeset
|
116 } |
cad1041b5bc4
Revamp the utility functions library.
Matti Hamalainen <ccr@tnsp.org>
parents:
262
diff
changeset
|
117 } else { |
cad1041b5bc4
Revamp the utility functions library.
Matti Hamalainen <ccr@tnsp.org>
parents:
262
diff
changeset
|
118 set db_host "localhost" |
cad1041b5bc4
Revamp the utility functions library.
Matti Hamalainen <ccr@tnsp.org>
parents:
262
diff
changeset
|
119 } |
cad1041b5bc4
Revamp the utility functions library.
Matti Hamalainen <ccr@tnsp.org>
parents:
262
diff
changeset
|
120 if {$db_name == ""} { |
cad1041b5bc4
Revamp the utility functions library.
Matti Hamalainen <ccr@tnsp.org>
parents:
262
diff
changeset
|
121 putlog " Database name not set." |
cad1041b5bc4
Revamp the utility functions library.
Matti Hamalainen <ccr@tnsp.org>
parents:
262
diff
changeset
|
122 return 0 |
cad1041b5bc4
Revamp the utility functions library.
Matti Hamalainen <ccr@tnsp.org>
parents:
262
diff
changeset
|
123 } |
cad1041b5bc4
Revamp the utility functions library.
Matti Hamalainen <ccr@tnsp.org>
parents:
262
diff
changeset
|
124 lappend db_args -database $db_name |
cad1041b5bc4
Revamp the utility functions library.
Matti Hamalainen <ccr@tnsp.org>
parents:
262
diff
changeset
|
125 |
cad1041b5bc4
Revamp the utility functions library.
Matti Hamalainen <ccr@tnsp.org>
parents:
262
diff
changeset
|
126 if {$db_type == "postgres"} { |
cad1041b5bc4
Revamp the utility functions library.
Matti Hamalainen <ccr@tnsp.org>
parents:
262
diff
changeset
|
127 package require tdbc::postgres 1.0 |
310
d56509a6f435
utillib: Simplify SQL connection creation.
Matti Hamalainen <ccr@tnsp.org>
parents:
295
diff
changeset
|
128 if {[catch {set udb_handle [tdbc::postgres::connection new {*}$db_args]} db_errmsg]} { |
290
cad1041b5bc4
Revamp the utility functions library.
Matti Hamalainen <ccr@tnsp.org>
parents:
262
diff
changeset
|
129 putlog " Could not connect to PostgreSQL database '$db_name @ $db_host': $db_errmsg" |
cad1041b5bc4
Revamp the utility functions library.
Matti Hamalainen <ccr@tnsp.org>
parents:
262
diff
changeset
|
130 return 0 |
cad1041b5bc4
Revamp the utility functions library.
Matti Hamalainen <ccr@tnsp.org>
parents:
262
diff
changeset
|
131 } |
cad1041b5bc4
Revamp the utility functions library.
Matti Hamalainen <ccr@tnsp.org>
parents:
262
diff
changeset
|
132 putlog " (Using PostgreSQL database $db_name @ $db_host)" |
cad1041b5bc4
Revamp the utility functions library.
Matti Hamalainen <ccr@tnsp.org>
parents:
262
diff
changeset
|
133 } elseif {$db_type == "mysql"} { |
cad1041b5bc4
Revamp the utility functions library.
Matti Hamalainen <ccr@tnsp.org>
parents:
262
diff
changeset
|
134 package require tdbc::mysql 1.0 |
310
d56509a6f435
utillib: Simplify SQL connection creation.
Matti Hamalainen <ccr@tnsp.org>
parents:
295
diff
changeset
|
135 if {[catch {set udb_handle [tdbc::mysql::connection new {*}$db_args]} db_errmsg]} { |
290
cad1041b5bc4
Revamp the utility functions library.
Matti Hamalainen <ccr@tnsp.org>
parents:
262
diff
changeset
|
136 putlog " Could not connect to MySQL database '$db_name @ $db_host': $db_errmsg" |
cad1041b5bc4
Revamp the utility functions library.
Matti Hamalainen <ccr@tnsp.org>
parents:
262
diff
changeset
|
137 return 0 |
cad1041b5bc4
Revamp the utility functions library.
Matti Hamalainen <ccr@tnsp.org>
parents:
262
diff
changeset
|
138 } |
cad1041b5bc4
Revamp the utility functions library.
Matti Hamalainen <ccr@tnsp.org>
parents:
262
diff
changeset
|
139 putlog " (Using MySQL database $db_name @ $db_host)" |
cad1041b5bc4
Revamp the utility functions library.
Matti Hamalainen <ccr@tnsp.org>
parents:
262
diff
changeset
|
140 } |
cad1041b5bc4
Revamp the utility functions library.
Matti Hamalainen <ccr@tnsp.org>
parents:
262
diff
changeset
|
141 } else { |
cad1041b5bc4
Revamp the utility functions library.
Matti Hamalainen <ccr@tnsp.org>
parents:
262
diff
changeset
|
142 putlog " Invalid or unsupported database type: '$db_type'." |
cad1041b5bc4
Revamp the utility functions library.
Matti Hamalainen <ccr@tnsp.org>
parents:
262
diff
changeset
|
143 return 0 |
cad1041b5bc4
Revamp the utility functions library.
Matti Hamalainen <ccr@tnsp.org>
parents:
262
diff
changeset
|
144 } |
cad1041b5bc4
Revamp the utility functions library.
Matti Hamalainen <ccr@tnsp.org>
parents:
262
diff
changeset
|
145 return 1 |
cad1041b5bc4
Revamp the utility functions library.
Matti Hamalainen <ccr@tnsp.org>
parents:
262
diff
changeset
|
146 } |
cad1041b5bc4
Revamp the utility functions library.
Matti Hamalainen <ccr@tnsp.org>
parents:
262
diff
changeset
|
147 |
cad1041b5bc4
Revamp the utility functions library.
Matti Hamalainen <ccr@tnsp.org>
parents:
262
diff
changeset
|
148 |
295
141bb4a2b76f
utillib: utl_escape (which will be deprecated soon).
Matti Hamalainen <ccr@tnsp.org>
parents:
290
diff
changeset
|
149 proc utl_escape {str} { |
141bb4a2b76f
utillib: utl_escape (which will be deprecated soon).
Matti Hamalainen <ccr@tnsp.org>
parents:
290
diff
changeset
|
150 return [string map {' ''} $str] |
141bb4a2b76f
utillib: utl_escape (which will be deprecated soon).
Matti Hamalainen <ccr@tnsp.org>
parents:
290
diff
changeset
|
151 } |
141bb4a2b76f
utillib: utl_escape (which will be deprecated soon).
Matti Hamalainen <ccr@tnsp.org>
parents:
290
diff
changeset
|
152 |
141bb4a2b76f
utillib: utl_escape (which will be deprecated soon).
Matti Hamalainen <ccr@tnsp.org>
parents:
290
diff
changeset
|
153 |
290
cad1041b5bc4
Revamp the utility functions library.
Matti Hamalainen <ccr@tnsp.org>
parents:
262
diff
changeset
|
154 ### |
cad1041b5bc4
Revamp the utility functions library.
Matti Hamalainen <ccr@tnsp.org>
parents:
262
diff
changeset
|
155 ### Functions for certain scripts |
cad1041b5bc4
Revamp the utility functions library.
Matti Hamalainen <ccr@tnsp.org>
parents:
262
diff
changeset
|
156 ### |
cad1041b5bc4
Revamp the utility functions library.
Matti Hamalainen <ccr@tnsp.org>
parents:
262
diff
changeset
|
157 proc utl_confirm_yesno { uprompt } { |
63 | 158 puts -nonewline "$uprompt \[y/N\]? " |
159 flush stdout | |
160 set response [gets stdin] | |
161 if {[string tolower $response] == "y"} { | |
162 return 1 | |
163 } else { | |
164 return 0 | |
165 } | |
31
1ddfada536ff
Add utility "library" for database conversion and creation scripts.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
166 } |
1ddfada536ff
Add utility "library" for database conversion and creation scripts.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
167 |
1ddfada536ff
Add utility "library" for database conversion and creation scripts.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
168 |
290
cad1041b5bc4
Revamp the utility functions library.
Matti Hamalainen <ccr@tnsp.org>
parents:
262
diff
changeset
|
169 proc utl_drop_table { dbh utable } { |
63 | 170 puts "Dropping current table '$utable'." |
171 if {[catch {dbh eval "DROP TABLE $utable"} uerrmsg]} { | |
172 puts "Dropping table resulted in error (ignored): $uerrmsg." | |
173 } | |
31
1ddfada536ff
Add utility "library" for database conversion and creation scripts.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
174 } |
1ddfada536ff
Add utility "library" for database conversion and creation scripts.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
175 |
290
cad1041b5bc4
Revamp the utility functions library.
Matti Hamalainen <ccr@tnsp.org>
parents:
262
diff
changeset
|
176 |
cad1041b5bc4
Revamp the utility functions library.
Matti Hamalainen <ccr@tnsp.org>
parents:
262
diff
changeset
|
177 proc utl_create_table { dbh utable usql } { |
63 | 178 puts "Creating new table '$utable'." |
179 if {[catch {dbh eval "CREATE TABLE $utable ($usql)"} uerrmsg]} { | |
180 puts "Error creating table: $uerrmsg." | |
181 return 0 | |
182 } | |
183 return 1 | |
31
1ddfada536ff
Add utility "library" for database conversion and creation scripts.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
184 } |
1ddfada536ff
Add utility "library" for database conversion and creation scripts.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
185 |
290
cad1041b5bc4
Revamp the utility functions library.
Matti Hamalainen <ccr@tnsp.org>
parents:
262
diff
changeset
|
186 |
cad1041b5bc4
Revamp the utility functions library.
Matti Hamalainen <ccr@tnsp.org>
parents:
262
diff
changeset
|
187 proc utl_create_table_or_fail { dbh utable usql } { |
cad1041b5bc4
Revamp the utility functions library.
Matti Hamalainen <ccr@tnsp.org>
parents:
262
diff
changeset
|
188 if {![utl_create_table $dbh $utable $usql]} { |
63 | 189 exit 3 |
190 } | |
31
1ddfada536ff
Add utility "library" for database conversion and creation scripts.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff
changeset
|
191 } |