Criar, substituir e excluir arquivos locais

Revise e aplique alterações em arquivos e pastas locais com planos completos de edição.

Use o Altifigence CLI 0.1.9 no Linux para revisar alterações em arquivos locais e aplicar o plano completo ao mesmo projeto.

Criar arquivos e pastas

Use um caminho absoluto para seu projeto local. Este exemplo usa $HOME/alti-projects/demo-project. Execute os comandos com sua conta de usuário comum. Mantenha outras operações de gravação pausadas enquanto revisa e aplica um plano.

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"

Exija o status de saída 0 e leia o plano completo:

cat "$WORK/create.plan.json"

O plano tem o esquema altifigence.workspace-authoring-plan.v1. Revise changes, observations e request e guarde o documento inteiro. Os caminhos planejados são relativos ao projeto.

Aplique o plano salvo:

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

Após o status de saída 0, os campos selecionados do comprovante são:

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

Substituir um arquivo

Leia o arquivo atual e use seu SHA-256 na solicitação de substituição. Estes exemplos usam jq para preparar o 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"

Revise a substituição e aplique-a:

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

Exija o status de saída 0 e outcome igual a committed.

Excluir um arquivo

Leia o arquivo novamente para obter seu resumo atual e prepare a exclusão:

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"

Revise a exclusão e aplique-a:

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

Exija o status de saída 0 e outcome igual a committed.

Resolver uma alteração no arquivo

Se o comando informar workspace file precondition changed: notes/review.txt, leia o arquivo novamente. Revise o conteúdo atual, prepare a substituição ou exclusão desejada com o novo sha256 e gere e revise um novo plano antes de aplicá-lo.

Se informar authoring plan changed or is stale; generate and review a new plan, gere novamente o plano para o mesmo projeto e revise-o antes de aplicá-lo.

Salve os planos nativos com os comandos mostrados acima. Um plano salvo com a opção global --json fica na string stdout do comprovante de execução. Passe o plano nativo completo para file-apply.

Primeiro uso da CLI