Files
cpca-tools/bash-completion/README.md
T
a.gritsenkoandClaude Opus 5.5 11283c573a Add bash completion for pkica
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>
2026-09-28 23:22:43 +03:00

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.