Creare, sostituire ed eliminare file locali

Esamina e applica le modifiche a file e cartelle locali mediante piani di modifica completi.

Utilizza Altifigence CLI 0.1.9 su Linux per esaminare le modifiche ai file locali e applicare il piano completo allo stesso progetto.

Creare file e cartelle

Utilizza un percorso assoluto del progetto locale. Questo esempio utilizza $HOME/alti-projects/demo-project. Esegui i comandi con il tuo normale account utente. Mantieni sospesi gli altri processi di scrittura mentre esamini e applichi un piano.

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"

Verifica che il codice di uscita sia 0, quindi leggi il piano completo:

cat "$WORK/create.plan.json"

Il piano ha lo schema altifigence.workspace-authoring-plan.v1. Esamina changes, observations e request e conserva l’intero documento. I percorsi pianificati sono relativi al progetto.

Applica il piano salvato:

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

Dopo il codice di uscita 0, i campi selezionati della ricevuta sono:

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

Sostituire un file

Leggi il file attuale e utilizza il relativo SHA-256 nella richiesta di sostituzione. Questi esempi utilizzano jq per preparare il 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"

Esamina la sostituzione, quindi applicala:

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

Verifica che il codice di uscita sia 0 e che outcome sia uguale a committed.

Eliminare un file

Leggi nuovamente il file per ottenere il digest attuale, quindi prepara l’eliminazione:

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"

Esamina l’eliminazione, quindi applicala:

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

Verifica che il codice di uscita sia 0 e che outcome sia uguale a committed.

Riprendere dopo una modifica al file

Se il comando segnala workspace file precondition changed: notes/review.txt, leggi nuovamente il file. Esamina il contenuto attuale, prepara la sostituzione o l’eliminazione desiderata con il nuovo sha256 e genera ed esamina un nuovo piano prima di applicarlo.

Se segnala authoring plan changed or is stale; generate and review a new plan, rigenera il piano per lo stesso progetto ed esaminalo prima di applicarlo.

Salva i piani nativi con i comandi mostrati sopra. Un piano salvato con l’opzione globale --json si trova nella stringa stdout della ricevuta di esecuzione. Passa il piano nativo completo a file-apply.

Primo risultato con la CLI