From d8ce36b8a4ec91743b97e72c366614c46c148d16 Mon Sep 17 00:00:00 2001 From: Claude Date: Fri, 14 Nov 2025 11:35:48 +0000 Subject: [PATCH] Fix: Improve pharmacy_code extraction with better error messages MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - grep + sed 조합으로 pharmacy_code 추출 개선 - [[:space:]]로 공백 처리 추가 - 추출 실패 시 상세한 디버깅 정보 출력 - 원인 표시 - JSON 응답 내용 출력 - 추출 시도 결과 표시 - 에러 메시지 명확화 (약국 생성 API 실패 vs pharmacy_code 추출 실패) 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude --- headscale-auto-register.sh | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/headscale-auto-register.sh b/headscale-auto-register.sh index cc24d4a..4857657 100755 --- a/headscale-auto-register.sh +++ b/headscale-auto-register.sh @@ -562,18 +562,24 @@ EOF # 성공 여부 먼저 확인 if ! echo "$RESPONSE" | grep -q '"success":true'; then - echo -e "${RED}✗ 약국 생성 실패${NC}" + echo -e "${RED}✗ 약국 생성 API 실패${NC}" + echo -e "${YELLOW}[응답 내용]${NC}" echo "$RESPONSE" return 1 fi - # pharmacy_code 추출 (순수 bash - tr + sed 사용) - # JSON을 한 줄로 만든 후 파싱 (다중 라인 JSON 대응) - PHARMACY_CODE=$(echo "$RESPONSE" | tr -d '\n' | sed 's/.*"pharmacy_code": "\([^"]*\)".*/\1/') + # pharmacy_code 추출 (순수 bash - grep 사용) + # 방법: grep으로 pharmacy_code 라인 찾고, sed로 값 추출 + PHARMACY_CODE=$(echo "$RESPONSE" | grep '"pharmacy_code"' | sed 's/.*"pharmacy_code":[[:space:]]*"\([^"]*\)".*/\1/' | head -1) + # 추출 실패 시 디버깅 정보 출력 if [ -z "$PHARMACY_CODE" ]; then echo -e "${RED}✗ pharmacy_code 추출 실패${NC}" + echo -e "${YELLOW}[원인] JSON 파싱 에러${NC}" + echo -e "${YELLOW}[응답 내용]${NC}" echo "$RESPONSE" + echo -e "${YELLOW}[추출 시도 결과]${NC}" + echo "$RESPONSE" | grep '"pharmacy_code"' return 1 fi