Skip to content

ディレクトリ{#directories}

Tuistは、XDG Base Directory Specificationに従って、システム上の複数のディレクトリにわたってファイルを整理します。これにより、設定ファイル、キャッシュファイル、ステートファイルを管理するためのクリーンで標準的な方法が提供されます。

サポートされている環境変数{#supported-environment-variables}#

Tuist は標準的な XDG 変数と、Tuist 固有の接頭辞付き変数の両方をサポートしています。Tuist 固有の変種 (TUIST_ のプレフィックス付き) が優先されるため、Tuist を他のアプリケーションとは別に設定することができます。

設定ディレクトリ{#configuration-directory}#

環境変数:

  • 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

キャッシュ・ディレクトリ{#cache-directory}#

環境変数:

  • TUIST_XDG_CACHE_HOME (優先)
  • XDG_CACHE_HOME

デフォルト: ~/.cache/tuist

に使用される:

  • プラグイン :ダウンロードしてコンパイルしたプラグインキャッシュ
  • ProjectDescriptionHelpers :コンパイルされたプロジェクト説明ヘルパー
  • マニフェスト :マニフェストファイルのキャッシュ
  • プロジェクト :生成されたオートメーション・プロジェクトのキャッシュ
  • EditProjects :編集コマンドのキャッシュ
  • Runs: 分析データのテストと構築
  • バイナリ :ビルド・アーティファクト・バイナリ(環境間で共有不可)
  • SelectiveTests :選択テスト・キャッシュ

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

州ディレクトリ{#state-directory}#

環境変数:

  • 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

優先順位{#precedence-order}#

どのディレクトリを使うかを決めるとき、Tuistは次の順序で環境変数をチェックする:

  1. Tuist固有の変数 (例:TUIST_XDG_CONFIG_HOME)
  2. XDG 標準変数 (例:XDG_CONFIG_HOME)
  3. デフォルトの場所 (例:~/.config/tuist)

これにより、次のことが可能になる:

  • 標準の XDG 変数を使用して、すべてのアプリケーションを一貫して整理します。
  • Tuistに異なる場所が必要な場合、Tuist固有の変数でオーバーライドする。
  • 設定なしで賢明なデフォルトに頼る

一般的な使用例{#common-use-cases}#

プロジェクトごとにTuistを分離{#isolating-tuist-per-project}#

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-cd-environments}#

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

隔離されたディレクトリでのデバッグ{#debugging-with-isolated-directories}#

問題をデバッグするときには、まっさらな状態にしておきたいものだ:

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