Итак, я задал этот вопрос пару дней назад, но немного распушил его, поэтому я удалил его и попытаюсь снова попросить о помощи...
У меня есть псевдоним в моем .zshrc;
alias gulp='gulp-notice'
Это, в свою очередь, запускает функцию;
gulp-notice ()
{
notifier-around gulp "Gulp" "gulp $*"
}
который, в свою очередь, запускает эту функцию
notifier-around ()
{
GROUP_ID=$1
TITLE=$2
COMMAND=$3 $4 $5 $6 $7 $8 $9
terminal-notifier -title $COMMAND -message 'Finished' -appIcon https://s-media-cache-ak0.pinimg.com/564x/b5/5a/18/b55a1805f5650495a74202279036ecd2.jpg && terminal-notifier -title $COMMAND -message 'Complete' -appIcon https://s-media-cache-ak0.pinimg.com/564x/b5/5a/18/b55a1805f5650495a74202279036ecd2.jpg || terminal-notifier -title $COMMAND -message 'Failed' -appIcon https://media3.giphy.com/media/10ECejNtM1GyRy/200_s.gif
}
Итак, переменные работают так (с использованием функции gulp-notice)
GROUP_ID is gulp
TITLE is "Gulp" (without the quote marks)
COMMAND is "gulp $*" (the output without the quote marks)
Теперь моя проблема заключается в следующем... Когда я запускал этот скрипт в BASH, он выполнял команду gulp, и уведомитель терминала делал свое дело (сообщая мне, произошел ли сбой или успех gulp)
gulp
будет запускать gulp
и необходимые уведомления в зависимости от ситуации
gulp sass
будет запускать gulp sass
и необходимые уведомления в зависимости от ситуации
Теперь я перешел на ZSH, скрипт ПРОСТО запускает уведомление терминала и ничего больше. Может ли кто-нибудь указать мне правильное направление, поскольку я не понимаю, почему сценарии должны быть такими разными между двумя терминальными приложениями.
ОБНОВЛЕНИЕ Теперь у меня есть рабочий код, но я не могу запускать gulp-задачи, такие как SASS или JS (gulp sass
или gulp js
). Мой пересмотренный код выглядит следующим образом
notifier-around ()
{
GROUP_ID=$1
TITLE=$2
COMMAND="$3 $4 $5 $6 $7 $8 $9"
COMMAND_NO_WHITE_SPACE="$(echo -e "${COMMAND}" | sed -e 's/[[:space:]]*$//')" //strips the white space from the end of the VAR
PROGRESS="https://s-media-cache-ak0.pinimg.com/564x/b5/5a/18/b55a1805f5650495a74202279036ecd2.jpg"
FAIL="https://media3.giphy.com/media/10ECejNtM1GyRy/200_s.gif"
terminal-notifier -group "$GROUP_ID" -title "$TITLE" -message "Starting" -appIcon "$PROGRESS" && $COMMAND_NO_WHITE_SPACE && terminal-notifier -group "$GROUP_ID" -title "$TITLE" -message "Complete" -appIcon "$PROGRESS" || terminal-notifier -group "$GROUP_ID" -title "$TITLE" -message "Failure" -appIcon "$FAIL"
}
gulp-notice ()
{
notifier-around gulp "Gulp Build" "gulp $*"
}
alias gulp='gulp-notice'
Любые идеи о том, как заставить его распознавать дополнительные задачи, так как я тоже не могу запустить gulp --tasks
...
COMMAND="$3 $4 $5 $6 $7 $8 $9"
; в противном случае вы пытаетесь запустить$4
с аргументами$5, ..., $9
в среде, гдеCOMMAND=$3
иCOMMAND
не установлены при запускеterminal-notifier
. - person chepner   schedule 05.07.2019notifier-around:5: command not found: gulp
. Теперь мой PATH включает/usr/local/bin
, где живет GULP, но даже если я явно укажу/usr/local/bin/gulp
в функции, она все равно скажет мне, что не может найти GULP. Если я выполняю/usr/local/bin/gulp
без активной функции, все работает нормально... Есть идеи? - person Takuhii   schedule 05.07.2019set -x
, чтобы мы могли видеть, что происходит. - person user1934428   schedule 08.07.2019gulp
, поскольку он должен исходить из местоположения в моей переменной PATH... если я запускаю gulp вне функции, то есть вручную, он работает нормально ... Это почти как zsh запускает мою функцию в песочнице, и я не могу взаимодействовать с внешним миром. Я думал, что это может быть iTerm2, но я не знаю... Я запущу set -x и опубликую свои результаты... - person Takuhii   schedule 08.07.2019