dotweave init
sync 디렉터리를 만들거나 clone하고 age identity를 준비해요.
사용법
dotweave init [--force] [--key-file <path>] [<repository>]
dotweave 홈 디렉터리 아래에 sync 디렉터리를 만들거나 연결하고, 이후 push와 pull이 읽는 설정을 기록해요.
인자
| 인자 | 타입과 기본값 | 역할 |
|---|---|---|
repository | string, 선택 | clone할 원격 URL이나 로컬 git 저장소 경로예요. 생략하면 빈 로컬 저장소를 새로 초기화해요. |
플래그
| 플래그 | 타입과 기본값 | 역할 |
|---|---|---|
--force | boolean, false | 초기화 전에 기존 sync 디렉터리, identity 파일, 설정을 삭제해요. |
--key-file | string, 없음 | 프롬프트로 입력받는 대신 파일에서 age 비밀 키를 읽어요. |
동작
repository 인자가 없으면 sync 디렉터리에서 git init -b main을 실행해요. 인자가 있으면 git clone을 실행해요. 이미 존재하고 비어 있지 않은 디렉터리는 초기화를 거부해요.
그다음 저장소 기본 구조를 써요. * -text가 들어 있는 .gitattributes, 암호화된 artifact를 커밋할 수 있게 유지하는 관리 .gitignore 블록, 그리고 버전 9에 repositoryFormat 1, 항목 없음, recipient 하나를 담은 manifest.jsonc예요.
age identity는 --key-file이 있으면 그 값을 쓰고, keys.txt가 이미 있으면 그걸 재사용하고, 둘 다 없으면 새 identity를 생성해요. 이미 recipient가 있는 저장소를 clone하면서 키를 넘기지 않으면 대화형 터미널에서 비밀 키를 물어보고, 물어볼 수 없으면 그대로 실패해요.
dotweave init
· Initializing sync directory...
✔ Sync directory initialized
git: initialized new repository
age: generated a new local identity
0 entries · 1 recipients
init은 git 리모트를 추가하지도, 커밋하지도, push하지도 않아요. 그건 dotweave cd와 git으로 하세요.
--force는 keys.txt를 삭제해요. 그 identity만으로 암호화된 시크릿 artifact는 되살릴 수 없어요. 이 플래그를 쓰기 전에 키를 백업하세요.
오류
init은 디렉터리가 이미 초기화된 경우, 존재하면서 비어 있지 않은 경우, git이 없거나 clone 소스에 접근할 수 없는 경우, clone한 저장소가 필요한 age 키를 넘기지 않은 경우에 실패해요. 각 메시지와 해결 방법은 오류 메시지의 초기화 절에서 확인하세요.
관련 명령
처음 설정하는 전체 흐름은 첫 동기화 설정, 저장소가 이미 있을 때는 두 번째 기기 설정을 확인하세요.