1 changed files with 75 additions and 0 deletions
@ -0,0 +1,75 @@ |
|||||||
|
#!/usr/bin/env tclsh |
||||||
|
|
||||||
|
#Создан: Пн 26 авг 2013 12:42:48 |
||||||
|
#Изменён: Чт 29 авг 2013 12:20:10 |
||||||
|
|
||||||
|
# |
||||||
|
# (c) 2013, Maxim Lihachev, <envrm@yandex.ru> |
||||||
|
# |
||||||
|
# Настройка mIRC по образцу. |
||||||
|
# Переменные в mirc.ini имеют вид @mIRC::VARIABLE@, |
||||||
|
# где VARIABLE -- NAME, NICK, NICK_ALT и MAIL |
||||||
|
# |
||||||
|
|
||||||
|
#Получение информации о пользователе и формирование псевдонимов: |
||||||
|
# ГОРОД_ИМЯ_ФАМИЛИЯ_ТЕЛЕФОН |
||||||
|
# _ГОРОД_ИМЯ_ФАМИЛИЯ_ТЕЛЕФОН_ |
||||||
|
proc getUserInfo {args} { |
||||||
|
lassign $args NAME SURNAME MAIL PHONE BASE |
||||||
|
|
||||||
|
regsub {\d{4}} $PHONE {_\0} PHONE |
||||||
|
regsub {[EMT]} $BASE {\0_} BASE |
||||||
|
|
||||||
|
set mIRC::USER "$NAME $SURNAME" |
||||||
|
set mIRC::NICK "${BASE}${NAME}_${SURNAME}${PHONE}" |
||||||
|
set mIRC::NICK_ALT "_${mIRC::NICK}_" |
||||||
|
set mIRC::MAIL $MAIL |
||||||
|
} |
||||||
|
|
||||||
|
#Сборка настроек в bundleDir по шаблону в templateDir |
||||||
|
proc makeBundle {templateDir bundleDir} { |
||||||
|
puts "+ Шаблон mIRC: $templateDir\n" |
||||||
|
|
||||||
|
file delete -force -- $bundleDir |
||||||
|
file copy -force -- $templateDir $bundleDir |
||||||
|
|
||||||
|
set fileIN [open [file join $templateDir mirc.ini] r] |
||||||
|
set fileOUT [open [file join $bundleDir mirc.ini] w] |
||||||
|
|
||||||
|
fconfigure $fileIN -encoding cp1251 |
||||||
|
fconfigure $fileOUT -encoding cp1251 |
||||||
|
|
||||||
|
expandVars $fileIN $fileOUT |
||||||
|
|
||||||
|
close $fileIN |
||||||
|
close $fileOUT |
||||||
|
|
||||||
|
puts "\n+ Настройки mIRC: $bundleDir" |
||||||
|
} |
||||||
|
|
||||||
|
#Замена переменных в файле mirc.ini |
||||||
|
proc expandVars {fileIN fileOUT} { |
||||||
|
while {[gets $fileIN line] != -1} { |
||||||
|
if {[string match *=@mIRC::*@* $line]} { |
||||||
|
regsub {@(mIRC::[A-Z_]+)@} $line {[set \1]} line |
||||||
|
set line [subst $line] |
||||||
|
puts " > $line" |
||||||
|
} |
||||||
|
puts $fileOUT $line |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
namespace eval mIRC {} |
||||||
|
|
||||||
|
if {$argc < 3} { |
||||||
|
puts "ИСПОЛЬЗОВАНИЕ: $argv0 Имя Фамилия почта ?телефон? ?город?" |
||||||
|
exit 1 |
||||||
|
} else { |
||||||
|
getUserInfo {*}$argv |
||||||
|
|
||||||
|
set TEMPLATE mIRC.tpl |
||||||
|
set BUNDLE mIRC_[regsub {@.*$} $mIRC::MAIL {}] |
||||||
|
|
||||||
|
makeBundle $TEMPLATE $BUNDLE |
||||||
|
} |
||||||
|
|
Loading…
Reference in new issue