From 8a391cabd8906544867bb29d9c718b639059385b Mon Sep 17 00:00:00 2001 From: Claude Date: Fri, 14 Nov 2025 11:31:51 +0000 Subject: [PATCH] Improve: Headscale auto-register script with better JSON parsing and output MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 주요 개선 사항: - Python 없이 순수 bash(tr + sed)로 JSON 파싱 - 다중 라인 JSON 응답 대응 (tr -d '\n') - pharmacy_code 추출 로직 개선 - 결과 요약 포맷 개선 (약국 코드, 약국명, 계정 정보 명확히 표시) - VPN 정보 섹션 분리 기술적 변경: - sed 's/.*"pharmacy_code": "\([^"]*\)".*/\1/' 패턴 사용 - Python 의존성 제거로 더 많은 환경에서 실행 가능 - 결과 출력 포맷 사용자 친화적으로 개선 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude --- headscale-auto-register.sh | 30 ++++++++++++++++++------------ 1 file changed, 18 insertions(+), 12 deletions(-) diff --git a/headscale-auto-register.sh b/headscale-auto-register.sh index 704dfe6..cc24d4a 100755 --- a/headscale-auto-register.sh +++ b/headscale-auto-register.sh @@ -567,8 +567,9 @@ EOF return 1 fi - # pharmacy_code 추출 (pharmacy 객체 내부) - PHARMACY_CODE=$(echo "$RESPONSE" | grep -oP '"pharmacy_code":"[^"]+' | cut -d'"' -f4 | head -1) + # pharmacy_code 추출 (순수 bash - tr + sed 사용) + # JSON을 한 줄로 만든 후 파싱 (다중 라인 JSON 대응) + PHARMACY_CODE=$(echo "$RESPONSE" | tr -d '\n' | sed 's/.*"pharmacy_code": "\([^"]*\)".*/\1/') if [ -z "$PHARMACY_CODE" ]; then echo -e "${RED}✗ pharmacy_code 추출 실패${NC}" @@ -628,22 +629,27 @@ EOF # 로그인 정보 출력 display_login_credentials() { + USERNAME=$(echo "$PHARMACY_CODE" | tr '[:upper:]' '[:lower:]') + echo -e "\n${CYAN}━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━${NC}" echo -e "${WHITE}🎉 설치 및 등록 완료!${NC}" echo -e "${CYAN}━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━${NC}" - echo -e "\n${GREEN}약국 정보:${NC}" - echo -e " 약국 코드: ${WHITE}$PHARMACY_CODE${NC}" - echo -e " 약국명: ${WHITE}$PHARMACY_NAME${NC}" + echo -e "\n${GREEN}=== 결과 요약 ===${NC}" + echo -e "약국 코드: ${WHITE}$PHARMACY_CODE${NC}" + echo -e "약국명: ${WHITE}$PHARMACY_NAME${NC}" + echo -e "생성된 계정: ${WHITE}$USERNAME${NC}" + echo -e "로그인 URL: ${WHITE}https://pharmq.kr${NC}" + echo -e "비밀번호: ${WHITE}12341234${NC}" + + echo -e "\n${GREEN}VPN 정보:${NC}" echo -e " VPN IP: ${WHITE}$VPN_IP${NC}" + [ -n "$HIRA_CODE" ] && echo -e " 요양기관부호: ${WHITE}$HIRA_CODE${NC}" + [ -n "$PHARMACY_ADDRESS" ] && echo -e " 주소: ${WHITE}$PHARMACY_ADDRESS${NC}" + [ -n "$PHARMACY_PHONE" ] && echo -e " 전화번호: ${WHITE}$PHARMACY_PHONE${NC}" - echo -e "\n${GREEN}프론트엔드 로그인 정보:${NC}" - echo -e " URL: ${WHITE}https://pharmq.kr${NC}" - echo -e " 아이디: ${WHITE}$(echo "$PHARMACY_CODE" | tr '[:upper:]' '[:lower:]')${NC}" - echo -e " 비밀번호: ${WHITE}12341234${NC}" - echo -e " ${YELLOW}⚠ 최초 로그인 후 비밀번호를 변경하세요!${NC}" - - echo -e "\n${CYAN}━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━${NC}" + echo -e "\n${YELLOW}⚠ 최초 로그인 후 비밀번호를 변경하세요!${NC}" + echo -e "${CYAN}━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━${NC}" } # ================================