Afficher la pageAnciennes révisionsLiens de retourHaut de page Cette page est en lecture seule. Vous pouvez afficher le texte source, mais ne pourrez pas le modifier. Contactez votre administrateur si vous pensez qu’il s’agit d’une erreur. {{indexmenu_n>40}} ## Avoir l'auto-complétion en ligne de commande Cette partie détaille comment avoir la complétion en ligne de commande sur votre machine si vous utilisez `bash`. C'est également possible d'avoir la complétion avec `zsh` et `fish`, mais ce n'est pas détaillé ici. Les scripts de complétion originaux pour les 3 shells sont disponibles [ici](https://git.zx2c4.com/password-store/tree/src/completion). Pour avoir l'auto-complétion d'une commande en `bash`, il faut avoir un fichier de complétion du même nom dans `/etc/bash_completion.d/`. ### Le cas easy Prenons l'exemple d'une machine qui a le dépôt `pass` de Picasoft dans le `$HOME/.picapass` de l'utilisateurice. Assurez vous d'avoir un alias `picapass` [[technique:adminsys:secu:password_store:usage|en place]]. Le script de complétion bash est [sur le dépôt](https://gitlab.utc.fr/picasoft/interne/pass/-/blob/master/.bash_completion.d/picapass). Copiez le dans votre `/etc/bash_completion.d/` : ```bash sudo cp $HOME/.picapass/.bash_completion.d/picapass /etc/bash_completion.d/picapass ``` Normalement, les changements seront effectifs à la prochaine session bash. Ouvrez un nouveau terminal. (`source ~/.bashrc` ne suffit pas) ### Utiliser un autre alias Si vous utilisez **un autre alias** que `picapass`, renommez le fichier : ```bash sudo mv /etc/bash_completion.d/picapass /etc/bash_completion.d/<NOUVEL_ALIAS> ``` Et éditez le fichier de complétion : ```bash # dernière ligne complete -o filenames -F _pass picapass # remplacer cette ligne complete -o filenames -F _pass <NOUVEL_ALIAS> # par cette ligne ``` ### Supporter un autre dossier Si votre dossier "picapass" **n'est pas `$HOME/.picapass`**, éditez le fichier le fichier de complétion : ```bash # ligne 8 local prefix="${PASSWORD_STORE_DIR:-$HOME/.picapass/}" # remplacer cette ligne local prefix="${PASSWORD_STORE_DIR:-<VOTRE_DOSSIER_PICAPASS>}" # par cette ligne ``` ### Ça ne fonctionne pas ? C'est sûrement parce qu'il manque ceci dans le `~/.bashrc` : ```bash # necessary to use completion if ! shopt -oq posix; then if [ -f /usr/share/bash-completion/bash_completion ]; then . /usr/share/bash-completion/bash_completion elif [ -f /etc/bash_completion ]; then . /etc/bash_completion fi fi ``` ### Devenir un·e vrai·e bg Celleux qui veulent ***optimiser*** leur utilisation du `pass` peuvent créer un deuxième alias `picapas` qui équivaut à `pass -c` ```bash alias picapas="PASSWORD_STORE_DIR=$HOME/.picapass pass -c" ``` Répétez les mêmes instructions, avec le fichier `$HOME/.picapass/.bash_completion.d/picapas`. technique/old/password_store/completion.txtde qduchemi