Sintaxe declarada na ajuda executável; confira o código antes de executar ações com efeitos externos.
project:deploy
Código: cli/src/Commands/ProjectDeployCommand.php.
Usage: c2f project:deploy [projectID] [--contents=Sim|Não]
Deploys current project or specified project ID to the remote server.project:recover
Código: cli/src/Commands/ProjectRecoverCommand.php.
Usage: c2f project:recover [projectID] [--contents]
Downloads and recovers remote project data into the local environment.project:recover-files
c2f project:recover-files <projectID> [--simular|--aplicar] [--camada=projeto|core|plugin:<id>] [--caminho=PATH --acao=sobrescrever|manter|mesclar --arquivo=PATH] [--json]Por padrão, simula e baixa as divergências para temp/recover-files/<projeto>/<execução>/servidor/, com relatorio.json. --aplicar copia arquivos da camada projeto quando o local ainda tem o hash do manifesto. Se o local também mudou, informa as três ações válidas; para decidir um arquivo, repita com --aplicar --caminho=<caminho> --acao=<ação>. mesclar exige --arquivo com o resultado da mescla. core e plugins são baixados para análise, sem escrita no repositório local. --json emite uma linha estruturada para ferramentas.
project:sync-core
Código: cli/src/Commands/ProjectSyncCoreCommand.php.
Usage: c2f project:sync-core <projectID>
Runs sync-core-to-project.sh --project <projectID>project:sync-db
Código: cli/src/Commands/ProjectSyncDbCommand.php.
Usage: c2f project:sync-db <projectID>
Runs updates-manager-database.sh --project <projectID>project:sync-files
Código: cli/src/Commands/ProjectSyncFilesCommand.php.
Usage: c2f project:sync-files <projectID> [--contents=Sim|Não]
Runs synchronize-project.shproject:sync-hooks
Código: cli/src/Commands/ProjectSyncHooksCommand.php.
Usage: c2f project:sync-hooks <projectID>
Runs the project database transport in hooks-only mode.project:sync-resources
Código: cli/src/Commands/ProjectSyncResourcesCommand.php.
Usage: c2f project:sync-resources [projectID]
Runs update-resource-data.sh [--project projectID]project:update-all
Código: cli/src/Commands/ProjectUpdateAllCommand.php.
Usage: c2f project:update-all <projectID> [--contents=Sim|Não] [--confirmar-remoto] [--no-wait] [--lock-wait=<minutes>]
Executes the full 8-stage synchronization pipeline. A deploy_mode=ssh project marked local=true receives remote confirmation automatically; production remains explicit.
req-197: checks migrations first (db:check-migrations) and runs under a deploy lock per target (SSH host+path or local folder, in GIT/.c2f-deploy-locks/). A second pipeline waits for the lock (default 30 min); --no-wait fails at once.project:update-system
Código: cli/src/Commands/ProjectUpdateSystemCommand.php.
Usage: c2f project:update-system [projectID] [--insecure]
Runs update-system.sh [--project projectID]. The --insecure flag is restricted to self-signed TLS endpoints in local development.Comportamento do pipeline
project:update-all passa o id do projeto por argumento ou --project. Primeiro sincroniza Core, banco, recursos, arquivos e banco novamente. Depois reconstrói CSS, minifica JS e publica assets. Antes da etapa de banco, e de novo depois do envio dos arquivos, remove no destino as migrações obsoletas do projeto (synchronize-project.sh --migrations-only, req-194): o rsync não apaga nada e a pasta do destino também tem as migrações do core, então a limpeza é por dono e só registra choques. Falhas nas três últimas etapas viram avisos e o comando ainda pode retornar sucesso; confira os relatórios de CSS e assets. Projetos SSH marcados local=true recebem confirmação remota automática; outros exigem --confirmar-remoto. project:deploy chama o script Bash de upload para /_api/project/update; project:recover baixa dados por /_api/project/recover. Veja o guia de deploy.
Trava de deploy (req-197). Antes da etapa 1, o pipeline roda db:check-migrations do projeto (versão ou classe duplicada interrompe tudo, sem enviar nada). Em seguida, pega a trava do destino: o host e o caminho do SSH, ou a pasta local. A trava fica em GIT/.c2f-deploy-locks/, pasta comum a todos os clones e worktrees do core, a mesma no Windows e no WSL (C2F_LOCK_DIR sobrescreve). Um segundo pipeline para o mesmo destino espera a trava liberar, avisando a cada minuto quem está com ela, até --lock-wait minutos (padrão 30); --no-wait falha na hora. A trava é liberada no fim, também quando uma etapa falha. A atualização do sistema e o deploy por API usam a trava do próprio ambiente (temp/deploy.lock); com ela viva, recusam (API: HTTP 409; atualização pelo CLI: código de saída 8).