Ich führe mehrere Heroku-Apps aus demselben Ordner aus und muss oft eine bestimmte für einen Befehl auswählen, den ich über eine von zwei Umgebungsvariablen eintippe
Die verfügbaren Optionen sind:
heroku command --app MYAPPID
heroku command -r MYAPPSGITREMOTEID
HEROKU_APP=MYAPPID heroku command
Ich benutze derzeit -r, aber es ist schwierig, Aliase damit zu erstellen, besonders wenn ich die Ausgabe des Befehls heroku an einen anderen Befehl weiterleiten möchte ... ich kann nicht anrufen myalias -r myappid
wenn der Aliasname ist heroku command | tail
Ich würde etwas lieber mögen
@production heroku command
das würde zu bewerten HEROKU_APP=MYPRODUCTIONID heroku command
Bonuspunkte, wenn es mit Verkettungsaliases wie @production myalias
Dies würde sowohl den Algnamen der Ziel-App envvar als auch den auszuführenden Befehl alias erweitern
irgendwelche Ideen?
Antworten:
2 für die Antwort № 1Hier sind Shell-Funktionen die perfekte Lösung:
myheroku () {
local heroku_app=$1
shift
env HEROKU_APP="$heroku_app" heroku "$@"
}
myalias1 () {
myheroku "$1" specific command here
}
myalias2 () {
myheroku "$1" some other command
}
# ...
Dann
myalias1 @production
Wird sich schließlich aufrufen
env HEROKU_APP="@production" heroku specific command here