From c9e8e85faf7f3c63c3e7c0b51ee887b647fe7900 Mon Sep 17 00:00:00 2001 From: Ryan Fowler Date: Sun, 14 Apr 2019 09:04:40 -0700 Subject: [PATCH 1/3] Update commit-msg I've provided a simpler approach to running grumphp inside a docker container. I've provided details to the project itself, for others to see here: https://github.com/phpro/grumphp/pull/618#issuecomment-483001498. I'm sharing this knowledge back with your project, as reviewing how you got it working helped me out. --- config/grumphp/hooks/commit-msg | 19 ++++++------------- 1 file changed, 6 insertions(+), 13 deletions(-) diff --git a/config/grumphp/hooks/commit-msg b/config/grumphp/hooks/commit-msg index b8a3eee..38cd210 100644 --- a/config/grumphp/hooks/commit-msg +++ b/config/grumphp/hooks/commit-msg @@ -24,19 +24,12 @@ DOCKER_PHP_CONTAINER_ID=$(docker-compose -f ${DOCKER_COMPOSE_FILE} ps -q phpfpm) # Remove single quotes from hook_command. It is needed to use it inside the docker exec HOOK_COMMAND=$(echo "$(HOOK_COMMAND)" | sed "s/'//g") -printf "%s\n" "${DIFF}" > "${DIFF_FILE}" && docker cp "${DIFF_FILE}" ${DOCKER_PHP_CONTAINER_ID}:"/tmp/${DIFF_FILE}" - # Run GrumPHP -docker exec -t \ - -e HOOK_EXEC_PATH=${HOOK_EXEC_PATH} -e HOOK_COMMAND="${HOOK_COMMAND}" \ - -e GIT_USER="${GIT_USER}" -e GIT_EMAIL="${GIT_EMAIL}" -e COMMIT_MSG_FILE="${COMMIT_MSG_FILE}" \ - -e DIFF_FILE="${DIFF_FILE}" \ - ${DOCKER_PHP_CONTAINER_ID} sh -c \ - 'cd "${HOOK_EXEC_PATH}" && cat "/tmp/${DIFF_FILE}" | ${HOOK_COMMAND} --git-user="${GIT_USER}" --git-email="${GIT_EMAIL}" "${COMMIT_MSG_FILE}"' -GRUMPHP_EXIT_CODE=$? +(cd "./" && echo "${DIFF}" | \ + exec 'docker' 'run' '--rm' '-t' "--volume=$PWD:${HOOK_EXEC_PATH}" "${DOCKER_PHP_CONTAINER_ID}" \ + 'vendor/bin/grumphp' 'git:pre-commit' "--git-user=$GIT_USER" "--git-email=$GIT_EMAIL" "$COMMIT_MSG_FILE" \ + '--skip-success-output') -rm -f "${DIFF_FILE}" && docker exec -t \ - -u root -e DIFF_FILE="${DIFF_FILE}" \ - ${DOCKER_PHP_CONTAINER_ID} sh -c 'rm -f "/tmp/${DIFF_FILE}"' +GRUMPHP_EXIT_CODE=$? -exit $GRUMPHP_EXIT_CODE \ No newline at end of file +exit $GRUMPHP_EXIT_CODE From 9b45e610e13306560394bc6f30e4da5a6226eae6 Mon Sep 17 00:00:00 2001 From: Ryan Fowler Date: Sun, 14 Apr 2019 09:06:56 -0700 Subject: [PATCH 2/3] Update commit-msg Corrected command from pre-commit to commit-msg --- config/grumphp/hooks/commit-msg | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/grumphp/hooks/commit-msg b/config/grumphp/hooks/commit-msg index 38cd210..9849b6e 100644 --- a/config/grumphp/hooks/commit-msg +++ b/config/grumphp/hooks/commit-msg @@ -27,7 +27,7 @@ HOOK_COMMAND=$(echo "$(HOOK_COMMAND)" | sed "s/'//g") # Run GrumPHP (cd "./" && echo "${DIFF}" | \ exec 'docker' 'run' '--rm' '-t' "--volume=$PWD:${HOOK_EXEC_PATH}" "${DOCKER_PHP_CONTAINER_ID}" \ - 'vendor/bin/grumphp' 'git:pre-commit' "--git-user=$GIT_USER" "--git-email=$GIT_EMAIL" "$COMMIT_MSG_FILE" \ + 'vendor/bin/grumphp' 'git:commit-msg' "--git-user=$GIT_USER" "--git-email=$GIT_EMAIL" "$COMMIT_MSG_FILE" \ '--skip-success-output') GRUMPHP_EXIT_CODE=$? From 23d86624cd51d2cc5ca571f88df357c7d0d0ee26 Mon Sep 17 00:00:00 2001 From: Ryan Fowler Date: Sun, 5 May 2019 10:12:37 -0700 Subject: [PATCH 3/3] Update commit-msg.md Updated the file to reflect correct command. Also, there's this https://github.com/phpro/grumphp/pull/621 coming up --- config/grumphp/hooks/commit-msg | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/config/grumphp/hooks/commit-msg b/config/grumphp/hooks/commit-msg index 9849b6e..d46029a 100644 --- a/config/grumphp/hooks/commit-msg +++ b/config/grumphp/hooks/commit-msg @@ -19,14 +19,14 @@ if [[ ${DOCKER_COMPOSE_DIR} = *"/vendor/"* ]]; then DOCKER_COMPOSE_DIR=${VENDOR_PARENT_DIR}/.. fi DOCKER_COMPOSE_FILE=${DOCKER_COMPOSE_DIR}/docker-compose.yml -DOCKER_PHP_CONTAINER_ID=$(docker-compose -f ${DOCKER_COMPOSE_FILE} ps -q phpfpm) +DOCKER_PHP_IMAGE=$(docker-compose -f ${DOCKER_COMPOSE_FILE} images -q phpfpm) # Remove single quotes from hook_command. It is needed to use it inside the docker exec HOOK_COMMAND=$(echo "$(HOOK_COMMAND)" | sed "s/'//g") # Run GrumPHP (cd "./" && echo "${DIFF}" | \ - exec 'docker' 'run' '--rm' '-t' "--volume=$PWD:${HOOK_EXEC_PATH}" "${DOCKER_PHP_CONTAINER_ID}" \ + exec 'docker' 'run' '--rm' '-t' "--volume=$PWD:${HOOK_EXEC_PATH}" "${DOCKER_PHP_IMAGE}" \ 'vendor/bin/grumphp' 'git:commit-msg' "--git-user=$GIT_USER" "--git-email=$GIT_EMAIL" "$COMMIT_MSG_FILE" \ '--skip-success-output')