Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
technique:adminsys:secu:password_store:completion [2021/11/22 22:35] – ↷ Page déplacée de technique:tips:password_store:completion à technique:adminsys:secu:password_store:completion qduchemitechnique:adminsys:secu:password_store:completion [2021/11/22 22:35] (Version actuelle) – ↷ Liens modifiés en raison d'un déplacement. qduchemi
Ligne 1: Ligne 1:
 +{{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.txt
  • de qduchemi