#!/bin/bash
# 오늘 날짜를 YYYY-MM-DD 형식으로 가져옵니다
TODAY=$(date +"%Y-%m-%d")
# 파일명 설정: 매개변수가 제공되면 사용, 아니면 오늘 날짜 사용
if [ -n "$1" ]; then
# 매개변수가 제공된 경우
# 확장자가 없으면 .md 추가
if [[ "$1" != *.* ]]; then
FILENAME="${1}.md"
else
FILENAME="$1"
fi
DESCRIPTION="메모: ${FILENAME}"
else
# 매개변수가 없는 경우 (기존 동작)
FILENAME="${TODAY}.md"
DESCRIPTION="오늘(${TODAY})의 메모"
fi
# 로컬 백업 디렉토리 설정
BACKUP_DIR="$HOME/Documents/Notes"
# 백업 디렉토리가 없으면 생성합니다
if [ ! -d "$BACKUP_DIR" ]; then
echo "백업 디렉토리가 존재하지 않아 생성합니다: $BACKUP_DIR"
mkdir -p "$BACKUP_DIR"
fi
# GitHub CLI가 설치되어 있는지 확인
if ! command -v gh &> /dev/null; then
echo "GitHub CLI(gh)가 설치되어 있지 않습니다."
echo "Mac OS에서는 'brew install gh'로 설치할 수 있습니다."
exit 1
fi
# GitHub CLI 로그인 상태 확인
if ! gh auth status &> /dev/null; then
echo "GitHub CLI에 로그인되어 있지 않습니다. 'gh auth login'을 실행하세요."
exit 1
fi
# 해당 파일명의 Gist가 이미 존재하는지 확인 (더 많은 Gist를 가져와서 검색)
echo "파일명(${FILENAME})의 Gist를 검색 중..."
GIST_LIST=$(gh gist list --limit 100)
GIST_ID=""
# 파일명이 정확히 일치하는 Gist 찾기
while IFS= read -r line; do
ID=$(echo "$line" | awk '{print $1}')
# 각 Gist의 파일 목록 확인
FILES=$(gh gist view "$ID" --files)
if echo "$FILES" | grep -q "^${FILENAME}$"; then
GIST_ID="$ID"
break
fi
done <<< "$GIST_LIST"
if [ -n "$GIST_ID" ]; then
echo "파일명(${FILENAME})의 Gist를 찾았습니다. ID: $GIST_ID"
echo "기존 Gist를 편집을 위해 엽니다..."
# GitHub CLI의 직접 편집 기능 사용 (터미널 입력 오류 해결)
gh gist edit "$GIST_ID" -f "$FILENAME"
# 편집된 내용을 백업 디렉토리에 복사
echo "편집된 Gist 내용을 로컬에 백업합니다..."
gh gist view "$GIST_ID" --filename "$FILENAME" > "$BACKUP_DIR/$FILENAME"
echo "파일이 성공적으로 백업되었습니다: $BACKUP_DIR/$FILENAME"
echo "Gist가 업데이트되었습니다."
else
echo "파일명(${FILENAME})의 Gist가 존재하지 않습니다. 새로 생성합니다..."
# 임시 파일 생성 (명확한 이름 사용)
TMP_FILE="/tmp/${FILENAME}"
# 기본 내용 추가
if [ -z "$1" ]; then
# 날짜로 생성하는 경우
echo "# ${TODAY} 메모" > "$TMP_FILE"
else
# 사용자 지정 파일명인 경우 (확장자 제거)
BASENAME=$(echo "$FILENAME" | sed 's/\.[^.]*$//')
echo "# ${BASENAME} 메모" > "$TMP_FILE"
fi
# 편집기로 열기
${EDITOR:-vi} "$TMP_FILE"
# 명시적 파일명으로 Gist 생성
GIST_URL=$(gh gist create --public -f "$FILENAME" -d "$DESCRIPTION" "$TMP_FILE")
# 편집된 내용을 백업 디렉토리에 복사
echo "새로 생성된 Gist 내용을 로컬에 백업합니다..."
cp -p "$TMP_FILE" "$BACKUP_DIR/$FILENAME"
echo "파일이 성공적으로 백업되었습니다: $BACKUP_DIR/$FILENAME"
# 임시 파일 삭제
rm "$TMP_FILE"
echo "새 Gist가 생성되었습니다: $GIST_URL"
fi
Created
March 19, 2025 11:08
-
-
Save chris-ryu/57425aad723b3102059c43d64683c75b to your computer and use it in GitHub Desktop.
메모: note-script.md
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment