Add CLI args support: --name, --hira, --addr, --owner, --phone, --mssql

Allows non-interactive execution via SSH pipe or automation.
Falls back to interactive /dev/tty input when no args provided.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
Claude
2026-04-06 15:40:53 +00:00
parent d08ff19470
commit 6834612deb

View File

@@ -15,6 +15,37 @@
set -euo pipefail
# ============================================================
# 명령행 인자 처리
# ============================================================
ARGS_NAME=""
ARGS_HIRA=""
ARGS_ADDR=""
ARGS_OWNER=""
ARGS_PHONE=""
ARGS_MSSQL=""
while [[ $# -gt 0 ]]; do
case $1 in
--name) ARGS_NAME="$2"; shift 2 ;;
--hira) ARGS_HIRA="$2"; shift 2 ;;
--addr) ARGS_ADDR="$2"; shift 2 ;;
--owner) ARGS_OWNER="$2"; shift 2 ;;
--phone) ARGS_PHONE="$2"; shift 2 ;;
--mssql) ARGS_MSSQL="$2"; shift 2 ;;
--help|-h)
echo "사용법: pharmq-setup.sh [옵션]"
echo " --name 약국명 (필수 또는 대화형 입력)"
echo " --hira 요양기관부호"
echo " --addr 약국 주소"
echo " --owner 약국장 이름"
echo " --phone 연락처"
echo " --mssql MSSQL 서버 주소 (기본: 192.168.0.201\\PM2014)"
exit 0 ;;
*) shift ;;
esac
done
# ============================================================
# 설정
# ============================================================
@@ -246,28 +277,39 @@ phase2_tailscale_pve() {
phase3_collect_info() {
print_phase "Phase 3/8: 약국 정보 수집"
# 약국명 (필수)
PHARMACY_NAME=""
while [ -z "$PHARMACY_NAME" ]; do
echo -ne "${CYAN}약국명 (필수): ${NC}"
read -r PHARMACY_NAME </dev/tty
done
# 명령행 인자가 있으면 사용, 없으면 대화형 입력
if [ -n "$ARGS_NAME" ]; then
PHARMACY_NAME="$ARGS_NAME"
HIRA_CODE="${ARGS_HIRA:-}"
PHARMACY_ADDRESS="${ARGS_ADDR:-}"
OWNER_NAME="${ARGS_OWNER:-}"
PHARMACY_PHONE="${ARGS_PHONE:-}"
MSSQL_SERVER="${ARGS_MSSQL:-192.168.0.201\\PM2014}"
print_ok "명령행 인자에서 약국 정보 로드됨"
else
# 약국명 (필수)
PHARMACY_NAME=""
while [ -z "$PHARMACY_NAME" ]; do
echo -ne "${CYAN}약국명 (필수): ${NC}"
read -r PHARMACY_NAME </dev/tty
done
echo -ne "${CYAN}요양기관부호 (선택, Enter로 건너뛰기): ${NC}"
read -r HIRA_CODE </dev/tty
echo -ne "${CYAN}요양기관부호 (선택, Enter로 건너뛰기): ${NC}"
read -r HIRA_CODE </dev/tty
echo -ne "${CYAN}약국 주소 (선택): ${NC}"
read -r PHARMACY_ADDRESS </dev/tty
echo -ne "${CYAN}약국 주소 (선택): ${NC}"
read -r PHARMACY_ADDRESS </dev/tty
echo -ne "${CYAN}약국장 이름 (선택): ${NC}"
read -r OWNER_NAME </dev/tty
echo -ne "${CYAN}약국장 이름 (선택): ${NC}"
read -r OWNER_NAME </dev/tty
echo -ne "${CYAN}약국 연락처 (선택): ${NC}"
read -r PHARMACY_PHONE </dev/tty
echo -ne "${CYAN}약국 연락처 (선택): ${NC}"
read -r PHARMACY_PHONE </dev/tty
echo -ne "${CYAN}MSSQL 서버 주소 [기본: 192.168.0.201\\PM2014]: ${NC}"
read -r MSSQL_SERVER </dev/tty
MSSQL_SERVER=${MSSQL_SERVER:-'192.168.0.201\PM2014'}
echo -ne "${CYAN}MSSQL 서버 주소 [기본: 192.168.0.201\\PM2014]: ${NC}"
read -r MSSQL_SERVER </dev/tty
MSSQL_SERVER=${MSSQL_SERVER:-'192.168.0.201\PM2014'}
fi
echo ""
print_info "약국명: $PHARMACY_NAME"