ローカルファイルを作成、置換、削除する

完全な作成計画を使って、ローカルのファイルとフォルダーの変更を確認し、適用します。

Linux上のAltifigence CLI 0.1.9を使用してローカルファイルの変更を確認し、完全な計画を同じプロジェクトに適用します。

ファイルとフォルダーを作成する

ローカルプロジェクトの絶対パスを使用してください。この例では$HOME/alti-projects/demo-projectを使用します。通常のユーザーとしてコマンドを実行してください。計画の確認と適用中は、ほかの書き込み処理を一時停止してください。

set -euo pipefail
PROJECT="$(cd "$HOME/alti-projects/demo-project" && pwd -P)"
WORK="$(mktemp -d)"
cat > "$WORK/create.json" <<'JSON'
[
  {"kind":"create-directory","path":"notes"},
  {"kind":"create","path":"notes/review.txt","content":"First review\n"}
]
JSON
alti ide workspace file-plan --project "$PROJECT" \
  --request "$WORK/create.json" > "$WORK/create.plan.json"

終了ステータスが0であることを確認してから、完全な計画を読み取ってください。

cat "$WORK/create.plan.json"

計画のスキーマはaltifigence.workspace-authoring-plan.v1です。changes、observations、requestを確認し、文書全体を保持してください。計画内のパスはプロジェクトからの相対パスです。

保存した計画を適用します。

alti ide workspace file-apply --project "$PROJECT" \
  --request "$WORK/create.plan.json" > "$WORK/create.receipt.json"
jq '{schema, outcome}' "$WORK/create.receipt.json"

終了ステータスが0の場合、選択したレシートのフィールドは次のとおりです。

{
  "schema": "altifigence.workspace-file-receipt.v1",
  "outcome": "committed"
}

ファイルを置換する

現在のファイルを読み取り、そのSHA-256を置換リクエストに使用してください。これらの例ではjqでJSONを準備します。

alti ide workspace read --project "$PROJECT" notes/review.txt \
  > "$WORK/current.json"
jq '[{kind:"replace",path:"notes/review.txt",
      expected_sha256:.sha256,content:"Second review\n"}]' \
  "$WORK/current.json" > "$WORK/replace.json"
alti ide workspace file-plan --project "$PROJECT" \
  --request "$WORK/replace.json" > "$WORK/replace.plan.json"
cat "$WORK/replace.plan.json"

置換内容を確認してから適用してください。

alti ide workspace file-apply --project "$PROJECT" \
  --request "$WORK/replace.plan.json" > "$WORK/replace.receipt.json"
jq '{schema, outcome}' "$WORK/replace.receipt.json"

終了ステータスが0で、outcomeがcommittedであることを確認してください。

ファイルを削除する

ファイルをもう一度読み取って現在のダイジェストを取得し、削除を準備してください。

alti ide workspace read --project "$PROJECT" notes/review.txt \
  > "$WORK/current.json"
jq '[{kind:"delete",path:"notes/review.txt",expected_sha256:.sha256}]' \
  "$WORK/current.json" > "$WORK/delete.json"
alti ide workspace file-plan --project "$PROJECT" \
  --request "$WORK/delete.json" > "$WORK/delete.plan.json"
cat "$WORK/delete.plan.json"

削除内容を確認してから適用してください。

alti ide workspace file-apply --project "$PROJECT" \
  --request "$WORK/delete.plan.json" > "$WORK/delete.receipt.json"
jq '{schema, outcome}' "$WORK/delete.receipt.json"

終了ステータスが0で、outcomeがcommittedであることを確認してください。

ファイルの変更に対処する

workspace file precondition changed: notes/review.txtと表示された場合は、ファイルをもう一度読み取ってください。現在の内容を確認し、新しいsha256で必要な置換または削除を準備して、新しい計画を生成、確認してから適用してください。

authoring plan changed or is stale; generate and review a new planと表示された場合は、同じプロジェクトの計画を再生成し、確認してから適用してください。

上記のコマンドでネイティブ計画を保存してください。グローバル--jsonを付けて保存した計画は、実行レシートのstdout文字列内にあります。完全なネイティブ計画をfile-applyに渡してください。

CLIで最初の操作を成功させる