/ / cómo hago un alias modificador de envvar - bash

cómo hago un alias modificador de envvar - bash

Ejecuto varias aplicaciones de Heroku de la misma carpeta y, a menudo, tengo que dirigirme a una específica para un comando que estoy escribiendo, a través de una de las dos variables de entorno

las opciones disponibles para mí son:

heroku command --app MYAPPID
heroku command -r MYAPPSGITREMOTEID
HEROKU_APP=MYAPPID heroku command

Actualmente uso -r pero es difícil construir alias con él, especialmente si quiero canalizar la salida del comando heroku a un comando diferente ... No puedo llamar myalias -r myappid si el alias es heroku command | tail

Yo preferiría algo así como

@production heroku command eso evaluaría HEROKU_APP=MYPRODUCTIONID heroku command

puntos de bonificación si funciona con encadenamiento de alias, como @production myalias que expandiría tanto el alias de envvar de la aplicación de destino como el comando que se ejecutará alias

¿algunas ideas?

Respuestas

2 para la respuesta № 1

Aquí es donde las funciones de shell son la solución perfecta:

myheroku () {
local heroku_app=$1
shift
env HEROKU_APP="$heroku_app" heroku "$@"
}

myalias1 () {
myheroku "$1" specific command here
}
myalias2 () {
myheroku "$1" some other command
}
# ...

Entonces

myalias1 @production

Eventualmente invocará

env HEROKU_APP="@production" heroku specific command here