2 votos

¿Existe una alternativa a whiptail para MacOS?

Me gustaría probar un shell script que haga uso de cola de látigo pero estoy en un MAC y whiptail no parece existir allí. ¿Alguien sabe si existe una alternativa de uso directo (como, por ejemplo exa para ls )?

Este es el script que me gustaría probar (Es un WP-CLI script que me permita seleccionar las instalaciones locales de WordPress, mediante un diálogo. Lo encontré en la parte inferior de esta página ):

#!/bin/bash

WP_TOP_PATH="/home/"
MENU_TEXT="Choose an installation"
GAUGE_TEXT="Searching for WordPress"

declare -a MENU
WPS="$(wp --allow-root find "$WP_TOP_PATH" --field=version_path)"
WP_TOTAL="$(wc -l <<< "$WPS")"
WP_COUNT="0"

while read -r WP; do
    WP_LOCAL="${WP%wp-includes/version.php}"

    NAME="$(cd "$WP_LOCAL"; sudo -u "$(stat . -c %U)" -- wp --no-debug --quiet option get blogname)"
    if [ -z "$NAME" ]; then
        NAME="(unknown)"
    fi
    MENU+=( "$WP_LOCAL" "$NAME" )

    echo "$((++WP_COUNT * 100 / WP_TOTAL))".
done <<< "$WPS" > >(whiptail --gauge "$GAUGE_TEXT" 7 74 0)

WP_LOCAL="$(whiptail --title "WordPress" --menu "$MENU_TEXT"  $((${#MENU[*]} / 2 + 7)) 74 10 "${MENU[@]}" 3>&1 1>&2 2>&3)"

if [ $? -ne 0 ] || [ ! -d "$WP_LOCAL" ]; then
    echo "Cannot find '${WP_LOCAL}'" 1>&2
    exit 100
fi

echo "cd ${WP_LOCAL}"

2voto

Oskar Puntos 1242

Yo empezaría con brew install dialog de https://brew.sh y luego

alias whiptail=dialog

Con suerte no tendrás que alterar tu script aparte de dejar el alias como una nueva línea 3 en tu script. Para la gente que no está usando Wordpress en otro Unix, las aplicaciones e instaladores específicos de Apple parecen una gran opción también debido a amplia documentación y aplicaciones nativas .

Por último, si ves que necesitas whiptail, los contenedores son una gran opción para no tener que bifurcar tus herramientas y editar scripts.

1voto

DimitarT Puntos 1

Gracias a la respuesta de bmike y el comentario de @nohillside he podido hacer que esto funcione. Después de ejecutar brew install dialog , puse esto en mi ~/.bashrc :

alias whiptail=dialog

Y para hacer que mi script respete realmente el alias, he seguido el las instrucciones se encuentran aquí y poner esto en mi script al principio:

#!/bin/bash

shopt -s expand_aliases
source ~/.bashrc

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X