상현에 하루하루
개발자의 하루

Alfred + macOS 몬테레이 PHP 커맨드 오류

( 업데이트: )

macOS를 몬테레이로 업데이트하면서 Alfred도 PHP명령줄을 실행하는 방법을 변경하였다. 따로 bin의 PHP 명령어를 실행하는 것이 아닌 php라는 옵션을 추가한 것이다. 그래서 기존에 php ~~하는 명령어들은 모두다 오류를 내면서 원하던 결과를 얻지 못했다. 어떻게 해결해야할까?

tailwindcss alfred workflow의 업데이트

가장 많이 사용하던 tailwindcss의 명령어가 안되서 답답했지만 제일 빨리 업데이트를 해줬다. 그래서 여기서 해결방법을 유추하였고 php 명령어를 사용하는 모든 workflow를 해결할 수 있었다.

그렇다면 tailwindcss의 workflow는 어떻게 이 문제를 해결했을까?

if [ -f "/opt/homebrew/bin/php" ]; then
    /opt/homebrew/bin/php tailwindcss.php "{query}"
elif [ -f "/usr/local/bin/php" ]; then
    /usr/local/bin/php tailwindcss.php "{query}"
elif [ -f "/usr/bin/php" ]; then
    /usr/bin/php tailwindcss.php "{query}"
fiCode language: JavaScript (javascript)

위와 같이 3가지 케이스로 나눠서 모든 상황에서 정상적으로 실행될 수 있게 bash script를 구현했다.

다른 PHP를 사용하는 workflow도 수정하자

PHP 명령어를 사용하는 workflow중에 PHP Docs를 예로 든다

php php-search.php "{query}"Code language: JavaScript (javascript)

alfred workflow를 실행해보면 위와같이 오류낸다.

위 명령어를 아래와 같이 변경하자

if [ -f "/opt/homebrew/bin/php" ]; then
    /opt/homebrew/bin/php php-search.php "{query}"
elif [ -f "/usr/local/bin/php" ]; then
    /usr/local/bin/php php-search.php "{query}"
elif [ -f "/usr/bin/php" ]; then
    /usr/bin/php php-search.php "{query}"
fi;Code language: JavaScript (javascript)

위와 같이 정상적으로 실행되는 것을 볼 수 있다. 😎