티스토리 뷰

발생일: 2014.02.14

키워드: git, github, git hook, github hook, 깃훅, commit hook, 커밋훅

문제:
프로젝트 내의 특정 파일을 변경 후 커밋하는 경우엔, 사용자 입력을 받아 별도의 처리를 해주려고 한다.
깃의 커밋훅(pre-commit, post-commit)에서 사용자 입력을 받을 수 있는 방법이 있을까?


해결책:

아래 명령으로 호출 후 read 명령으로 사용자 입력을 가져올 수 있다.
예제 코드에서는 사용자 입력을 받아 gem 의 새 업데이트 정보를 확인한다.

# Allows us to read user input below, assigns stdin to keyboard
exec < /dev/tty

while true; do
  read -p "[post-commit hook] Check for outdated gems? (Y/n) " yn
  if [ "$yn" = "" ]; then
    yn='Y'
  fi
  case $yn in
      [Yy] ) bundle outdated --pre; break;;
      [Nn] ) exit;;
      * ) echo "Please answer y or n for yes or no.";;
  esac
done


하지만, 안타깝게도 이 방법은 소스트리에선 동작하지 않는다.
멤버 대부분이 소스트리를 사용하고 있어서 이렇게 처리하진 않았다.

참고:



반응형
댓글
공지사항