Quiero configurar un acceso directo de shell script con el comando Atajos para copiar una contraseña en mi portapapeles. El script funciona bien cuando se ejecuta manualmente desde el terminal, pero se agota cuando se ejecuta desde la aplicación Shortcuts.
Configurar
Los requisitos previos para ejecutar el script son:
brew install pass
brew install pass-otp
brew install pinentry-mac
brew install choose-gui
echo "pinentry-program /opt/homebrew/bin/pinentry-mac" > .gnpug/gpg-agent.conf
killall gpg-agent
Y necesitas al menos una contraseña en el almacén de contraseñas. Puedes añadir una ejecutando:
pass generate example.com
El script
prefix=${PASSWORD_STORE_DIR-~/.password-store}
password_files=( "$prefix"/**/*.gpg )
password_files=( "${password_files[@]#"$prefix"/}" )
password_files=( "${password_files[@]%.gpg}" )
password=$(printf '%s\n' "${password_files[@]}" | /opt/homebrew/bin/choose "$@")
[[ -n $password ]] || exit
plain=$(/opt/homebrew/bin/pass show ${password})
echo ${plain} | pbcopy
La cuestión
Ejecutar manualmente el script desde un intérprete de comandos funciona correctamente. Se abre el menú donde puedo seleccionar una contraseña y se copia correctamente en el portapapeles.
Pero ejecutar el script desde la aplicación Shortcuts no funciona. El menú de selección se abre correctamente, pero después de seleccionar una contraseña, el script se ejecuta infinitamente sin salir.
Mi suposición es que espera una entrada de contraseña para descifrar el archivo de contraseña con GPG. Cuando se ejecuta el script manualmente, la Pinentry Mac UI se abre para introducir una contraseña. Tal vez esto está roto desde dentro de la aplicación Shortcuts.