No description
- Rust 98.8%
- TypeScript 1.2%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
tyange-cms가 하는 일 중 CLI에 없던 것을 채운다. - cms tags, cms posts --category/--search - cms image upload (본문용·포트폴리오 아이콘, 10MB 상한을 먼저 검사) - cms portfolio get/put/delete, section get/set (PDF 포트폴리오는 portfolio_pdf 섹션) - cms guests (시간대별 인원, 한국 시각) - cms keys list/create/revoke (키로는 안 되고 ID/비밀번호 로그인, 없으면 터미널에서 묻는다) - CMS 에디터와 같은 lovelog 짧은 글 200자 규칙을 new/update/publish에 적용 - cms update --file -, 삭제 계열이 빈 본문 200 응답을 오류로 오해하던 버그 수정 쓰기 경로는 임시 DB로 띄운 로컬 cms-api로 끝까지 검증했다. 테스트 65개. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01L9KMkGbEf67nvEy8rp622i |
||
| src | ||
| tools/extract-ink | ||
| .gitignore | ||
| Cargo.lock | ||
| Cargo.toml | ||
| CLAUDE.md | ||
| GUIDE.md | ||
| README.md | ||
tyange-cli
tyange 개인 인프라(블로그, CMS, Forgejo, 24개 리포)를 다루는 잡다한 기능 모음 CLI.
gh, cargo, aws-cli처럼 서브커맨드가 계속 늘어나는 구조다.
"완성"이 목표가 아니라, 새 마찰이 생길 때마다 서브커맨드 하나씩 추가하는 게 목표다.
왜 이 프로젝트인가
이미 fzf/rg/fd/bat/zoxide/delta 같은 성숙한 CLI 도구를 다 쓰고 있어서, 범용 도구를 새로 만드는 건 의미가 없다. 이건 아무도 대신 만들어줄 수 없는 것만 담는다 — git.tyange.com(Forgejo), tyange-cms-api, 24개 개인 리포처럼 내 인프라에만 있는 것들.
지금 있는 것
tyange ci [--watch] # 현재 리포의 Forgejo Actions 상태. --watch는 HEAD 커밋의 실행이 끝날 때까지
tyange ci --all [--recent] # 모든 저장소에서 지금 돌고 있는 CI (--recent: 저장소마다 마지막 실행)
tyange cms posts|get|new|update|publish|draft|delete|tags # 글·태그 관리
tyange cms image upload <파일> # 이미지 업로드
tyange cms portfolio get|put|delete|section get|set # 포트폴리오(PDF 포트폴리오 데이터 포함)
tyange cms guests # 하객 명단·시간대별 인원
tyange cms keys list|create|revoke # API 키 관리 (ID/비밀번호 로그인 필요)
tyange cms sync | sync-status # Craft 폴더 동기화 즉시 실행 / 상태
모든 명령은 --json을 받는다. 설정(TYANGE_CMS_ID, TYANGE_CMS_PASSWORD, TYANGE_FORGEJO_TOKEN)은
환경변수나 ~/.config/tyange-cli/env에 둔다. 자세한 건 CLAUDE.md.
로드맵
| 단계 | 서브커맨드 | 상태 |
|---|---|---|
| 0 | CLI 스켈레톤 | ✅ |
| 1 | tyange ci |
✅ (Forgejo 실호출은 토큰 필요) |
| 2 | tyange ci --watch |
✅ (blocking 폴링) |
| 3 | tyange repos — 여러 리포 dirty/unpushed 상태판 |
예정 |
| 4 | tyange cms new/update/publish — 마크다운 → CMS 발행 |
✅ (프론트매터 대신 플래그) |
| 5 | tyange new <name> --template <t> — 새 리포 스캐폴딩 |
선택 |
자세한 단계별 가이드는 GUIDE.md.
개발
cargo test # 뭘 채워야 하는지는 실패하는 테스트가 알려준다
cargo run -- ci --help