나는 이것을 Makefile
.
ARG_2 := $(word 2, $(MAKECMDGOALS))
command_exist=command -v $(1) >/dev/null 2>&1
command_not_exist=! command -v $(1) >/dev/null 2>&1
npmig:
$(call command_not_exist,npm) && echo 'npm is not installed'
$(call command_not_exist,ied) && npm install ied
$(call command_not_exist,$(ARG_2)) && ied install $(ARG_2) -g
일반적인 아이디어는 이와 같은 것을 실행할 수 make npmig json
있으며 npm
설치되지 않은 경우 실제 오류가 발생한다는 것입니다. 설치되지 않은 경우 ied
설치되며 최종적으로 ied
설치됩니다 json
.
- 첫 번째 줄 이후
npm
검사가 실패하면 프로세스가 종료됩니다. ied
이미 설치했든 (희망적으로) 방금 설치했든 두 번째 설치 후에 설치해야 합니다.json
세 번째 항목 은 이미 설치되었거나 (희망적으로) 방금 설치되었든 나중에 설치해야 합니다 .
이것은 작동하지 않습니다. 명령이 존재하는지 확인하는 코드는 오류를 발생시키고 전체 레시피가 종료됩니다. 내가 원할 때 종료하고 원할 때 계속되도록 이 레시피의 흐름을 제어할 수 있는 방법이 필요합니다.