Browse Source

Добавлен join2irc.tcl

master
Maxim Lihachev 12 years ago
parent
commit
1bb8f5dfd8
  1. 75
      join2irc.tcl

75
join2irc.tcl

@ -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…
Cancel
Save