1 changed files with 75 additions and 0 deletions
@ -0,0 +1,75 @@
@@ -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