Не отрабатывает шаблон

Доброго дня!
В очередной раз пытаюсь достичь просветления в части работы с шаблонами.
Нужно создать директорию с файлами в профиле пользователя. В локальном случае свои шаблоны размещаю в директории /var/calculate/templates/

cldx ~ # eix-sync

cldx ~ # ls -lRA /var/calculate/templates/*
/var/calculate/templates/3.1:
итого 8
drwxr-xr-x 3 root root 4096 дек.   7 10:41 ac_desktop_profile
-rw-r--r-- 1 root root   51 дек.   7 10:34 .calculate_directory

/var/calculate/templates/3.1/ac_desktop_profile:
итого 12
-rw-r--r-- 1 root root   24 дек.   7 10:41 .calculate_directory
drwxr-xr-x 4 root root 4096 дек.   7 10:35 thunderbird-10.0

/var/calculate/templates/3.1/ac_desktop_profile/thunderbird-10.0:
итого 16
drwxr-xr-x 2 root root 4096 дек.   4 14:38 .calculate
-rw-r--r-- 1 root root  139 дек.   7 10:35 .calculate_directory
-rw-r--r-- 1 root root   79 дек.   4 17:06 .signature
drwx------ 3 root root 4096 дек.   4 14:41 .thunderbird

/var/calculate/templates/3.1/ac_desktop_profile/thunderbird-10.0/.calculate:
итого 4
-rw-r--r-- 1 root root 78 дек.   4 14:38 ini.env

/var/calculate/templates/3.1/ac_desktop_profile/thunderbird-10.0/.thunderbird:
итого 8
drwx------ 2 root root 4096 дек.   4 14:47 default
-rw-r--r-- 1 root root  136 дек.   4 14:41 profiles.ini

/var/calculate/templates/3.1/ac_desktop_profile/thunderbird-10.0/.thunderbird/default:
итого 12
-rw------- 1 root root 11127 дек.   4 14:39 prefs.js

Содержимое файлов .calculate_directory

cldx 3.1 # cat .calculate_directory
 # Calculate append=skip cl_name==calculate-desktop

cldx ac_desktop_profile # cat .calculate_directory
 # Calculate append=skip

cldx thunderbird-10.0 # cat .calculate_directory
 # Calculate  path=~ chmod=0700 chown=#-main.ur_login-#:#-main.ur_group-# ini(update.thunderbird)!=off&&ini(ver.thunderbird)==&&pkg()>=10.0

Ожидаю, что директория .thunderbird с имеющимися в ней файлами, скопируется в директорию пользователя и пропишутся соответствующие переменные в Ini.env - стандартная, вобщем-то, задача.

Далее, запускаю настройку десктопа пользователя:

cldx ~ # cl-desktop --verbose guest
* Следующие файлы были изменены:
*      /home/guest/.dmrc
* Учетная запись пользователя guest настроена ...

В хелпе написано, что параметр --verbose выведет все обработанные шаблоны. Что-то не выводит. Ошибок нет, но директория с файлами не появляется.
Ставил параметр ac_desktop_desktop==on - не помогает.
Есть ли более разговорчивое средство отладки шаблонов?

О cl_name можно забыть, она оставлена в шаблонах для совместимости с утилитами < 3.1. Также ac_desktop_desktop была переименована в ac_desktop_profile.

На примере настройки SMplayer (/var/lib/layman/calculate/profiles/templates/3.1/6_ac_desktop_profile/2-user/media-video/smplayer-0.6/) сделаю шаблоны. Поскольку файлов несколько, создам для них в директорию ‘/var/calculate/templates/Thunderbird’.

В файле свойств директории-шаблона .calculate_directory опишу все условия:

 # Calculate env=desktop path=~ name=.thunderbird 
ac_desktop_profile==on&&merge(mail-client/thunderbird)!=&&ini(office.thunderbird)==&&pkg(mail-client/thunderbird)>=17&&cl_chroot_status==off&&ur_login!=root&&ini(main.update)!=off&&cl_ver>=3.1.1

Создам файл ini.env со следующим содержимым:

 # Calculate format=samba path=~/.calculate

[office]
thunderbird = 17

Создам файл ‘default’ с настройками.

Готово! Смотрим:

 # cl-desktop --verbose=on -l local alex
 * Настройка пользовательского профиля
[======================================================================================================>]100% Time: 00:00:00
 * Следующие файлы были изменены:
 *      /home/alex/.thunderbird/default
 *      /home/alex/.calculate/ini.env
 * Пользовательская учётная запись alex настроена ...

Проверяем что в ‘~/.calculate/ini.env’ появилась запись:

[office]
thunderbird = 17

Проверим что шаблон повторно не выполнится:

 # cl-desktop --verbose=on -l local alex
 * Настройка пользовательского профиля
 * Следующие файлы были изменены:                                                                                           
[======================================================================================================>]100% Time: 00:00:00
 * Пользовательская учётная запись alex настроена ...

То же можно сделать, выполняя ‘cl-core-setup --pkg-name=thunderbird’.

Некоторые моменты.

В ini.env я завел отдельную ветку для своих настроек, т.к. я не уверен, что в шаблонах утилит пакет будет назван также. В сложных случаях, когда настройки хранятся в sqlite, шаблоны будут проверять на наличие настроек, не пытаясь что-то изменить, если настройки уже есть. Здесь такой же случай.

В шаблонах утилит функции merge() и pkg() вычисляют аргументы из имён директорий (см. media-video/smplayer-0.6), поскольку в моём примере структура шаблонов состоит из одной директории, имя пакета я передаю явным образом.

Некоторые проверки можно опустить, например если вы обновили утилиты, то лишней будет проверка ‘cl_ver>=3.1.1’. Если вы не используете calculate-assemble или calculate-builder, можно убрать проверку cl_chroot_status==off.

Логика сильно упрощается, если шаблонов несколько. В этом случае проще создать структуру из нескольких директорий с общими проверками.

Будут вопросы - пишите.

каша какая то… video/smplayer-0.6 thunderbird
кто нибудь понял эту муть кроме автора этого “шедевра”? пример того, как не надо отвечать на вопрос

Спасибо, Александр, за раскрытие темы.
Меня смущают несколько моментов - у меня CLDX-12.0.3, сделал

eix-sync

запускаю

cl-desktop --verbose=on -l local alex

Говорит, ошибка синтаксиса. Смотрю:

cldx ~ # cl-desktop --help
calculate-desktop 2.2.30

Использование: cl-desktop [параметры] пользователь
Создает домашнюю директорию для новой пользовательской учетной записи

Примеры:
# Создать домашнюю директорию для пользователя user_name
cl-desktop user_name

Опции:
–verbose показать применнные шаблоны
–set VAR=VALUE установка значения для переменной
–install установить пакет
–uninstall удалить пакет
–progress показывать индикатор прогресса при старте xdm
-v, -show-variables вывод переменных, если две опции подробный вывод
(включает вывод скрытых переменных)
–filter FILTER фильтрация переменных (используйте регулярное
выражение *), используйте совместно с опцией ‘-v
–show-variables’
–xml вывод переменных в формате XML, используйте совместно
с опцией ‘-v --show-variables’
–color WHEN контроль использования цвета. WHEN может принимать
значения ‘never’, ‘always’, или ‘auto’
–version вывод версии программы и выход
-h, --help вывод этой справки и выход

Второе: если прописать ac_desktop_profile - опять же ругается, говорит, что такой переменной нет - хочет именно переменную ac_desktop_desktop.

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

Текущая на данный момент версия calculate-desktop 3.1.1. Соответственно и параметр там этот есть и переменная имеет более удачное имя - ac_desktop_profile. Новые утилиты входят в состав Calculate Linux 13 beta, до которого можно уже сейчас обновить систему.