FidoConfig Manual


Up: (dir)

fidoconfig

Этот документ описывает использование fidoconfig для того, чтобы fido работало на вашей любимой платформе.

Этот документ применим к fidoconfig версии 0.15.


Next: , Previous: Top, Up: Top

1 Цели создания

Целью написания fidoconfig было создание единого конфигурационного файла для нескольких разных fido программ: редактора, тоссера и т.д. Дополнительной целью было создание одной библиотеки (fidoconfig), которая может быть использована всеми программами. Преимущество в том, что вам придется редактировать один конфигурационный файл, так что изменять параметры системы намного проще, чем в обычных программных пакетах. Также баги могут прокрасться только в одну библиотеку, а не в тысячи и тысячи библиотек. Конфиг может быть использован во всех операционных системах. Библиотека также должна быть вполне портируемой.


Next: , Previous: design goals, Up: Top

2 Конфигурационный файл

Это раздел описывает написание конфигурационного файла fidoconfig, используемые ключевые слова и расположение файла.


Next: , Previous: config file, Up: config file

2.1 Расположение конфигурационного файла

Библиотека fidoconfig ищет конфигурационный файл в разных местах:

linux:
/etc/fido/config
freebsd:
/usr/local/etc/fido/config
os2/win32/и т.д.:
в текущей директории

Если вы собираете библиотеку с помощью huskymak.cfg, расположение может быть переопределено параметром CFGDIR.

Также вы можете установить переменную окружения FIDOCONFIG, указывающую на конфигурационный файл:

     set FIDOCONFIG=e:\bbs\fidoconfig\config
     
     FIDOCONFIG=~/fidoconfig/config
     export FIDOCONFIG

Конфигурационный(е) файл(ы) должны быть доступны для чтения. Если вы собираетесь использовать возможности автосоздания арий HPT/HTICK/и т.д., файлы должны быть доступны для записи.


Next: , Previous: Location, Up: config file

2.2 Синтаксис

Все символы не регистрозависимы.

{<whiteSpace>} в начале строки игнорируется.

Все ключевые слова обрабатываются по порядку, первое найденное подходящее слово признается действующим. Если допускается несколько ключевых слов одного типа, действующим считается последнее, подходящее ситуации. Другими словами, следующее определение перебивает предыдущее. Если ключевое слово не найдено, используеся значение по умолчанию.

"#" в начале строки или <whiteSpace>#<whiteSpace> в строке означают начало комментария. Комментарий заканчивается с концом строки. Символ комментария "#" может быть переопределен с помощью токена commentChar.

Если первое слово в строке - неизвестно, программа выходит с сообщением об ошибке.

Каждое ключевое слово должно находиться на отдельной строке.

Параметры ключевых слов:

<integer>
строка, содержащая целые числа, например: 1234567890
<string>
текстовая строка, опционально заключенная в кавычки
<bool>
может быть установлено в "1", "0", "yes", "no", "on", "off", а также без параметров (это означает "on").
<addr>
адресная строка вида zone:net/node[.point][@domain]
пример: 2:5000/117
<file>
имя файла. путь может быть опущен.
<path>
только путь. завершающий слэш не обязателен.

Замечание! [<parameter>] означает, что параметр может быть опущен.

Библиотека FIDOCONFIG может устанавливать внутренние переменные:

     set basedir=/home/user/fido/

Переменная [OS] автоматически устанавливается для следующих ОС:

UNIX
Все unix-like ОС: Linux, *BSD, BeOS, ...
OS/2
WIN
MSDOS

Вы можете установить что-то вроде:

     if [OS]==UNIX
     tearline `uptime`
     endif

Некоторые программы могут быть скомпилированы с переменной module. Она может быть использована для ускорения парсинга конфига:

     if [module]==htick
     include /etc/ftn/fileareas
     endif

Если работает HPT, файлобласти не парсятся, так как [module]==hpt.

Доступны следующие modules:

hpt (Highly Portable Tosser)
htick (Husky Ticker)
hptutil
hpucode

Также могут быть использованы внешние переменные:

     autoexec.bat:
     SET VAR=myvar
     
     fidoconfig:
     if [VAR]==myvar
     ...
     else
     ...
     endif
     
     ifdef UNIX
     MsgBaseDir  [home]/msgbase
     endif

Вы можете использовать программный вывод через `cmd`. Это доступно только для UNIX и OS/2+EMX:

     Name Power Station under `uname -mrs`

Список доступных команд:

     set, if, if not, else, elseif, ifdef, ifndef, endif.

Вы можете сравнивать с шаблоном, используя =~ и !~ вместо == и !=:

     if [VAR] =~ *substr*
     ...
     endif
     if [VAR] !~ bla?bla*
     ...
     endif


Next: , Previous: Syntax, Up: config file

2.3 Общие для HUSKY-программ ключевые слова

Эти ключевые слова могут использоваться несколькими программами. Более спицифичные ключевые слова вы найдете в документациях соотвествующих программ.


Next: , Previous: Keywords, Up: Keywords

2.3.1 version

Синтаксис:
version <integer>.<integer>
Пример:
version 0.13

Здесь вы указываете, к какой версии fidoconfig относится ваш конфиг. В настоящее время этот оператор ничего не делает.

Этот оператор не может повторяться.


Next: , Previous: version, Up: Keywords

2.3.2 name

Синтаксис:
name <string>
Пример:
name Leetebrok BBS

Здесь вы указываете название вашей системы.

Этот оператор не может повторяться.


Next: , Previous: name, Up: Keywords

2.3.3 location

Синтаксис:
location <string>
Пример:
location Dusseldorf

Здесь вы указываете свое местоположение.

Этот оператор не может повторяться.


Next: , Previous: location, Up: Keywords

2.3.4 sysop

Синтаксис:
sysop <string>
Пример:
sysop Matthias Tichy

С помощью этого ключевого слова вы указываете свое имя.

Этот оператор не может повторяться.


Next: , Previous: sysop, Up: Keywords

2.3.5 include

Синтаксис:
include <file>
Пример:
include /etc/fido/areas

Вы можете включать другие файлы в ваш конфигурационный файл. Например, если вы хотите иметь меняющиеся части конфига, вы можете включить файл и (через cron или вручную) изменять его содержание без изменения остального конфига. Вы также можете рзделить конфиг на несколько частей. Таким образом вы сможете иметь определения файларий отдельно от эхоарий. Это даст более легкий обзор конфига.

Этот оператор может повторяться. Но не делайте рекурсивных включений, т.е. включений файла, который включает другой файл, который включает первый. Хотя в большинстве случаев это будет обнаружено и исправлено, не исключен случай, когда обнаружение не произойдет.


Next: , Previous: include, Up: Keywords

2.3.6 address

Синтаксис:
Address <addr>
Пример:
Address 2:2433/1245

Эта команда указывает, какие aka имеет ваша система. Это оператор полностью 5d-совместим, что означает, что вы можете иметь адреса вида 2:2433/1245.1@fidonet.org. Первый адрес является основным и будет использоваться тоссером в различных случаях, например, если номер зоны не может быть получен из кладжа @INTL в нетмейловом письме.

Этот оператор может повторяться. fidoconfig не полностью поддерживает имя домена


Next: , Previous: address, Up: Keywords

2.3.7 commentChar

Синтаксис:
commentChar <char>
Пример:
commentChar ;

Эта команда определяет символ, используемый для обозначения остатка строки как комментария. По умолчанию - '#'.

Этот оператор может повторяться.


Next: , Previous: commentChar, Up: Keywords

2.3.8 outbound

Синтаксис:
outbound <path>
Пример:
outbound /var/spool/fido/out

Эта команда определяет ваш путь к binkley-style аутбаунду. Такой аутбаунд состоит из базового пути и поддиректорий. Каждая поддиректория предоставляет место для всех файлов одной зоны. Базовый путь - путь вашей зоны по умолчанию.

Example:

          
/var/spool/fido/out
Эта директория содержит файлы для вашей базовой зоны.
/var/spool/fido/out.003
Эта директория содержит файлы для 3-й зоны.
/var/spool/fido/out.00A
Эта директория содержит файлы для 10-й зоны.

Директория зоны содержит flow-файлы для каждого узла. Flow-файл узла имеет имя вида NNNNFFFF.?lo

          
NNNN
4-значный номер сети узла в 16-ричном формате.
FFFF
4-значный номер узла в 16-ричном формате.
?
Здесь может быть выбран flavour почты. h-hold, c-crash, f-normal, d-direct, i-immediate.

Для пойнтов создаются поддиректории с именем flow-файла узла и суффиксом .pnt. В этой директории имена flow-файлов имеют вид PPPPPPPP (8-значные номера пойнтов в 16-ричном формате).

Для более глубокого понимания binkley-style outbound смотрите документацию binkley-term и исходные коды.

Этот оператор не может повторяться.


Next: , Previous: outbound, Up: Keywords

2.3.9 FileBoxesDir

Syntax:
FileBoxesDir <directory>
Example:
FileBoxesDir ../boxes

Эта директива определяет ваш путь к файл-боксам линков. Пути в директивах FileBoxesDir и outbound должны различаться и не должны быть подкаталогами друг друга, иначе возможны коллизии.

В настоящее время реализована поддержка файл-боксов с именами следующего формата:
z.n.f.p[.h],
где:
z:
номер зоны;
n:
номер сети;
f:
номер узла;
p:
номер пойнта (обязателен, в случае узла - ноль);
.h:
необязательный суффикс ".h" указывает атрибут "hold".
В примере:
FileBoxesDir /fido/fileboxes
для линка с адресом 2:5021.19 возможны два файлбокса:
/fido/fileboxes/2.5021.19.0 и /fido/fileboxes/2.5021.19.0.h

Этот оператор не может повторяться.


Next: , Previous: FileBoxesDir, Up: Keywords

2.3.10 inbound

Синтаксис:
inbound <path>
Пример:
inbound /var/spool/fido/in

Эта команда определяет, где хранятся входящие файлы. Эта директория - базовая, что означает, что туда попадают файлы в случае непарольной сессии и если удаленная система не указана в нод- или пойнт-листах. Из этого инбаунда тоссится только нетмейл.

Этот оператор не может повторяться.


Next: , Previous: inbound, Up: Keywords

2.3.11 tempDir

Синтаксис:
tempDir <path>
Пример:
tempDir /var/tmp

Эта команда определяет путь, в котором должны храниться временные файлы ваших fido-програм. Эта директория может очищаться при загрузке системы. Хорошая идея - использовать для этого виртуальный диск в памяти.

Значение по умолчанию - путь, определенный переменными окружения TEMP, TMP или TMPDIR (первой используется TEMP, если она не определена, то TMP, затем TMPDIR). Если эти переменные окружения не определены: - win32 версии используют %WINDIR%\TEMP (обычно c:\windows\temp в Win9x/Me и c:\winnt\temp в Windows NT/2000/XP) - версии для unix-like ОС используют /tmp - остальные версии используют c:\

Этот оператор не может повторяться.


Next: , Previous: tempDir, Up: Keywords

2.3.12 logfiledir

Синтаксис:
logFileDir <path>
Пример:
logFileDir /var/spool/log/fido

Эта команда определяет путь, где должны храниться лог-файлы fido-программ.

Этот оператор не может повторяться.

Некоторые программы используют logFileDir для постоянных временных/рабочих файлов.


Next: , Previous: logfiledir, Up: Keywords

2.3.13 syslogfacility

Синтаксис:
syslogFacility <facility>
Пример:
syslogFacility local0

Некоторые программы Husky могут писать логи через syslogd вместо лог-файла. Для таких программ это ключевое слово определяет, какое средство использовать для записи в syslog. Syslogd будет использовать это средство для определения, в какой лог-файл syslog это лог-сообщение будет записано. Общие имена, которые могут быть использованы: mail, news, uucp, local0. Точные значения зависят от вашей операционной системы. Более полная информация дана в man pages для syslog.conf или /usr/include/sys/syslog.h.

Запись лога через syslogd поддерживается только для платформ UNIX, и в настоящее время используется только herp и никакой другой программой Husky. Пишет ли программа в лог-файл или через syslog, или обоими способами, зависит только от программы, но не от вашего файла fidoconfig. Обращайтесь к собственной документации программы.


Next: , Previous: syslogfacility, Up: Keywords

2.3.14 LogLevels

Синтаксис:
loglevels <string>
Пример:
loglevels 1345789,A-F Q

Этот оператор определяет список уровней лога для записи в лог-файл. Тире означает диапазон (A-F раскрывается как ABCDEF). Распознаются только чиловые и буквенные уровни лога, остальные игнорируются.

В примере мы выводим в лог сообщения с уровнями 1,3,4,5,7,8,9,A,B,C,D,E,F,Q.

Уровни детализации лога:

1 - начало, конец программы
2 - проверка дупов
3 - линковка сообщений
4 - сканирование сообщений
5 - размещение сообщений
6 - строки запуска
7 - бандлы, pkt, линки, фреки, роутинг файлов, файл-аттачи, паковка msg
8 - areafix, relink, автосоздание арий
9 - сообщения об ошибках (критических, обычно с выходом из программы)
0 - создание файлов-флагов
A - сообщения об обычных ошибках (вывод сообщения и продолжение выполнения)
B - предупреждения
C - информационные сообщения
D - статистика
E - суммарная статистика
F - вывод названия и версии программы
G - отправка/отправленное сообщение
H - перекодировка и чтение/запись таблиц перекодировки
I - генерация или проверка MSGID
J - фаза эхомейла
K - фаза файлбоксов
L - фаза нетмейла
M - создание файла
N - удаление файла
O - операции с открытым файлом (чтение, запись, поиск, ...)
P - операции с директориями (создание, удаление, переименование, ...)
Q - парсинг и создание E-mail сообщений
R - усечение файла
S - отправка/отправленный файл
T - тест файлов (существование, права и т.д.)
U - вызов функций (вход и выход из функции)
V - зарезервировано
W - зарезервировано
X - создание имен файлов
Y - линковка базы сообщений (некоторые фазы hptlink и т.д.)
Z - отладочные сообщения: исходные строки (контрольные точки функций)
a-z - отладочные сообщения

По умолчанию: 1234567890ABCDEF

Этот оператор не может повторяться.


Next: , Previous: loglevels, Up: Keywords

2.3.15 ScreenLogLevels

Синтаксис:
screenloglevels <string>
Пример:
screenloglevels 2345789,A-C

Устанавливает уровни вывода лога на экран. Смотрите loglevels.

Этот оператор не может повторяться.


Next: , Previous: screenloglevels, Up: Keywords

2.3.16 seqdir

Синтаксис:
seqDir <path>
Пример:
seqDir /var/spool/fido/seq

Устанавливает путь к текущей msgid-последовательности.

По умолчанию используется переменная окружения SEQDIR.

Этот оператор не может повторяться.


Next: , Previous: seqdir, Up: Keywords

2.3.17 seqoutrun

Синтаксис:
seqOutrun <string>
Пример:
seqOutrun 1m

Устанавливает максимальное превышение msgid-последоваельностью текущего времени.

Используются десятичные числа с суффиксом (опционально).

Суффиксы:

y - год (365 дней)
m - месяц (31 день)
w - неделя (7 дней)
d - день
h - час

Секунды устанавливаются без суффикса.

По умолчанию используется переменная окружения SEQOUT или 3y, если она не определена.

Этот оператор не может повторяться.


Next: , Previous: seqoutrun, Up: Keywords

2.3.18 Pack

Синтаксис:
Pack zip|tgz|rar|arc|arj|..... <call>
Пример:
Pack zip zip -9 -g -q $a $f

Это оператор определяет командную строку архиватора. Файл будет перемещен в архив, что значит, что он будет удален с жесткого диска. Он останется только в архиве.

$a заменяется на имя файла архива.

$f заменяется на имя файла, который должен быть упакован.

Если какая-либо husky программа скомпилирована с hptzip, можно использовать следующее определение:

     
     Pack zip zipInternal

Этот оператор может повторяться.

Смотрите также документацию к hpt и htick.

2.3.19 Замечание

На некоторых ОС, если вызванная программа не найдена (не может быть запущена), результат команды pack не определен. (Например, DOS. Причина: command.com не возвращает код ошибки, если исполняемый файл не найден). Чтобы устранить опасность, пожалуйста, прописывайте архиваторы с полными путями.


Next: , Previous: pack, Up: Keywords

2.3.20 Unpack

Синтаксис:
Unpack "<call>" <offset> <matchcode>
Пример для DOS:
          Unpack  "c:\arc\pkunpak /r $a $p $f"                 0 1a
          Unpack  "c:\arc\pak e /wn $a $p"                    -2 fe
          Unpack  "c:\arc\lha e /m $a $p $f"                   2 2d6c68
          Unpack  "c:\arc\zoo e:O $a $p $f"                    0 5a4f4f
          Unpack  "c:\arc\jar e -y $a $p $f"                  14 1a4a61721b
          # *.rar
          Unpack  "c:\arc\unrar e -y -c- -o+ -inul $a $p $f"   0 52617221
          # rar-sfx/DOS
          Unpack  "c:\arc\unrar e -y -c- -o+ -inul $a $p $f"  28 52534658
          

Пример для Linux:
          Unpack  "/usr/bin/zoo e:O $a $p $f"                    0 5a4f4f
          Unpack  "/usr/bin/arc eno $a $p'*.*' $f"               0 1a
          Unpack  "/usr/bin/unzip -joLqq $a -d $p $f"            0 504b0304
          Unpack  "cd $p && /usr/bin/unarj e $a $f>/dev/null"    0 60ea
          Unpack  "/usr/bin/unrar e -y -c- -o+ -inul $a $p $f"   0 52617221
          Unpack  "/usr/bin/unrar e -y -c- -o+ -inul $a $p $f"  28 52534658
          Unpack  "/usr/bin/jar e -y $a $p $f"                  14 1a4a61721b
          Unpack  "cd $p && /usr/bin/ha eyq -e $a $f"            0 4841

Этот оператор определяет вызовы определенных распаковщиков в соответствии с идентификатором в архивном файле.

call строка вызова архиватора (заключена в кавычки!);

offset позиция идентификатора в архивном файле;

match code идентификатор в 16-ричном виде, ?? раскрывается как "любой байт";

$a заменяется на файл, который должен быть извлечен из архива;

$p заменяется на путь, куда распаковывать файлы (обычно tempoutbound);

$f заменяется именем файла с описанием, если он существует (используется htick, смотрите токен FileDescName; возможно, и другими husky программами).

     
     Пример: unpack "unzip -joLqq $a -d $p $f" 0 504b0304
     
            файлы, упакованные zip, распознаются по
              504b0304(hex) по смещению 0(integer)
            они могут быть распакованы htick с помощью команды
            "unzip -joLqq <filename> -d <path> <description_filename>"
     

Если какая-либо husky программа скомпилирована с hptzip, можно использовать следующее определение:

     
     Unpack zip zipInternal 0 504b0304

Этот оператор может повторяться.

Смотрите также документацию к hpt и htick.

2.3.21 Замечание

На некоторых ОС, если вызванная программа не найдена (не может быть запущена), результат команды unpack не определен. (Например, DOS. Причина: command.com не возвращает код ошибки, если исполняемый файл не найден). Чтобы устранить опасность, пожалуйста, прописывайте распаковщики с полными путями.


Next: , Previous: unpack, Up: Keywords

2.3.22 link

Синтаксис:
link <string>
Пример:
link Matthias Tichy

Этот оператор начинает новое описание линка. Все операторы (если они имеют отношение к линкам), находящиеся до следующего оператора link, меняют настройки только этого линка. Имя - это имя линка.

Этот оператор может повторяться.


Next: , Previous: link, Up: Keywords

2.3.23 linkdefaults

Синтаксис:
linkdefaults [begin | end | destroy]
Пример:
linkdefaults

Этот оператор начинает секцию определений по умолчанию для линков. Все последующие (относящиеся к линкам) операторы изменяют настройки линка по умолчанию до тех пор, пока не найден один из операторов 'link', 'linkdefaults end', 'linkdefaults destroy'. Все параметры, указанные в секциях linkdefaults, копируются в настройки линка всякий раз, когда в конфигурационном файле найден оператор 'link'. Относящиеся к линкам операторы, найденные после 'linkdefaults end' или 'linkdefaults destroy', или до первого оператора 'link' или 'linkdefaults', рассматриваются как ошибки. Оператор 'linkdefaults' без 'begin' или 'end' означает 'linkdefaults begin'. 'linkdefaults destroy' уничтожает все настройки по умолчанию.

Будьте осторожны с Pause, Export и т.д. ;-)

Этот оператор может повторяться. Новые определения заменяют предыдущие.


Next: , Previous: linkdefaults, Up: Keywords

2.3.24 aka

Синтаксис:
aka <addr>
Пример:
aka 2:2433/1245

Этот оператор определяет aka текущего линка.

Этот оператор может повторяться только для разных линков.


Next: , Previous: aka, Up: Keywords

2.3.25 ouraka

Синтаксис:
ouraka <addr>
Пример:
ouraka 2:2433/1247

Этот оператор определяет aka, который используется с этим линком.

Этот оператор может повторяться только для разных линков.


Next: , Previous: ouraka, Up: Keywords

2.3.26 password

Синтаксис:
password [<string>]
Пример:
password secret

Этот оператор устанавливает пароль по умолчанию для линка. Если вы не задаете другие пароли, они совпадают с этим. Пароль регистронезависим.

Этот оператор может повторяться только для разных линков.


Next: , Previous: password, Up: Keywords

2.3.27 pktpwd

Синтаксис:
pktpwd [<string>]
Пример:
pktpwd geheim

Этот оператор устанавливает пароль на pkt для данного линка. Пароль должен быть не длиннее 8 символов (из-за ограничений другого ПО). Допустимо пустое значение.

Этот оператор может повторяться только для разных линков.


Next: , Previous: pktpwd, Up: Keywords

2.3.28 ticpwd

Синтаксис:
ticpwd [<string>]
Пример:
ticpwd geheim

Этот оператор устанавливает пароль на tic для данного линка. Пароль должен быть не длиннее 8 символов (из-за ограничений другого ПО). Допустимо пустое значение.

Этот оператор может повторяться только для разных линков.


Next: , Previous: ticpwd, Up: Keywords

2.3.29 areafixpwd

Синтаксис:
areafixpwd [<string>]
Пример:
areafixpwd geheim

Этот оператор устанавливает пароль на areafix для данного линка. Пустое значение допустимо, но не рекомендуется.

Этот оператор может повторяться только для разных линков.


Next: , Previous: areafixpwd, Up: Keywords

2.3.30 filefixpwd

Синтаксис:
filefixpwd [<string>]
Пример:
filefixpwd geheim

Этот оператор устанавливает пароль на filefix для данного линка. Пустое значение допустимо, но не рекомендуется.

Этот оператор может повторяться только для разных линков.


Next: , Previous: filefixpwd, Up: Keywords

2.3.31 bbspwd

Синтаксис:
bbspwd [<string>]
Пример:
bbspwd geheim

Этот оператор устанавливает пароль на BBS для данного линка. Допустимо пустое значение.

Этот оператор может повторяться только для разных линков.


Next: , Previous: bbspwd, Up: Keywords

2.3.32 sessionpwd

Синтаксис:
sessionpwd [<string>]
Пример:
sessionpwd geheim

Этот оператор устанавливает пароль на сессию для данного линка. Допустимо пустое значение.

Этот оператор может повторяться только для разных линков.


Next: , Previous: sessionpwd, Up: Keywords

2.3.33 handle

Синтаксис:
handle <name>
Пример:
handle eddie

Этот оператор задает никнейм линка. Он предназначается для BBS.

Этот оператор может повторяться только для разных линков.


Next: , Previous: handle, Up: Keywords

2.3.34 packer

Синтаксис:
packer <packer>
Пример:
packer zip

Это оператор устанавливает паковщик для линка. Вы можете использовать паковщик, который определили ранее оператором pack. Если этот оператор отсутствует, или установлено packer none, почта не будет паковаться. Pkt будут складываться в аутбаунд.

Этот оператор может повторяться только для разных линков.


Next: , Previous: packer, Up: Keywords

2.3.35 grpdesc

Синтаксис:
grpDesc <group name> <group description>
Examples:
grpDesc A "Echomail areas from 2:5020/52" grpDesc Pvt Private areas

Этот оператор определяет описание группы арий. И имя, и описание группы могут быть заключены в двойные кавычки (опционально). Заметьте, что вы можете использовать в качестве имени группы строку переменной длины, а не только единственный символ.

Этот оператор может повторяться.


Next: , Previous: grpdesc, Up: Keywords

2.3.36 badarea

Синтаксис:
BadArea <name> <file> [-b <msgbase>] [Options]
Пример:
BadArea badarea /var/spool/fido/msgb/bad -b Squish

Этот оператор определяет BadArea. Смотрите документацию на HPT.

Этот оператор не может повторяться.


Next: , Previous: badarea, Up: Keywords

2.3.37 dupearea

Синтаксис:
dupeArea <name> <file> [-b <msgbase>] [Options]
Пример:
dupeArea dupeArea /var/spool/fido/msgb/dupes -b Squish

Этот оператор определяет DupeArea. Смотрите документацию на HPT.

Этот оператор не может повторяться.


Next: , Previous: dupearea, Up: Keywords

2.3.38 echoarea

Синтаксис:
EchoArea <name> <file> [-b <msgbase>] [Options] [linkAKAs] [linkOptions]
Пример:
EchoArea linux.develop.ger /var/spool/fido/msgb/linux.develop.ger -b Squish -a 2:2433/1247 -g A -dupeCheck move -dupehistory 11 -d "Linux development" 2:2433/1245 -def

Этот оператор определяет эхообласть. Смотрите документацию на HPT.

Этот оператор может повторяться.


Next: , Previous: echoarea, Up: Keywords

2.3.39 netmailarea

Синтаксис:
NetmailArea <name> <file> [-b <msgbase>] [Options]
Пример:
NetmailArea netmail /var/spool/fido/msgb/netmail -b Squish

Этот оператор определяет NetMailArea. Смотрите документацию на HPT.

Этот оператор может повторяться.


Next: , Previous: netmailarea, Up: Keywords

2.3.40 robotsarea

Syntax:
robotsArea <string>
Example:
robotsArea SecondNetMail

Указывает область, в которой areafix и filefix будут искать запросы. Ответы от этих роботов будут храниться тут же. В целях безопасности RobotsArea должна быть NetmailArea!

Этот оператор не может повторяться.


Next: , Previous: robotsarea, Up: Keywords

2.3.41 localarea

Синтаксис:
LocalArea <name> <file> [-b <msgbase>] [Options]
Пример:
LocalArea MyBBSarea /var/spool/fido/msgb/MyBBS -b Squish

Этот оператор определяет LocalArea: область сообщений на BBS. Смотрите документацию на HPT.


Next: , Previous: localarea, Up: Keywords

2.3.42 filearea

Синтаксис:
FileArea <name> <fileareapath> <uplink> [options] [<downlinks>]
Пример:
filearea Photoes /var/spool/fido/fileecho/Photoes 2:50/1 -d "Sysop photoes"

Этот оператор определяет FileArea: определение файл-эхи. Смотрите документацию на HTick.


Previous: filearea, Up: Keywords

2.3.43 bbsarea

Синтаксис:
bbsarea <name> <bbsareapath>
Пример:
BBSarea Incoming /var/spool/fido/BBS/incoming

Этот оператор определяет BBSArea: определение файл-области BBS. Используется при построении файл-листа. Смотрите документацию на HTick.


Next: , Previous: Keywords, Up: config file

2.4 Ключевые слова Highly Portable Tosser

Эта секция содержит только список ключевых слов. Читайте документацию на HPT.

     accessgrp
     address
     addtoseen
     advancedareafix
     advisorylock
     afterunpack
     aka
     allowemptypktpwd
     allowpktaddrdiffer
     arcmailsize
     arcnetmail
     areafix
     areafixecholimit
     areafixfrompkt
     areafixhelp
     areafixReportsAttr
     areafixkillrequests
     areafixmsgsize
     areafixnames
     areafixorigin
     areafixpwd
     areafixqueryreports
     areafixqueuefile
     areafixsplitstr
     areafixfromname
     areasfilenamecase
     areasmaxdupeage
     autoareacreate
     autoareacreatedefaults
     autoareacreatefile
     autoareacreateflag
     autoareacreatesubdirs
     autopassive
     autopause
     availlist
     badarea
     beforepack
     bundlenamestyle
     carbonaddr
     carbonandquit
     carboncopy
     carbondelete
     carbonexcludefwdfrom
     carbonextern
     carbonfrom
     carbonfromarea
     carbongroups
     carbonkeepsb
     carbonkludge
     carbonmove
     carbonout
     carbonreason
     carbonrule
     carbonsubj
     carbontext
     carbonto
     createareascase
     createfwdnonpass
     dailybundles
     defarcmailsize
     denyfwdfile
     denyfwdmask
     denyfwdreqaccess
     denyuncondfwdreqaccess
     disablekludgerescanned
     disabletid
     disablepid
     dupearea
     dupebasetype
     dupehistorydir
     echoarea
     echoareadefaults
     echomailflavour
     echotosslog
     excludepassthroughcarbon
     export
     filebox
     fileboxalways
     fileboxesdir
     forwardareapriority
     forwardpkts
     forwardrequestfile
     forwardrequestmask
     forwardrequests
     forwardrequesttimeout
     hptperlfile
     idlepassthrutimeout
     ignorecapword
     ignoreseen
     import
     importlog
     inbound
     include
     intab
     keeptrsfiles
     keeptrsmail
     killedrequesttimeout
     kludgeareanetmail
     level
     link
     linkbundlenamestyle
     linkdefaults
     linkfilebasedir
     linkgrp
     linkmsgbasedir
     linkwithimportlog
     localarea
     localinbound
     lockfile
     logechotoscreen
     mandatory
     mindiskfreespace
     msgbasedir
     name
     netarea
     netmailarea
     netmailextern
     netmailflag
     netmailflavour
     newarearefusefile
     noprocessbundles
     norules
     notvalidfilenamechars
     optgrp
     origin
     ouraka
     outbound
     outtab
     pack
     packaka
     packer
     packnetmailonscan
     password
     pause
     pktpwd
     pktsize
     processpkt
     protinbound
     publicgroup
     reducedseenby
     remap
     remoterobotname
     reportto
     robotsarea
     route
     routefile
     routemail
     rulesdir
     separatebundles
     setconsoletitle
     statlog
     sysop
     tearline
     tempinbound
     tempoutbound
     tossingext
     unpack


Next: , Previous: HPT, Up: config file

2.5 Ключевые слова HTick (Husky Ticker)

Эта секция содержит только список ключевых слов. Читайте документацию на HTick.

     AddDLC
     AnnAreaTag
     AnnAddrfrom
     AnnAddrto
     AnnExclude
     AnnFileOrigin
     AnnFileRFrom
     AnnFrom
     AnnInclude
     AnnMessFlags
     AnnOrigin
     AnnounceSpool
     AnnSubj
     AnnTo
     AutoFileCreateFlag
     BbsArea
     BusyFileDir
     ConvertLongNames
     ConvertShortNames
     DLCDigits
     ExecOnFile
     FileArea
     FileAreaBaseDir
     FileAreaCreatePerms
     FileDescPos
     FileAreaDefaults
     FileDescName
     FileEchoFlavour
     FileLDescString
     FileFixFromName
     FileFixHelp
     FileFixReportsAttr
     FileFixKillRequests
     FileFixNames
     MaxTicLineLength
     OriginInAnnounce (obsoleted)
     PassFileAreaDir
     SaveTic
     TicOutbound
     
      In Link section:
       AutoFileCreate
       AutoFileCreateDefaults
       AutoFileCreateFile
       AutoFileCreateSubdirs
       DelNotRecievedTIC
       FileFixEchoLimit
       FileFixFSC87Subset
       ForwardFilePriority
       ForwardFileRequestFile
       ForwardFileRequests
       NoTIC
       LinkFileBaseDir
       PackAka
       RemoteFileRobotName
       TickerPackToBox


Next: , Previous: HTick, Up: config file

2.6 Ключевые слова NLTools


Next: , Previous: NLTools, Up: NLTools

2.6.1 nodelistDir

Синтаксис:
nodelistDir <path>
Пример:
nodelistDir /var/spool/fido/nodelist

Эта команда указывает путь, где актуальные нодлисты находятся, или куда они должны быть записаны. Путь содержит исходный нодлист (see nodelist). Тут будут также храниться и скомпилированные нодлисты вроде FIDOUSER.LST.

Этот оператор не может повторяться.


Next: , Previous: nodelistdir, Up: NLTools

2.6.2 fidoUserList

Синтаксис:
fidoUserList <filename>
Пример:
fidoUserList fidouser.lst

Если этот оператор определен, компилятор нодлиста (например, ulc) создаст в директории с нодлистами (see nodelistdir) файл с заданным именем - список пользователей. Это простой текстовый файл со строками фиксированной длины, который содержит имена пользоватетелей (узлов, пойнтов) и соответствующие им узловые или пойнтовые адреса. Список отсортирован по именам пользователей (не учитывая регистр), так что он может быть быстро просмотрен в поисках адреса. Формат "список пользователей fido" понимает, к примеру, msged.


Next: , Previous: fidouserlist, Up: NLTools

2.6.3 nodelist

Синтаксис:
Nodelist <name>
Пример:
Nodelist nodelist or Nodelist points24

Этот оператор начинает новое определение нодлиста. Все последующие операторы, находящиеся до следующего оператора nodelist и относящиеся к нодлистам, изменяют настройки этого нодлиста.

Имя, которое вы указываете, должно совпадать с базовым именем (без расширения и пути) исходного распакованного файла нодлиста. Утилиты husky ulc и nlupdate проверяют совпадение имен без учета регистра, но другим утилитам может понадобиться точное написание. Ожидается, что исходный нодлист находится в директории нодлистов (see nodelistdir).


Next: , Previous: nodelist, Up: NLTools

2.6.4 diffupdate

Синтаксис:
DiffUpdate <path_and_basname>
Пример:
DiffUpdate /var/spool/filebase/nodediff/nodediff

Здесь вы можете указать базовое имя файлов изменения нодлиста (ноддиффов), которые используются для поддержания свежести нодлиста. Аргументом DiffUpdate является полное, с путем, имя ноддиффа, без расширения. Например, если файлэха находится в /var/spool/filebase/24000, куда ваш тикер складывает апдейты для немецкого пойнтлиста, и эти апдейты имеют имена points24.a26, points24.a33 и т.д., то вы используете

     DiffUpdate /var/spool/filebase/24000/points24

Ключевое слово Diffupdate используется, например, nlupdate. Он распакует ноддифф (если он заархивирован, конечно, неархивированные диффы также поддерживаются), применит дифф к соответствующему нодлисту и удалит временно распакованный дифф.


Next: , Previous: diffupdate, Up: NLTools

2.6.5 fullupdate

Синтаксис:
FullUpdate <path_and_basname>
Пример:
FullUpdate /var/spool/filebase/nodelist/nodelist

Этот оператор работает как DiffUpdate (see diffupdate). Разница в том, что здесь вы не указываете расположение файла ноддиффа, а указываете, где могут быть найдены файлы/архивы полных нодлистов. Некоторые левонеты (обычно) не распространяют файлы ноддиффов, но просто хатчат свежие нодлисты каждые несколько недель. В этом случае вам понадобится оператор FullUpdate.


Next: , Previous: fullupdate, Up: NLTools

2.6.6 defaultzone

Синтаксис:
DefaultZone <zone>
Пример:
DefaultZone 2

Некоторые нодлисты не начинаются с указания ‘Zone’. Это случай, например, немецкого пойнтлиста, но он возможен и в левонетах, где всего одна зона. В этом случае вы можете использовать ключевое слово DefaultZone, чтобы указать номер зоны по умолчанию для всех узлов, указанных в нодлисте.


Next: , Previous: defaultzone, Up: NLTools

2.6.7 nodelistformat

Синтаксис:
Nodelistformat <format>
Пример:
          NodelistFormat standard
          NodelistFormat points4d
          NodelistFormat points24

Здесь вы можете указать формат распакованного нодлиста. По умолчанию это ‘standard’ - стандартный формат нодлиста Fidonet. Вы можете также указать ‘points4d’, что нужно компилятору нодлиста, чтобы распознать стандартный пойнтлист 4D формата или ‘points24’ немецкого формата points24 - чтобы он видел правильные 5D пойнтовые адреса вместо фейковых.


Previous: nodelistformat, Up: NLTools

2.6.8 delapplieddiff

Синтаксис:
delAppliedDiff <bool>
Пример:
delAppliedDiff on ordelAppliedDiff off

NLTools может удалять ноддиффы после их применения, если вы установите значение ключевого слова delAppliedDiff в on. Значение по умолчанию - off.

Этот токен не может повторяться.


Next: , Previous: NLTools, Up: config file

2.7 Ключевые слова EmailPkt

Общие токены:

Токены определения линка:


Next: , Previous: EmailPkt, Up: EmailPkt

2.7.1 sendMailCmd

Синтаксис:
sendMailCmd string
Пример:
sendMailCmd /usr/sbin/sendmail $a <$f>

Это ключевое слово используется для определения команды отправки почты и ее параметров. Макрос '$a' указывает положение e-mail адреса получателя; макрос '$f' указывает положение имени файла с телом письма. Если '$f' опущен, тело письма будет заполняться из stdin.

Этот оператор не может повторяться.


Next: , Previous: sendMailCmd, Up: EmailPkt

2.7.2 email

Синтаксис:
email <email-address>
Пример:
email eddie@ironmaiden.com

Это ключевое слово используется для указания e-mail адреса линка. Может быть использовано для отправки pkt по e-mail.

Этот оператор может повторяться только для разных линков.


Next: , Previous: email, Up: EmailPkt

2.7.3 emailFrom

Синтаксис:
emailFrom <email-address>
Пример:
emailFrom fred@ironmaiden.com

Это ключевое слово используется для указания e-mail адреса, используемого как адрес отправителя в исходящих письмах для этого линка.

Этот оператор может повторяться только для разных линков.


Next: , Previous: emailFrom, Up: EmailPkt

2.7.4 emailSubj

Синтаксис:
emailSubj <subject>
Пример:
emailSubj Fido over EMail message in UUE format

Это ключевое слово используется для указания поля "Тема" в письмах к и от этого линка. Оно может игнорироваться некоторыми кодировками (например, SEAT).

Этот оператор может повторяться только для разных линков.


Previous: emailSubj, Up: EmailPkt

2.7.5 emailEncoding

Синтаксис:
emailEncoding (MIME | SEAT | UUE)
Пример:
emailEncoding MIME

Это ключевое слово используется для указания кодировки исходящих на этого линка писем.

Этот оператор может повторяться только для разных линков.


Next: , Previous: EmailPkt, Up: config file

2.8 Ключевые слова BSOpack

Эта секция содержит только список ключевых слов. Читайте документацию на BsoPack.

     maxunpackednetmail
     packnetmail


Next: , Previous: BSOpack, Up: config file

2.9 Ключевые слова herp

Herp - это Husky External file Request Processor (внешний фрек-процессор). Следующие ключевые слова fidoconfig специфичны для herp. Некоторые программы herp, в частности herpidx, также используют часть конфигурации htick, например, определения файловых областей.


Previous: herp, Up: herp

2.9.1 reqidxdir

Синтаксис:
reqidxDir <path>
Пример:
reqidxDir /var/spool/fido/reqidx

Эта команда указывает директорию, которая будет использоваться для хранения индекса запросов, сгенерированного herpidx. Эта директория должна быть доступной для записи для процесса herpidx и как минимум доступной для чтения для пользователя, под которым будут запускаться ваш мейлер и herp. herpidx будет размещать здесь разнообразные файлы индексов запросов. Эта директория не должна использоваться ни для каких других целей. Индекс может стать довольно большим, так что отведите достаточно места.


Previous: herp, Up: config file

2.10 Пример работающего конфига

     # main fidoconfig file
     name Dummy point station
     sysop Ivan Durak
     location Moscow, Russia
     address 2:5020/9999.99
     inbound /home/username/fido/inbound/insecure
     protinbound /home/username/fido/inbound
     outbound /home/username/fido/outbound
     tempinbound /home/username/fido/tmp.inbound
     tempoutbound /home/username/fido/tmp.outbound
     logfiledir /home/username/fido/log
     dupehistorydir /home/username/fido/dupebase
     nodelistdir /home/username/fido/etc
     msgbasedir /home/username/fido/msgbase
     echotosslog /home/username/fido/log/toss.log
     importlog /home/username/fido/log/import.log
     
     linkwithimportlog kill
     separatebundles yes
     disablepid yes
     disabletid yes
     # hptperlfile /home/username/fido/lib/hptfunctions.pl
     pack zip zip -9 -j -q $a $f
     unpack "unzip -j -Loqq $a $f -d $p" 0 504b0304
     
     carbonto Ivan Durak
     carboncopy PERSONAL.MAIL
     
     robotsarea NETMAIL
     
     robot default
     killrequests yes
     reportsattr loc pvt k/s npd
     
     robot areafix
     fromname Areafix robot
     robotorigin Areafix robot
     
     linkdefaults begin
     allowemptypktpwd secure
     packer zip
     areafixautocreate off
     areafixautocreatedefaults -b squish -dupecheck del -dupehistory 14
     areafixautocreatefile /home/username/fido/etc/areas
     echomailflavour direct
     forwardrequests off
     linkdefaults end
     
     # Link definitions
     
     link LoopBack
     aka 2:5020/9999.99
     allowemptypktpwd on
     
     link 2:5020/9999
     aka 2:5020/9999
     ouraka 2:5020/9999.99
     password pAs5w0rD
     areafixpwd pAs5w0rD
     # areafixautocreate on
     
     # Netmail routes
     # syntax:
     #  route <flavor> <next hop> <target> [target ...]
     #
     #route direct 2:9999/99 2:9999/99.*
     #route direct 2:9999/99 2:9999/*
     route direct 2:5020/9999 *
     
     netmailarea NETMAIL /home/username/fido/msgbase/netmail -b squish
     badarea     BAD     /home/username/fido/msgbase/bad     -b squish
     dupearea    DUPE    /home/username/fido/msgbase/dupe    -b squish
     localarea   PERSONAL.MAIL /home/username/fido/msgbase/personal.mail \
         -b squish
     
     # Areas definition
     #echoarea ECHO.AREA.READ /home/username/fido/msgbase/echo.area.read \
         -b squish -dupecheck del -dupehistory 14 -a 2:5020/9999.99 \
         2:5020/9999
     #echoarea ECHO.AREA.PASS passthrough -dupecheck del -dupehistory 14 \
         -a 2:5020/9999.99 2:5020/9999


Next: , Previous: config file, Up: Top

3 Конвертирование fidoconfig в конфиги golded, msged и aquaed

Так как оригинальный GoldEd от Odinn Sorensen совсем не поддерживает fidoconfig, а msged и aquaed - только в бета версиях, мы разработали три программы, которые конвертируют ваш fidoconfig в эти собственные форматы конфигурационных файлов.

  1. fconf2golded fconf2golded <goldedConfigFileName> [<default.cfg>]
              fconf2golded ~/golded/golded.cfg ~/golded/goldDefaults.cfg
    
  2. fconf2msged fconf2msged <msgedConfigFileName>
              fconf2msged ~/msged.areas
    
  3. fconf2aquaed fconf2aquaed <aquaedConfigFileName> [<default.cfg>] (если вы указываете default.cfg, в вашем конфигурационном файле будет сгенерирован include <default.cfg> - подключение default.cfg)
              fconf2aquaed ~/aquaed/aquaed.cfg
    


Next: , Previous: converting, Up: Top

4 Проверка конфига

Вам следует запускать tparser каждый раз после того, как вы изменили конфиг. Если tparser нашел ошибку в конфиге, пожалуйста, исправьте его и попробуйте снова.

Синтаксис:
tparser [-h|−-help] [-Dvar=value] [-E] [-P] [/path/to/config/file]
Пример:
          tparser -Dmodule=hpt | less

tparser (как и любая программа fidoconfig) выведет сообщение об ошибке, если вы допустили таковую в конфиге. Также он может вывести какие-то предупреждения о ваших установках в конфиге. Он будет "ворчать" на любое ключевое слово, которое он не знает. Он остановится после первой же ошибки (не предупреждения), чтобы дать вам возможность изменить конфиг.

4.1 Options

-Dvar=value
Установить переменную конфига var в value.
-E
Вывести конфиг на stdout (раскрываются все переменные).
-h
−-help
Вывести информацию по использованию.
-P
Попытаться создать еще не существующие директории.


Previous: tparser, Up: Top

5 Как связаться с автором

Вы можете написать мне на

     mtt@tichy.de
     2:2432/645

и в фидошных эхах

     linux.develop.ger
     fidosoft.husky

Max Levenkov:

     sackett@mail.ru
     ru.husky (русская)
     ru.echoprocessors (русская)
     fidosoft.husky (английская)

Свежая библиотека fidoconfig и другой fido софт будут доступны на http://husky.sourceforge.net.