Static completion rules for all pkica commands, options and option values, plus unit, interactive (tmux) and --help reconciliation tests. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
4.0 KiB
Автодополнение bash для pkica
pkica.bash-completion — правила автодополнения (TAB) в bash для утилиты pkica
(командная строка управления инфраструктурой КриптоПро УЦ 2.0).
Установка
Требуется пакет bash-completion.
Для всех пользователей:
sudo install -m 644 pkica.bash-completion /usr/share/bash-completion/completions/pkica
Для текущего пользователя:
mkdir -p ~/.local/share/bash-completion/completions
cp pkica.bash-completion ~/.local/share/bash-completion/completions/pkica
Для текущей сессии:
source pkica.bash-completion
После установки откройте новый терминал. Дополнение работает для pkica
из PATH и для запуска по пути (./pkica, /opt/.../pkica).
Что дополняется
- команды и подкоманды всех уровней (
pkica ca signing-key change-usage); - опции текущей команды: после
-— короткие и длинные, без-— только длинные. Уже указанные опции (и их синонимы) повторно не предлагаются; - значения опций с фиксированным набором значений:
| Опция | Значения |
|---|---|
--format |
Json, Yaml |
-s, --storage-type |
PostgreSql, SqlServer |
--sign-tool-class |
KC1 … KA1 |
-k, --key-spec |
Signature, KeyExchange |
--key-location, --store-location |
CurrentUser, LocalMachine |
--store-name |
My, Root, CertificateAuthority, … |
--serial-number-algorithm |
CryptoPro, Msca |
-p, --provider-type |
80, 81 |
-u, --usage (signing-key) |
SignCertAndCrl, SignCrl, Retired |
-d, --default-template |
SubCa, User, Tls, Ocsp, Tsp, Qual, QualOcsp, QualTsp |
-v, --value (identification-kind) |
Personal, RemoteCert, RemotePassport, RemoteSystem |
-n, --name (ra settings) |
NamePolicy, Templates, DefaultAuthority |
-v, --validity, -V, --key-validity |
Years:, Months:, Weeks:, Days:, Hours:, Minutes: |
- пути к файлам:
-f/--file,-o/--out-file,--extensions-file,--tls-cert-file,--signing-cert-file; каталоги:-o/--output-folder(ca crl get,ca crl issue); - поддерживается форма
--опция=значение.
Одна и та же короткая опция в разных командах может означать разное
(например, -f в ra operator add — это --first-name, а не файл) — это учитывается.
Ограничения
- Утилита при дополнении не вызывается: дерево команд зашито в файл (запуск .NET-приложения занимает заметное время).
- Имена экземпляров ЦС, шаблонов, папок, групп, операторов не дополняются — для этого нужен доступ к БД.
Тесты
Запуск в Linux или WSL из каталога bash-completion:
bash tests/test_completion.sh # модульные тесты функции дополнения
bash tests/test_interactive.sh # реальный TAB в bash через tmux (нужен tmux)
bash tests/check_tree.sh [pkica] # сверка с выводом `pkica ... --help`
check_tree.sh рекурсивно обходит справку утилиты (без аргумента берётся pkica
из PATH) и сообщает о расхождениях команд и опций с таблицами в
pkica.bash-completion. Запускайте его после обновления pkica.