디렉토리
Tuist는 XDG 기본 디렉토리 사양에 따라 시스템의 여러 디렉터리에 파일을 구성합니다. 이는 구성, 캐시 및 상태 파일을 관리하기 위한 깔끔하고 표준적인 방법을 제공합니다.
지원되는 환경 변수
투이스트는 표준 XDG 변수와 투이스트 전용 접두사가 붙은 변수를 모두 지원합니다. Tuist 전용 변형( TUIST_)이 우선적으로 적용되므로 다른 애플리케이션과 별도로 Tuist를 구성할 수 있습니다.
구성 디렉터리
환경 변수:
TUIST_XDG_CONFIG_HOME(우선 적용)xdg_config_home
기본값: ~/.config/tuist
사용 용도:
- 서버 자격 증명 (
credentials/{host}.json)
예시:
bash
# Set Tuist-specific config directory
export TUIST_XDG_CONFIG_HOME=/custom/config
tuist auth login
# Or use standard XDG variable
export XDG_CONFIG_HOME=/custom/config
tuist auth login캐시 디렉터리
환경 변수:
TUIST_XDG_CACHE_HOME(우선 순위)XDG_CACHE_HOME
기본값: ~/.cache/tuist
사용 용도:
- 플러그인: 플러그인 캐시 다운로드 및 컴파일
- 프로젝트 설명 헬퍼: 컴파일된 프로젝트 설명 도우미
- 매니페스트: 캐시된 적하목록 파일
- 프로젝트: 생성된 자동화 프로젝트 캐시
- 편집 프로젝트: 편집 명령 캐시
- 실행: 실행 분석 데이터 테스트 및 구축
- 바이너리: 아티팩트 바이너리 빌드(환경 간에 공유할 수 없음)
- 셀렉티브 테스트: 선택적 테스트 캐시
예시:
bash
# Set Tuist-specific cache directory
export TUIST_XDG_CACHE_HOME=/tmp/tuist-cache
tuist cache
# Or use standard XDG variable
export XDG_CACHE_HOME=/tmp/cache
tuist cache상태 디렉토리
환경 변수:
TUIST_XDG_STATE_HOME(우선 적용)XDG_STATE_HOME
기본값: ~/.local/state/tuist
사용 용도:
- 로그: 로그 파일 (
logs/{uuid}.log) - 잠금: 인증 잠금 파일 (
{handle}.sock)
예시:
bash
# Set Tuist-specific state directory
export TUIST_XDG_STATE_HOME=/var/log/tuist
tuist generate
# Or use standard XDG variable
export XDG_STATE_HOME=/var/log
tuist generate우선 순위
사용할 디렉터리를 결정할 때 Tuist는 다음 순서로 환경 변수를 확인합니다:
- 튜이스트 전용 변수 (예:
TUIST_XDG_CONFIG_HOME) - 표준 XDG 변수 (예:
XDG_CONFIG_HOME) - 기본 위치 (예:
~/.config/tuist)
이를 통해 다음을 수행할 수 있습니다:
- 표준 XDG 변수를 사용하여 모든 애플리케이션을 일관되게 구성하세요
- 다른 위치가 필요한 경우 Tuist 전용 변수로 재정의하기
- 별도의 설정 없이 합리적인 기본값을 사용하세요
일반적인 사용 사례
프로젝트별로 Tuist 격리하기
프로젝트별로 Tuist의 캐시와 상태를 분리하고 싶을 수도 있습니다:
bash
# In your project's .envrc (using direnv)
export TUIST_XDG_CACHE_HOME="$PWD/.tuist/cache"
export TUIST_XDG_STATE_HOME="$PWD/.tuist/state"
export TUIST_XDG_CONFIG_HOME="$PWD/.tuist/config"CI/CD 환경
CI 환경에서는 임시 디렉터리를 사용할 수 있습니다:
yaml
# GitHub Actions example
env:
TUIST_XDG_CACHE_HOME: /tmp/tuist-cache
TUIST_XDG_STATE_HOME: /tmp/tuist-state
jobs:
build:
runs-on: macos-latest
steps:
- uses: actions/checkout@v4
- run: tuist generate
- name: Upload logs
if: failure()
uses: actions/upload-artifact@v4
with:
name: tuist-logs
path: /tmp/tuist-state/logs/*.log격리된 디렉터리로 디버깅하기
문제를 디버깅할 때는 백지 상태가 필요할 수 있습니다:
bash
# Create temporary directories for debugging
export TUIST_XDG_CACHE_HOME=$(mktemp -d)
export TUIST_XDG_STATE_HOME=$(mktemp -d)
export TUIST_XDG_CONFIG_HOME=$(mktemp -d)
# Run Tuist commands
tuist generate
# Clean up when done
rm -rf $TUIST_XDG_CACHE_HOME $TUIST_XDG_STATE_HOME $TUIST_XDG_CONFIG_HOME