콘텐츠로 이동
Dotweave Dotweave v0.39.7

디렉터리 구조

dotweave가 설정과 동기화 파일을 저장하는 위치와 구조를 알아보세요.

dotweave가 생성하는 모든 파일은 하나의 디렉터리 안에 있어요: ~/.config/dotweave/. dotweave init을 실행하면 이 구조가 자동으로 만들어져요.


  • 디렉터리~/.config/dotweave/
    • settings.jsonc
    • keys.txt
    • 디렉터리repository/
      • manifest.jsonc
      • 디렉터리default/
        • .gitconfig
        • .zshrc
        • 디렉터리.config/
          • 디렉터리nvim/
            • init.lua
      • 디렉터리work/
        • 디렉터리.config/
          • 디렉터리work-tool/
            • config.json
        • 디렉터리.ssh/
          • config.dotweave.secret

동기화된 파일을 보관하는 Git 저장소예요. dotweave push를 실행하면 파일이 여기에 복사되고, dotweave pull을 실행하면 여기에서 파일이 복원돼요. 이 저장소를 GitHub 같은 리모트에 push하면 여러 기기에서 동기화할 수 있어요.

설정 파일은 원본(source of truth)이에요. 추적 중인 모든 파일과 디렉터리가 동기화 모드, 프로필, 퍼미션 같은 옵션과 함께 나열돼 있어요. dotweave trackdotweave untrack 명령어가 이 파일을 수정해요.

repository/default/: default 프로필의 파일들

섹션 제목: “repository/default/: default 프로필의 파일들”

특정 프로필에 할당되지 않은 파일이 여기에 저장돼요. 대부분의 dotfile이 이 디렉터리에 위치하게 돼요.

repository/<profile>/: 이름이 지정된 프로필의 파일들

섹션 제목: “repository/<profile>/: 이름이 지정된 프로필의 파일들”

프로필을 사용하면 각 프로필마다 고유한 하위 디렉터리가 생겨요. 예를 들어, --profile work으로 추적한 항목은 repository/work/ 아래에 저장돼요.

시크릿 파일을 암호화하고 복호화하는 데 사용하는 age 비밀 키예요. dotweave init 중에 생성되며, AGE-SECRET-KEY-로 시작해요.

활성 프로필과 기타 로컬 설정을 저장해요. 보통 직접 편집할 필요는 없으며, dotweave profile use work 같은 명령어가 자동으로 업데이트해 줘요.


추적 항목 몇 개가 포함된 간단한 예시예요:

{
"version": 7,
"age": {
"recipients": ["age1ql3z7hjy54pw3hyww5ayyfg7zqgvc7w3j2elw8zmrj2kg5sfn9aqmcac8p"]
},
"entries": [
{
"kind": "file",
"localPath": { "default": "~/.gitconfig" }
},
{
"kind": "directory",
"localPath": { "default": "~/.config/nvim" }
},
{
"kind": "file",
"localPath": { "default": "~/.ssh/config" },
"mode": { "default": "secret" },
"profiles": ["work"]
}
]
}
  • version: 스키마 버전 (현재 7). dotweave가 자동으로 관리해요.
  • age: 암호화 설정. recipients 배열에 시크릿 파일을 암호화하는 데 사용하는 공개 키가 나열돼요.
  • entries: 추적 중인 파일과 디렉터리 목록이에요. 각 항목에는 다음 옵션이 있어요:
    • kind: "file" 또는 "directory"
    • localPath: 파일이 내 기기에서 위치하는 경로 (플랫폼별 경로 지원)
    • repoPath: sync 디렉터리 안에서의 커스텀 경로 (선택 사항, 기본적으로 localPath에서 파생)
    • mode: 동기화 모드: "normal", "secret", "ignore" (선택 사항, 기본값은 "normal")
    • profiles: 이 항목이 속한 프로필 (선택 사항, 생략하면 전체 적용)
    • permission: "0600" 같은 8진수 파일 퍼미션 (선택 사항)