シェル補完
secretctl は bash、zsh、fish、PowerShell のシェル補完をサポートしています。
クイックインストール
Bash
# ~/.bashrc に追加
echo 'source <(secretctl completion bash)' >> ~/.bashrc
source ~/.bashrc
Zsh
# ~/.zshrc に追加
echo 'source <(secretctl completion zsh)' >> ~/.zshrc
source ~/.zshrc
Fish
secretctl completion fish > ~/.config/fish/completions/secretctl.fish
PowerShell
# PowerShell プロファイルに追加
Add-Content $PROFILE 'secretctl completion powershell | Out-String | Invoke-Expression'
補完される内容
シェル補完で以下が補完されます:
- コマンド:
secretctl <TAB>で利用可能なコマンドを表示 - サブコマンド:
secretctl completion <TAB>でシェルオプションを表示 - フラグ:
secretctl get --<TAB>で利用可能なフラグを表示 - シークレットキー: 動的補完を有効にした場合(下記参照)
動的補完
デフォルトでは、セキュリティ上の理由からシークレットキーは補完されません。動的なシークレットキー補完を有効にするには:
export SECRETCTL_COMPLETION_ENABLED=1
動的補完を有効にすると:
secretctl get <TAB>
# 利用可能なシークレットキーを表示
secretctl delete <TAB>
# 利用可能なシークレットキーを表示
セキュリティに関する注意
動的補完は Vault がアンロックされている必要があります。Vault がロックされている場合、アンロックするまでキー補完は利用できません。
永続的に有効にする
シェル設定に追加:
# Bash (~/.bashrc) または Zsh (~/.zshrc)
export SECRETCTL_COMPLETION_ENABLED=1
source <(secretctl completion bash) # または zsh
# Fish (~/.config/fish/config.fish)
set -gx SECRETCTL_COMPLETION_ENABLED 1
インストールスクリプト
secretctl には補完をインストールするヘルパースクリプトが含まれています:
Bash
# インストールスクリプトは ~/.bash_completion.d/ に補完を追加します
./scripts/install-completion-bash.sh
Zsh
# インストールスクリプトは ~/.zsh/completions/ に補完を追加します
./scripts/install-completion-zsh.zsh
Fish
# インストールスクリプトは ~/.config/fish/completions/ に補完を追加します
./scripts/install-completion-fish.fish
インストールの確認
インストール後、新しいターミナルを開いてテスト:
# secretctl と入力して Tab を押す
secretctl <TAB>
# 表示される: audit backup completion delete export generate get init list lock run set unlock
# サブコマンドを入力して Tab を押すとフラグが表示される
secretctl get --<TAB>
# --json, --silent などのフラグが表示される
トラブルシューティング
補完が動作しない
- 新しいターミナルを開く - 補完スクリプトはシェル起動時に読み込まれます
- source コマンドを確認 -
source <(secretctl completion ...)がシェル設定に含まれていることを確認 - secretctl が PATH にあることを確認 -
which secretctlを実行して確認
動的補完が動作しない
- 環境変数を確認 -
echo $SECRETCTL_COMPLETION_ENABLEDが1を表示するか確認 - Vault をアンロック - 動的補完にはアンロックされた Vault が必要
- Vault の状態を確認 -
secretctl listを実行してアクセスを確認
Zsh compinit の問題
"command not found: compdef" エラーが出る場合、補完 source の前に以下を追加:
autoload -Uz compinit && compinit
source <(secretctl completion zsh)
上級者向け: カスタム補完
補完システムは Cobra の組み込み補完を使用しています。以下の方法で拡張できます:
- secretctl をフォーク
cmd/secretctl/のコマンドにValidArgsFunctionを追加go buildで再ビルド
次のステップ
- CLI コマンドリファレンス - 完全なコマンドドキュメント
- コマンドの実行 - シークレットをコマンドで使用