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:
@@ -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"
|
||||
|
||||
Reference in New Issue
Block a user