From 39102752c05dfedb41870e2b758b19efa120ce29 Mon Sep 17 00:00:00 2001 From: decentral1se Date: Sun, 15 Feb 2026 18:26:05 +0100 Subject: [PATCH] fix: more graceful bailing if borked .env.sample --- pkg/i18n/locales/abra.pot | 84 ++-- pkg/i18n/locales/es.mo | Bin 96968 -> 96873 bytes pkg/i18n/locales/es.po | 688 ++++++++++++++++++++---------- pkg/lint/recipe.go | 2 +- pkg/recipe/files.go | 2 +- pkg/recipe/git.go | 6 + tests/integration/app_deploy.bats | 29 +- 7 files changed, 542 insertions(+), 269 deletions(-) diff --git a/pkg/i18n/locales/abra.pot b/pkg/i18n/locales/abra.pot index d4818862..4b8108ce 100644 --- a/pkg/i18n/locales/abra.pot +++ b/pkg/i18n/locales/abra.pot @@ -7,7 +7,7 @@ msgid "" msgstr "Project-Id-Version: \n" "Report-Msgid-Bugs-To: EMAIL\n" - "POT-Creation-Date: 2026-02-15 17:08+0100\n" + "POT-Creation-Date: 2026-02-15 18:25+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -189,7 +189,7 @@ msgstr "" msgid "%d volumes removed successfully" msgstr "" -#: ./pkg/recipe/git.go:191 +#: ./pkg/recipe/git.go:197 #, c-format msgid "%s (%s) has locally unstaged changes?" msgstr "" @@ -419,7 +419,7 @@ msgstr "" msgid "%s sanitised as %s for new app" msgstr "" -#: ./pkg/recipe/git.go:439 +#: ./pkg/recipe/git.go:445 #, c-format msgid "%s service is missing image tag?" msgstr "" @@ -568,6 +568,11 @@ msgstr "" msgid "--local detected, running %s on local work station" msgstr "" +#: ./pkg/lint/recipe.go:261 ./pkg/recipe/files.go:18 +#, c-format +msgid ".env.sample for %s couldn't be read: %s" +msgstr "" + #: ./pkg/lint/recipe.go:133 msgid ".env.sample provided" msgstr "" @@ -909,7 +914,7 @@ msgstr "" msgid "Generate the recipe catalogue" msgstr "" -#: ./pkg/recipe/git.go:453 +#: ./pkg/recipe/git.go:459 #, c-format msgid "GetRecipeVersions encountered error for %s: %s (collected %d versions)" msgstr "" @@ -1827,7 +1832,7 @@ msgstr "" msgid "are you sure?" msgstr "" -#: ./pkg/recipe/git.go:156 +#: ./pkg/recipe/git.go:162 #, c-format msgid "attempting to checkout '%s' as chaos commit" msgstr "" @@ -1958,7 +1963,7 @@ msgstr "" msgid "cancelled" msgstr "" -#: ./pkg/catalogue/catalogue.go:59 ./pkg/recipe/git.go:245 +#: ./pkg/catalogue/catalogue.go:59 ./pkg/recipe/git.go:251 #, c-format msgid "cannot ensure %s is up-to-date, no git remotes configured" msgstr "" @@ -1978,7 +1983,7 @@ msgstr "" msgid "cannot parse %s, invalid tag specified?" msgstr "" -#: ./pkg/recipe/git.go:52 +#: ./pkg/recipe/git.go:58 #, c-format msgid "cannot redeploy previous chaos version (%s), did you mean to use \"--chaos\"?" msgstr "" @@ -2121,7 +2126,7 @@ msgstr "" msgid "cmd" msgstr "" -#: ./pkg/recipe/git.go:464 +#: ./pkg/recipe/git.go:470 #, c-format msgid "collected %s for %s" msgstr "" @@ -2298,7 +2303,7 @@ msgstr "" msgid "create remote directory: %s" msgstr "" -#: ./pkg/client/client.go:111 +#: ./pkg/client/client.go:109 #, c-format msgid "created client for %s" msgstr "" @@ -2443,7 +2448,7 @@ msgstr "" msgid "destination directory does not exist" msgstr "" -#: ./pkg/recipe/git.go:367 +#: ./pkg/recipe/git.go:373 #, c-format msgid "detected %s as tags for recipe %s" msgstr "" @@ -2645,7 +2650,7 @@ msgstr "" msgid "ensure recipe: %s" msgstr "" -#: ./pkg/recipe/git.go:50 +#: ./pkg/recipe/git.go:56 #, c-format msgid "ensuring env version %s" msgstr "" @@ -2747,12 +2752,12 @@ msgstr "" msgid "failed to check git status of %s: %s" msgstr "" -#: ./pkg/git/branch.go:95 ./pkg/recipe/git.go:225 +#: ./pkg/git/branch.go:95 ./pkg/recipe/git.go:231 #, c-format msgid "failed to check out %s in %s" msgstr "" -#: ./pkg/recipe/git.go:406 +#: ./pkg/recipe/git.go:412 #, c-format msgid "failed to check out %s in %s: %s" msgstr "" @@ -2797,7 +2802,7 @@ msgstr "" msgid "failed to create volume %s on %s: %s" msgstr "" -#: ./pkg/recipe/git.go:415 +#: ./pkg/recipe/git.go:421 #, c-format msgid "failed to get compose config for %s: %s" msgstr "" @@ -2835,7 +2840,7 @@ msgstr "" msgid "failed to parse image %s, saw: %s" msgstr "" -#: ./pkg/recipe/git.go:425 +#: ./pkg/recipe/git.go:431 #, c-format msgid "failed to parse image for %s in %s: %s" msgstr "" @@ -2943,7 +2948,7 @@ msgstr "" msgid "fetch all recipes" msgstr "" -#: ./pkg/catalogue/catalogue.go:84 ./pkg/recipe/git.go:278 +#: ./pkg/catalogue/catalogue.go:84 ./pkg/recipe/git.go:284 #, c-format msgid "fetched latest git changes for %s" msgstr "" @@ -3061,7 +3066,7 @@ msgstr "" msgid "git changes pushed" msgstr "" -#: ./pkg/recipe/git.go:411 +#: ./pkg/recipe/git.go:417 #, c-format msgid "git checkout: %s in %s" msgstr "" @@ -3141,7 +3146,7 @@ msgstr "" msgid "git.coopcloud.tech repo exists" msgstr "" -#: ./pkg/recipe/git.go:378 +#: ./pkg/recipe/git.go:384 #, c-format msgid "git: opening repository in %s" msgstr "" @@ -4054,7 +4059,7 @@ msgstr "" msgid "proceed?" msgstr "" -#: ./pkg/recipe/git.go:398 +#: ./pkg/recipe/git.go:404 #, c-format msgid "processing %s for %s" msgstr "" @@ -4126,7 +4131,7 @@ msgstr "" msgid "re" msgstr "" -#: ./pkg/recipe/git.go:151 +#: ./pkg/recipe/git.go:157 #, c-format msgid "read %s as tags for recipe %s" msgstr "" @@ -4683,17 +4688,17 @@ msgstr "" msgid "server doesn't exist?" msgstr "" -#: ./pkg/client/client.go:54 +#: ./pkg/client/client.go:53 #, c-format msgid "server missing context, context creation failed: %s" msgstr "" -#: ./pkg/client/client.go:59 +#: ./pkg/client/client.go:58 #, c-format msgid "server missing context, run \"abra server add %s\"?" msgstr "" -#: ./pkg/client/client.go:48 +#: ./pkg/client/client.go:47 #, c-format msgid "server missing, run \"abra server add %s\"?" msgstr "" @@ -4860,17 +4865,17 @@ msgstr "" msgid "skipping secret (because it already exists) on %s: %s" msgstr "" -#: ./pkg/recipe/git.go:407 +#: ./pkg/recipe/git.go:413 #, c-format msgid "skipping tag %s: checkout failed: %s" msgstr "" -#: ./pkg/recipe/git.go:416 +#: ./pkg/recipe/git.go:422 #, c-format msgid "skipping tag %s: invalid compose config: %s" msgstr "" -#: ./pkg/recipe/git.go:426 +#: ./pkg/recipe/git.go:432 #, c-format msgid "skipping tag %s: invalid image reference in service %s: %s" msgstr "" @@ -4973,7 +4978,7 @@ msgstr "" msgid "succeeded" msgstr "" -#: ./pkg/recipe/git.go:178 +#: ./pkg/recipe/git.go:184 #, c-format msgid "successfully checked %s out to %s in %s" msgstr "" @@ -4988,12 +4993,12 @@ msgstr "" msgid "successfully created %s" msgstr "" -#: ./pkg/client/client.go:120 +#: ./pkg/client/client.go:118 #, c-format msgid "swarm mode not enabled on %s?" msgstr "" -#: ./pkg/client/client.go:123 +#: ./pkg/client/client.go:121 msgid "swarm mode not enabled on local server?" msgstr "" @@ -5138,12 +5143,12 @@ msgstr "" msgid "un" msgstr "" -#: ./pkg/recipe/git.go:187 +#: ./pkg/recipe/git.go:193 #, c-format msgid "unable to check git clean status in %s: %s" msgstr "" -#: ./pkg/recipe/git.go:256 +#: ./pkg/recipe/git.go:262 #, c-format msgid "unable to check out default branch in %s: %s" msgstr "" @@ -5212,17 +5217,12 @@ msgstr "" msgid "unable to determine versioning semantics of %s, listing all tags" msgstr "" -#: ./pkg/lint/recipe.go:261 ./pkg/recipe/files.go:18 -#, c-format -msgid "unable to discover .env.sample for %s" -msgstr "" - #: ./cli/recipe/fetch.go:71 #, c-format msgid "unable to discover SSH remote for %s" msgstr "" -#: ./pkg/recipe/git.go:262 +#: ./pkg/recipe/git.go:268 #, c-format msgid "unable to fetch tags in %s: %s" msgstr "" @@ -5232,7 +5232,7 @@ msgstr "" msgid "unable to get container matching %s: %s" msgstr "" -#: ./pkg/recipe/git.go:274 +#: ./pkg/recipe/git.go:280 #, c-format msgid "unable to git pull in %s: %s" msgstr "" @@ -5256,12 +5256,12 @@ msgstr "" msgid "unable to look up server context for %s: %s" msgstr "" -#: ./cli/recipe/fetch.go:77 ./pkg/git/read.go:26 ./pkg/lint/recipe.go:491 ./pkg/recipe/git.go:236 +#: ./cli/recipe/fetch.go:77 ./pkg/git/read.go:26 ./pkg/lint/recipe.go:491 ./pkg/recipe/git.go:242 #, c-format msgid "unable to open %s: %s" msgstr "" -#: ./pkg/recipe/git.go:251 +#: ./pkg/recipe/git.go:257 #, c-format msgid "unable to open git work tree in %s: %s" msgstr "" @@ -5321,7 +5321,7 @@ msgstr "" msgid "unable to read new env %s: %s" msgstr "" -#: ./pkg/recipe/git.go:241 +#: ./pkg/recipe/git.go:247 #, c-format msgid "unable to read remotes in %s: %s" msgstr "" @@ -5356,7 +5356,7 @@ msgstr "" msgid "unable to render to JSON: %s" msgstr "" -#: ./pkg/recipe/git.go:160 +#: ./pkg/recipe/git.go:166 #, c-format msgid "unable to resolve '%s': %s" msgstr "" diff --git a/pkg/i18n/locales/es.mo b/pkg/i18n/locales/es.mo index c0a950b68299f621b8e38bb804d8089ff796261b..50f48a8760a95d5a836cc0c6b66d87a6cffb6bd5 100644 GIT binary patch delta 17270 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 diff --git a/pkg/i18n/locales/es.po b/pkg/i18n/locales/es.po index 572feb18..9b576582 100644 --- a/pkg/i18n/locales/es.po +++ b/pkg/i18n/locales/es.po @@ -2,10 +2,11 @@ msgid "" msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: EMAIL\n" -"POT-Creation-Date: 2026-02-15 17:08+0100\n" +"POT-Creation-Date: 2026-02-15 18:25+0100\n" "PO-Revision-Date: 2026-02-15 09:40+0000\n" "Last-Translator: chasqui \n" -"Language-Team: Spanish \n" +"Language-Team: Spanish \n" "Language: es\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -199,7 +200,7 @@ msgstr "%d volumen(es) eliminados con éxito" msgid "%d volumes removed successfully" msgstr "%d volúmenes eliminados correctamente" -#: pkg/recipe/git.go:191 +#: pkg/recipe/git.go:197 #, c-format msgid "%s (%s) has locally unstaged changes?" msgstr "%s (%s) ¿tiene cambios locales?" @@ -297,8 +298,12 @@ msgstr "%s se ha escalado a 1" #: pkg/catalogue/catalogue.go:40 #, c-format -msgid "%s has locally unstaged changes? please commit/remove your changes before proceeding" -msgstr "¿%s tiene cambios no commiteados localmente? Por favor, commitea/elimina tus cambios antes de continuar" +msgid "" +"%s has locally unstaged changes? please commit/remove your changes before " +"proceeding" +msgstr "" +"¿%s tiene cambios no commiteados localmente? Por favor, commitea/elimina tus " +"cambios antes de continuar" #: cli/internal/recipe.go:114 #, c-format @@ -318,7 +323,9 @@ msgstr "%s no tiene secretos para generar, omitiendo..." #: pkg/recipe/compose.go:107 #, c-format msgid "%s has no version label? try running \"abra recipe sync %s\" first?" -msgstr "¿%s no tiene etiqueta de versión? ¿intentaste ejecutar \"abra receta sincronizar %s\" primero?" +msgstr "" +"¿%s no tiene etiqueta de versión? ¿intentaste ejecutar \"abra receta " +"sincronizar %s\" primero?" #: pkg/secret/pass.go:29 #, c-format @@ -419,20 +426,25 @@ msgstr "%s eliminado del almacén de contraseñas" #: cli/app/new.go:220 #, c-format -msgid "%s requires secret generation before deploy, run \"abra app secret generate %s --all\"" -msgstr "%s requiere generación de secretos antes del despliegue, ejecuta \"abra aplicacion secreto generar %s --all\"" +msgid "" +"%s requires secret generation before deploy, run \"abra app secret generate " +"%s --all\"" +msgstr "" +"%s requiere generación de secretos antes del despliegue, ejecuta \"abra " +"aplicacion secreto generar %s --all\"" #: cli/app/new.go:224 #, c-format msgid "%s requires secret insertion before deploy (#generate=false)" -msgstr "%s requiere inserción de secretos antes del despliegue (#generate=false)" +msgstr "" +"%s requiere inserción de secretos antes del despliegue (#generate=false)" #: cli/app/new.go:151 #, c-format msgid "%s sanitised as %s for new app" msgstr "%s sanitisado como %s para nueva aplicación" -#: pkg/recipe/git.go:439 +#: pkg/recipe/git.go:445 #, c-format msgid "%s service is missing image tag?" msgstr "¿falta la etiqueta de imagen del servicio %s?" @@ -573,14 +585,23 @@ msgid "'%s' is not a known version for %s" msgstr "'%s' no es una versión conocida para %s" #: cli/app/volume.go:175 -msgid "'x' indicates selected, enter / return to confirm, ctrl-c to exit, vim mode is enabled" -msgstr "'x' indica seleccionado, presiona Enter para confirmar, Ctrl-C para salir, el modo vim está activado" +msgid "" +"'x' indicates selected, enter / return to confirm, ctrl-c to exit, vim mode " +"is enabled" +msgstr "" +"'x' indica seleccionado, presiona Enter para confirmar, Ctrl-C para salir, " +"el modo vim está activado" #: cli/app/cmd.go:125 #, c-format msgid "--local detected, running %s on local work station" msgstr "--local detectado, ejecutando %s en la estación de trabajo local" +#: pkg/lint/recipe.go:261 pkg/recipe/files.go:18 +#, fuzzy, c-format +msgid ".env.sample for %s couldn't be read: %s" +msgstr "archivo de entorno (env) para %s no pudo leerse: %s" + #: pkg/lint/recipe.go:133 msgid ".env.sample provided" msgstr "Se proporcionó .env.sample" @@ -593,19 +614,23 @@ msgstr "Se utiliza una plantilla de receta gestionada por la comunidad." msgid "" "A recipe is a blueprint for an app.\n" "\n" -"It is a bunch of config files which describe how to deploy and maintain an app.\n" +"It is a bunch of config files which describe how to deploy and maintain an " +"app.\n" "Recipes are maintained by the Co-op Cloud community and you can use Abra to\n" "read them, deploy them and create apps for you.\n" "\n" -"Anyone who uses a recipe can become a maintainer. Maintainers typically make\n" -"sure the recipe is in good working order and the config upgraded in a timely\n" +"Anyone who uses a recipe can become a maintainer. Maintainers typically " +"make\n" +"sure the recipe is in good working order and the config upgraded in a " +"timely\n" "manner." msgstr "" #: cli/app/remove.go:57 #, c-format msgid "ALERTA ALERTA: deleting %s data and config (local/remote)" -msgstr "ALERTA ALERTA: eliminando los datos y la configuración de %s (local/remoto)" +msgstr "" +"ALERTA ALERTA: eliminando los datos y la configuración de %s (local/remoto)" #. translators: Short description for `server add` command #: cli/server/add.go:30 @@ -617,7 +642,8 @@ msgid "" "Add a new server to your configuration so that it can be managed by Abra.\n" "\n" "Abra relies on the standard SSH command-line and ~/.ssh/config for client\n" -"connection details. You must configure an entry per-host in your ~/.ssh/config\n" +"connection details. You must configure an entry per-host in your ~/.ssh/" +"config\n" "for each server:\n" "\n" " Host 1312.net 1312\n" @@ -626,15 +652,18 @@ msgid "" " Port 12345\n" " IdentityFile ~/.ssh/antifa@somewhere\n" "\n" -"If \"--local\" is passed, then Abra assumes that the current local server is\n" -"intended as the target server. This is useful when you want to have your entire\n" +"If \"--local\" is passed, then Abra assumes that the current local server " +"is\n" +"intended as the target server. This is useful when you want to have your " +"entire\n" "Co-op Cloud config located on the server itself, and not on your local\n" "developer machine. The domain is then set to \"default\"." msgstr "" #: cli/app/labels.go:33 msgid "Both local recipe and live deployment labels are shown." -msgstr "Se muestran tanto la receta local como las etiquetas del despliegue en vivo." +msgstr "" +"Se muestran tanto la receta local como las etiquetas del despliegue en vivo." #: cli/app/backup.go:319 cli/app/backup.go:335 cli/app/check.go:95 #: cli/app/cmd.go:285 cli/app/cp.go:385 cli/app/deploy.go:414 @@ -698,12 +727,16 @@ msgstr "💕 Clona la receta(s) 🧑‍🍳 en local" msgid "" "Compare env vars in both the app \".env\" and recipe \".env.sample\" file.\n" "\n" -"The goal is to ensure that recipe \".env.sample\" env vars are defined in your\n" -"app \".env\" file. Only env var definitions in the \".env.sample\" which are\n" -"uncommented, e.g. \"FOO=bar\" are checked. If an app \".env\" file does not include\n" +"The goal is to ensure that recipe \".env.sample\" env vars are defined in " +"your\n" +"app \".env\" file. Only env var definitions in the \".env.sample\" which " +"are\n" +"uncommented, e.g. \"FOO=bar\" are checked. If an app \".env\" file does not " +"include\n" "these env vars, then \"check\" will complain.\n" "\n" -"Recipe maintainers may or may not provide defaults for env vars within their\n" +"Recipe maintainers may or may not provide defaults for env vars within " +"their\n" "recipes regardless of commenting or not (e.g. through the use of\n" "${FOO:} syntax). \"check\" does not confirm or deny this for you." msgstr "" @@ -732,24 +765,31 @@ msgstr "📸 Crea una nueva captura o instantánea" msgid "" "Create a new version of a recipe.\n" "\n" -"These versions are then published on the Co-op Cloud recipe catalogue. These\n" +"These versions are then published on the Co-op Cloud recipe catalogue. " +"These\n" "versions take the following form:\n" "\n" " a.b.c+x.y.z\n" "\n" -"Where the \"a.b.c\" part is a semantic version determined by the maintainer. The\n" -"\"x.y.z\" part is the image tag of the recipe \"app\" service (the main container\n" +"Where the \"a.b.c\" part is a semantic version determined by the maintainer. " +"The\n" +"\"x.y.z\" part is the image tag of the recipe \"app\" service (the main " +"container\n" "which contains the software to be used, by naming convention).\n" "\n" "We maintain a semantic versioning scheme (\"a.b.c\") alongside the recipe\n" -"versioning scheme (\"x.y.z\") in order to maximise the chances that the nature of\n" +"versioning scheme (\"x.y.z\") in order to maximise the chances that the " +"nature of\n" "recipe updates are properly communicated. I.e. developers of an app might\n" -"publish a minor version but that might lead to changes in the recipe which are\n" +"publish a minor version but that might lead to changes in the recipe which " +"are\n" "major and therefore require intervention while doing the upgrade work.\n" "\n" "Publish your new release to git.coopcloud.tech with \"--publish/-p\". This\n" -"requires that you have permission to git push to these repositories and have\n" -"your SSH keys configured on your account. Enable ssh-agent and make sure to add\n" +"requires that you have permission to git push to these repositories and " +"have\n" +"your SSH keys configured on your account. Enable ssh-agent and make sure to " +"add\n" "your private key and enter your passphrase beforehand.\n" "\n" " eval `ssh-agent`\n" @@ -767,21 +807,27 @@ msgid "" "This new app configuration is stored in your $ABRA_DIR directory under the\n" "appropriate server.\n" "\n" -"This command does not deploy your app for you. You will need to run \"abra app\n" +"This command does not deploy your app for you. You will need to run \"abra " +"app\n" "deploy \" to do so.\n" "\n" -"You can see what recipes are available (i.e. values for the [recipe] argument)\n" +"You can see what recipes are available (i.e. values for the [recipe] " +"argument)\n" "by running \"abra recipe ls\".\n" "\n" "Recipe commit hashes are supported values for \"[version]\".\n" "\n" -"Passing the \"--secrets/-S\" flag will automatically generate secrets for your\n" +"Passing the \"--secrets/-S\" flag will automatically generate secrets for " +"your\n" "app and store them encrypted at rest on the chosen target server. These\n" -"generated secrets are only visible at generation time, so please take care to\n" +"generated secrets are only visible at generation time, so please take care " +"to\n" "store them somewhere safe.\n" "\n" -"You can use the \"--pass/-P\" to store these generated passwords locally in a\n" -"pass store (see passwordstore.org for more). The pass command must be available\n" +"You can use the \"--pass/-P\" to store these generated passwords locally in " +"a\n" +"pass store (see passwordstore.org for more). The pass command must be " +"available\n" "on your $PATH." msgstr "" @@ -815,9 +861,11 @@ msgstr "📤 Despliega una aplicación 🚀" msgid "" "Deploy an app.\n" "\n" -"This command supports chaos operations. Use \"--chaos/-C\" to deploy your recipe\n" +"This command supports chaos operations. Use \"--chaos/-C\" to deploy your " +"recipe\n" "checkout as-is. Recipe commit hashes are also supported as values for\n" -"\"[version]\". Please note, \"upgrade\"/\"rollback\" do not support chaos operations." +"\"[version]\". Please note, \"upgrade\"/\"rollback\" do not support chaos " +"operations." msgstr "" #. translators: Short description for `app services` command @@ -834,7 +882,8 @@ msgstr "⬇️📸 Descarga una captura o instantánea" msgid "" "Downloads a backup.tar.gz to the current working directory.\n" "\n" -"\"--volumes/-v\" includes data contained in volumes alongide paths specified in\n" +"\"--volumes/-v\" includes data contained in volumes alongide paths specified " +"in\n" "\"backupbot.backup.path\" labels." msgstr "" @@ -873,21 +922,28 @@ msgstr "NOMBRE GENERADO" msgid "" "Generate a new copy of the recipe catalogue.\n" "\n" -"N.B. this command **will** wipe local unstaged changes from your local recipes\n" -"if present. \"--chaos/-C\" on this command refers to the catalogue repository\n" -"(\"$ABRA_DIR/catalogue\") and not the recipes. Please take care not to lose your\n" +"N.B. this command **will** wipe local unstaged changes from your local " +"recipes\n" +"if present. \"--chaos/-C\" on this command refers to the catalogue " +"repository\n" +"(\"$ABRA_DIR/catalogue\") and not the recipes. Please take care not to lose " +"your\n" "changes.\n" "\n" "It is possible to generate new metadata for a single recipe by passing\n" "[recipe]. The existing local catalogue will be updated, not overwritten.\n" "\n" -"It is quite easy to get rate limited by Docker Hub when running this command.\n" -"If you have a Hub account you can \"docker login\" and Abra will automatically\n" +"It is quite easy to get rate limited by Docker Hub when running this " +"command.\n" +"If you have a Hub account you can \"docker login\" and Abra will " +"automatically\n" "use those details.\n" "\n" "Publish your new release to git.coopcloud.tech with \"--publish/-p\". This\n" -"requires that you have permission to git push to these repositories and have\n" -"your SSH keys configured on your account. Enable ssh-agent and make sure to add\n" +"requires that you have permission to git push to these repositories and " +"have\n" +"your SSH keys configured on your account. Enable ssh-agent and make sure to " +"add\n" "your private key and enter your passphrase beforehand.\n" "\n" " eval `ssh-agent`\n" @@ -938,7 +994,7 @@ msgstr "🥷 Genera secretos (contraseñas) automáticamente 🤖" msgid "Generate the recipe catalogue" msgstr "📋 Muestra el catálogo de recetas 🧑‍🍳" -#: pkg/recipe/git.go:453 +#: pkg/recipe/git.go:459 #, c-format msgid "GetRecipeVersions encountered error for %s: %s (collected %d versions)" msgstr "" @@ -1091,17 +1147,22 @@ msgstr "⚙️ Administrar catálogo 📋 de recetas 🧑‍🍳" msgid "" "Move an app to a differnt server.\n" "\n" -"This command will migrate an app config and copy secrets and volumes from the\n" -"old server to the new one. The app MUST be deployed on the old server before\n" +"This command will migrate an app config and copy secrets and volumes from " +"the\n" +"old server to the new one. The app MUST be deployed on the old server " +"before\n" "doing the move. The app will be undeployed from the current server but not\n" "deployed on the new server.\n" "\n" -"The \"tar\" command is required on both the old and new server as well as \"sudo\"\n" +"The \"tar\" command is required on both the old and new server as well as " +"\"sudo\"\n" "permissions. The \"rsync\" command is required on your local machine for\n" "transferring volumes.\n" "\n" -"Do not forget to update your DNS records. Don't panic, it might take a while\n" -"for the dust to settle after you move an app. If anything goes wrong, you can\n" +"Do not forget to update your DNS records. Don't panic, it might take a " +"while\n" +"for the dust to settle after you move an app. If anything goes wrong, you " +"can\n" "always move the app config file to the original server and deploy it there\n" "again. No data is removed from the old server.\n" "\n" @@ -1163,20 +1224,24 @@ msgstr "🧹 Limpiar recursos en un servidor (huerta digital) 🕋" msgid "" "Prunes unused containers, networks, and dangling images.\n" "\n" -"Use \"--volumes/-v\" to remove volumes that are not associated with a deployed\n" +"Use \"--volumes/-v\" to remove volumes that are not associated with a " +"deployed\n" "app. This can result in unwanted data loss if not used carefully." msgstr "" #. translators: Short description for `app env pull` command #: cli/app/env.go:80 msgid "Pull app environment values from a deployed app" -msgstr "Obtener (pull) valores de entorno de la aplicación desde una aplicación desplegada" +msgstr "" +"Obtener (pull) valores de entorno de la aplicación desde una aplicación " +"desplegada" #: cli/app/env.go:81 msgid "" "Pull app environment values from a deploymed app.\n" "\n" -"A convenient command for when you've lost your app environment file or want to\n" +"A convenient command for when you've lost your app environment file or want " +"to\n" "synchronize your local app environment values with what is deployed live." msgstr "" @@ -1207,7 +1272,8 @@ msgid "" "Remove a managed server.\n" "\n" "Abra will remove the internal bookkeeping ($ABRA_DIR/servers/...) and\n" -"underlying client connection context. This server will then be lost in time,\n" +"underlying client connection context. This server will then be lost in " +"time,\n" "like tears in rain." msgstr "" "Eliminar un servidor gestionado.\n" @@ -1229,7 +1295,9 @@ msgstr "💀 Borrar todos los datos de una aplicación, local y remotamente 🚨 #. translators: Short description for `recipe reset` command #: cli/recipe/reset.go:23 msgid "Remove all unstaged changes from recipe config" -msgstr "💀 Borra todos los cambios no actualizados ⤵️ de la configuración de la receta 🧑‍🍳" +msgstr "" +"💀 Borra todos los cambios no actualizados ⤵️ de la configuración de la " +"receta 🧑‍🍳" #: cli/app/remove.go:29 msgid "" @@ -1238,16 +1306,19 @@ msgid "" "By default, it will prompt for confirmation before proceeding. All secrets,\n" "volumes and the local app env file will be deleted.\n" "\n" -"Only run this command when you are sure you want to completely remove the app\n" +"Only run this command when you are sure you want to completely remove the " +"app\n" "and all associated app data. This is a destructive action, Be Careful!\n" "\n" "If you would like to delete specific volumes or secrets, please use removal\n" "sub-commands under \"app volume\" and \"app secret\" instead.\n" "\n" -"Please note, if you delete the local app env file without removing volumes and\n" +"Please note, if you delete the local app env file without removing volumes " +"and\n" "secrets first, Abra will *not* be able to help you remove them afterwards.\n" "\n" -"To delete everything without prompt, use the \"--force/-f\" or the \"--no-input/n\"\n" +"To delete everything without prompt, use the \"--force/-f\" or the \"--no-" +"input/n\"\n" "flag." msgstr "" @@ -1260,11 +1331,14 @@ msgstr "💀 Borra el volúmen(es) 📦 asociados a una aplicación🚨" msgid "" "Remove volumes associated with an app.\n" "\n" -"The app in question must be undeployed before you try to remove volumes. See\n" +"The app in question must be undeployed before you try to remove volumes. " +"See\n" "\"abra app undeploy \" for more.\n" "\n" -"The command is interactive and will show a multiple select input which allows\n" -"you to make a seclection. Use the \"?\" key to see more help on navigating this\n" +"The command is interactive and will show a multiple select input which " +"allows\n" +"you to make a seclection. Use the \"?\" key to see more help on navigating " +"this\n" "interface.\n" "\n" "Passing \"--force/-f\" will select all volumes for removal. Be careful." @@ -1288,19 +1362,26 @@ msgstr "⏪ Revertir una aplicación 🚀 una versión anterior" #. translators: Short description for `app run` command #: cli/app/run.go:30 msgid "Run a command inside a service container" -msgstr "💻 Crea una instancia temporal de un contenedor 🐋 para ejecutar el comando especificado" +msgstr "" +"💻 Crea una instancia temporal de un contenedor 🐋 para ejecutar el comando " +"especificado" #: cli/app/cmd.go:31 msgid "" "Run an app specific command.\n" "\n" -"These commands are bash functions, defined in the abra.sh of the recipe itself.\n" -"They can be run within the context of a service (e.g. app) or locally on your\n" +"These commands are bash functions, defined in the abra.sh of the recipe " +"itself.\n" +"They can be run within the context of a service (e.g. app) or locally on " +"your\n" "work station by passing \"--local/-l\".\n" "\n" -"N.B. If using the \"--\" style to pass arguments, flags (e.g. \"--local/-l\") must\n" -"be passed *before* the \"--\". It is possible to pass arguments without the \"--\"\n" -"as long as no dashes are present (i.e. \"foo\" works without \"--\", \"-foo\"\n" +"N.B. If using the \"--\" style to pass arguments, flags (e.g. \"--local/-" +"l\") must\n" +"be passed *before* the \"--\". It is possible to pass arguments without the " +"\"--\"\n" +"as long as no dashes are present (i.e. \"foo\" works without \"--\", \"-" +"foo\"\n" "does not)." msgstr "" @@ -1440,8 +1521,10 @@ msgid "" "Arbitrary secret insertion is not supported. Secrets that are inserted must\n" "match those configured in the recipe beforehand.\n" "\n" -"This command can be useful when you want to manually generate secrets for an app\n" -"environment. Typically, you can let Abra generate them for you on app creation\n" +"This command can be useful when you want to manually generate secrets for an " +"app\n" +"environment. Typically, you can let Abra generate them for you on app " +"creation\n" "(see \"abra app new --secrets/-S\" for more)." msgstr "" @@ -1470,17 +1553,22 @@ msgstr "" msgid "" "This command rolls an app back to a previous version.\n" "\n" -"Unlike \"abra app deploy\", chaos operations are not supported here. Only recipe\n" +"Unlike \"abra app deploy\", chaos operations are not supported here. Only " +"recipe\n" "versions are supported values for \"[version]\".\n" "\n" -"It is possible to \"--force/-f\" an downgrade if you want to re-deploy a specific\n" +"It is possible to \"--force/-f\" an downgrade if you want to re-deploy a " +"specific\n" "version.\n" "\n" -"Only the deployed version is consulted when trying to determine what downgrades\n" -"are available. The live deployment version is the \"source of truth\" in this\n" +"Only the deployed version is consulted when trying to determine what " +"downgrades\n" +"are available. The live deployment version is the \"source of truth\" in " +"this\n" "case. The stored .env version is not consulted.\n" "\n" -"A downgrade can be destructive, please ensure you have a copy of your app data\n" +"A downgrade can be destructive, please ensure you have a copy of your app " +"data\n" "beforehand. See \"abra app backup\" for more." msgstr "" @@ -1488,7 +1576,8 @@ msgstr "" msgid "" "This does not destroy any application data.\n" "\n" -"However, you should remain vigilant, as your swarm installation will consider\n" +"However, you should remain vigilant, as your swarm installation will " +"consider\n" "any previously attached volumes as eligible for pruning once undeployed.\n" "\n" "Passing \"--prune/-p\" does not remove those volumes." @@ -1506,7 +1595,8 @@ msgid "" " # Linux:\n" " $ abra autocomplete bash | sudo tee /etc/bash_completion.d/abra\n" " # macOS:\n" -" $ abra autocomplete bash | sudo tee $(brew --prefix)/etc/bash_completion.d/abra\n" +" $ abra autocomplete bash | sudo tee $(brew --prefix)/etc/bash_completion.d/" +"abra\n" "\n" "Zsh:\n" " # If shell autocompletion is not already enabled in your environment,\n" @@ -1560,7 +1650,8 @@ msgid "" "It will update the relevant compose file tags on the local file system.\n" "\n" "Some image tags cannot be parsed because they do not follow some sort of\n" -"semver-like convention. In this case, all possible tags will be listed and it\n" +"semver-like convention. In this case, all possible tags will be listed and " +"it\n" "is up to the end-user to decide.\n" "\n" "The command is interactive and will show a select input which allows you to\n" @@ -1579,8 +1670,10 @@ msgid "" "\n" "By default, the latest stable release is downloaded.\n" "\n" -"Use \"--rc/-r\" to install the latest release candidate. Please bear in mind that\n" -"it may contain absolutely catastrophic deal-breaker bugs. Thank you very much\n" +"Use \"--rc/-r\" to install the latest release candidate. Please bear in mind " +"that\n" +"it may contain absolutely catastrophic deal-breaker bugs. Thank you very " +"much\n" "for the testing efforts 💗" msgstr "" @@ -1593,17 +1686,22 @@ msgstr "📨 Actualizar una aplicación 🚀" msgid "" "Upgrade an app.\n" "\n" -"Unlike \"abra app deploy\", chaos operations are not supported here. Only recipe\n" +"Unlike \"abra app deploy\", chaos operations are not supported here. Only " +"recipe\n" "versions are supported values for \"[version]\".\n" "\n" -"It is possible to \"--force/-f\" an upgrade if you want to re-deploy a specific\n" +"It is possible to \"--force/-f\" an upgrade if you want to re-deploy a " +"specific\n" "version.\n" "\n" -"Only the deployed version is consulted when trying to determine what upgrades\n" -"are available. The live deployment version is the \"source of truth\" in this\n" +"Only the deployed version is consulted when trying to determine what " +"upgrades\n" +"are available. The live deployment version is the \"source of truth\" in " +"this\n" "case. The stored .env version is not consulted.\n" "\n" -"An upgrade can be destructive, please ensure you have a copy of your app data\n" +"An upgrade can be destructive, please ensure you have a copy of your app " +"data\n" "beforehand. See \"abra app backup\" for more." msgstr "" @@ -1626,19 +1724,26 @@ msgid "" "Examples:\n" "{{.Example}}{{end}}{{if .HasAvailableSubCommands}}\n" "\n" -"Available Commands:{{range .Commands}}{{if (or .IsAvailableCommand (eq .Name \"help\"))}}\n" -" {{rpad .Name .NamePadding }} {{.Short}}{{end}}{{end}}{{end}}{{if .HasAvailableLocalFlags}}\n" +"Available Commands:{{range .Commands}}{{if (or .IsAvailableCommand (eq .Name " +"\"help\"))}}\n" +" {{rpad .Name .NamePadding }} {{.Short}}{{end}}{{end}}{{end}}{{if ." +"HasAvailableLocalFlags}}\n" "\n" "Flags:\n" -"{{.LocalFlags.FlagUsages | trimTrailingWhitespaces}}{{end}}{{if .HasAvailableInheritedFlags}}\n" +"{{.LocalFlags.FlagUsages | trimTrailingWhitespaces}}{{end}}{{if ." +"HasAvailableInheritedFlags}}\n" "\n" "Global Flags:\n" -"{{.InheritedFlags.FlagUsages | trimTrailingWhitespaces}}{{end}}{{if .HasHelpSubCommands}}\n" +"{{.InheritedFlags.FlagUsages | trimTrailingWhitespaces}}{{end}}{{if ." +"HasHelpSubCommands}}\n" "\n" -"Additional help topics:{{range .Commands}}{{if .IsAdditionalHelpTopicCommand}}\n" -" {{rpad .CommandPath .CommandPathPadding}} {{.Short}}{{end}}{{end}}{{end}}{{if .HasAvailableSubCommands}}\n" +"Additional help topics:{{range .Commands}}{{if ." +"IsAdditionalHelpTopicCommand}}\n" +" {{rpad .CommandPath .CommandPathPadding}} {{.Short}}{{end}}{{end}}{{end}}" +"{{if .HasAvailableSubCommands}}\n" "\n" -"Use \"{{.CommandPath}} [command] --help\" for more information about a command.{{end}}\n" +"Use \"{{.CommandPath}} [command] --help\" for more information about a " +"command.{{end}}\n" msgstr "" "Uso:{{if .Runnable}}\n" " {{.UseLine}}{{end}}{{if .HasAvailableSubCommands}}\n" @@ -1650,23 +1755,34 @@ msgstr "" "Ejemplos:\n" "{{.Example}}{{end}}{{if .HasAvailableSubCommands}}\n" "\n" -"Comandos disponibles:{{range .Commands}}{{if (or .IsAvailableCommand (eq .Name \"help\"))}}\n" -" {{rpad .Name .NamePadding }} {{.Short}}{{end}}{{end}}{{end}}{{if .HasAvailableLocalFlags}}\n" +"Comandos disponibles:{{range .Commands}}{{if (or .IsAvailableCommand (eq ." +"Name \"help\"))}}\n" +" {{rpad .Name .NamePadding }} {{.Short}}{{end}}{{end}}{{end}}{{if ." +"HasAvailableLocalFlags}}\n" "\n" "Flags:\n" -"{{.LocalFlags.FlagUsages | trimTrailingWhitespaces}}{{end}}{{if .HasAvailableInheritedFlags}}\n" +"{{.LocalFlags.FlagUsages | trimTrailingWhitespaces}}{{end}}{{if ." +"HasAvailableInheritedFlags}}\n" "\n" "Flags globales:\n" -"{{.InheritedFlags.FlagUsages | trimTrailingWhitespaces}}{{end}}{{if .HasHelpSubCommands}}\n" +"{{.InheritedFlags.FlagUsages | trimTrailingWhitespaces}}{{end}}{{if ." +"HasHelpSubCommands}}\n" "\n" -"Temas de ayuda adicionales:{{range .Commands}}{{if .IsAdditionalHelpTopicCommand}}\n" -" {{rpad .CommandPath .CommandPathPadding}} {{.Short}}{{end}}{{end}}{{end}}{{if .HasAvailableSubCommands}}\n" +"Temas de ayuda adicionales:{{range .Commands}}{{if ." +"IsAdditionalHelpTopicCommand}}\n" +" {{rpad .CommandPath .CommandPathPadding}} {{.Short}}{{end}}{{end}}{{end}}" +"{{if .HasAvailableSubCommands}}\n" "\n" -"Use \"{{.CommandPath}} [command] --help\" para más información sobre un comando.{{end}}\n" +"Use \"{{.CommandPath}} [command] --help\" para más información sobre un " +"comando.{{end}}\n" #: cli/recipe/fetch.go:28 -msgid "Using \"--force/-f\" Git syncs an existing recipe. It does not erase unstaged changes." -msgstr "Usando \"--force/-f\", Git sincroniza una receta existente. No borra los cambios no preparados." +msgid "" +"Using \"--force/-f\" Git syncs an existing recipe. It does not erase " +"unstaged changes." +msgstr "" +"Usando \"--force/-f\", Git sincroniza una receta existente. No borra los " +"cambios no preparados." #: cli/app/secret.go:117 msgid "VALUE" @@ -1697,20 +1813,27 @@ msgstr "[hijack] Fin de stdout" #, c-format msgid "" "\n" -"The following options are two types of initial semantic version that you can\n" -"pick for %s that will be published in the recipe catalogue. This follows the\n" +"The following options are two types of initial semantic version that you " +"can\n" +"pick for %s that will be published in the recipe catalogue. This follows " +"the\n" "semver convention (more on https://semver.org), here is a short cheatsheet\n" "\n" -" 0.1.0: development release, still hacking. when you make a major upgrade\n" -" you increment the \"y\" part (i.e. 0.1.0 -> 0.2.0) and only move to\n" +" 0.1.0: development release, still hacking. when you make a major " +"upgrade\n" +" you increment the \"y\" part (i.e. 0.1.0 -> 0.2.0) and only move " +"to\n" " using the \"x\" part when things are stable.\n" "\n" " 1.0.0: public release, assumed to be working. you already have a stable\n" -" and reliable deployment of this app and feel relatively confident\n" +" and reliable deployment of this app and feel relatively " +"confident\n" " about it.\n" "\n" -"If you want people to be able alpha test your current config for %s but don't\n" -"think it is quite reliable, go with 0.1.0 and people will know that things are\n" +"If you want people to be able alpha test your current config for %s but " +"don't\n" +"think it is quite reliable, go with 0.1.0 and people will know that things " +"are\n" "likely to change.\n" "\n" msgstr "" @@ -1721,7 +1844,8 @@ msgid "" "\n" "You need to make a decision about what kind of an update this new recipe\n" "version is. If someone else performs this upgrade, do they have to do some\n" -"migration work or take care of some breaking changes? This can be signaled in\n" +"migration work or take care of some breaking changes? This can be signaled " +"in\n" "the version you specify on the recipe deploy label and is called a semantic\n" "version.\n" "\n" @@ -1731,15 +1855,20 @@ msgid "" "\n" "Here is a semver cheat sheet (more on https://semver.org):\n" "\n" -" major: new features/bug fixes, backwards incompatible (e.g 1.0.0 -> 2.0.0).\n" -" the upgrade won't work without some preparation work and others need\n" +" major: new features/bug fixes, backwards incompatible (e.g 1.0.0 -> " +"2.0.0).\n" +" the upgrade won't work without some preparation work and others " +"need\n" " to take care when performing it. \"it could go wrong\".\n" "\n" -" minor: new features/bug fixes, backwards compatible (e.g. 0.1.0 -> 0.2.0).\n" -" the upgrade should Just Work and there are no breaking changes in\n" +" minor: new features/bug fixes, backwards compatible (e.g. 0.1.0 -> " +"0.2.0).\n" +" the upgrade should Just Work and there are no breaking changes " +"in\n" " the app and the recipe config. \"it should go fine\".\n" "\n" -" patch: bug fixes, backwards compatible (e.g. 0.0.1 -> 0.0.2). this upgrade\n" +" patch: bug fixes, backwards compatible (e.g. 0.0.1 -> 0.0.2). this " +"upgrade\n" " should also Just Work and is mostly to do with minor bug fixes\n" " and/or security patches. \"nothing to worry about\".\n" "\n" @@ -1908,7 +2037,9 @@ msgstr "aplicacion [cmd] [args] [flags]" #: pkg/dns/dns.go:52 #, c-format msgid "app domain %s (%s) does not appear to resolve to app server %s (%s)?" -msgstr "¿El dominio de la aplicación %s (%s) no parece resolverse al servidor de la aplicación %s (%s)?" +msgstr "" +"¿El dominio de la aplicación %s (%s) no parece resolverse al servidor de la " +"aplicación %s (%s)?" #: cli/recipe/release.go:235 msgid "app service is missing image tag?" @@ -1918,7 +2049,7 @@ msgstr "¿A la aplicación le falta la etiqueta de imagen?" msgid "are you sure?" msgstr "¿Estás segurx?" -#: pkg/recipe/git.go:156 +#: pkg/recipe/git.go:162 #, c-format msgid "attempting to checkout '%s' as chaos commit" msgstr "Intentando extraer '%s' como el commit de caos" @@ -2056,10 +2187,12 @@ msgstr "no se pueden leer las recetas locales: %s" msgid "cancelled" msgstr "cancelado" -#: pkg/catalogue/catalogue.go:59 pkg/recipe/git.go:245 +#: pkg/catalogue/catalogue.go:59 pkg/recipe/git.go:251 #, c-format msgid "cannot ensure %s is up-to-date, no git remotes configured" -msgstr "no se puede asegurar que %s esté actualizado, no hay remotos de git configurados" +msgstr "" +"no se puede asegurar que %s esté actualizado, no hay remotos de git " +"configurados" #: cli/app/config.go:43 pkg/app/app.go:52 #, c-format @@ -2076,19 +2209,26 @@ msgstr "no se puede obtener la etiqueta %s para %s" msgid "cannot parse %s, invalid tag specified?" msgstr "no se puede analizar %s, ¿etiqueta especificada inválida?" -#: pkg/recipe/git.go:52 +#: pkg/recipe/git.go:58 #, c-format -msgid "cannot redeploy previous chaos version (%s), did you mean to use \"--chaos\"?" -msgstr "no se puede redeplegar la versión anterior de caos (%s), ¿Era tu intención usar \"--chaos\"?" +msgid "" +"cannot redeploy previous chaos version (%s), did you mean to use \"--chaos\"?" +msgstr "" +"no se puede redeplegar la versión anterior de caos (%s), ¿Era tu intención " +"usar \"--chaos\"?" #: cli/app/deploy.go:388 #, c-format msgid "" -"cannot redeploy previous chaos version (%s), did you mean to use \"--chaos\"?\n" -" to return to a regular release, specify a release tag, commit SHA or use \"--latest\"" +"cannot redeploy previous chaos version (%s), did you mean to use \"--" +"chaos\"?\n" +" to return to a regular release, specify a release tag, commit SHA or " +"use \"--latest\"" msgstr "" -"no se puede redesplegar la versión anterior de caos (%s), ¿Era tu intención usar \"--chaos\"? \n" -"para volver a un lanzamiento regular, especifica una etiqueta de lanzamiento, SHA de commit o agrega el comando \"--latest\"" +"no se puede redesplegar la versión anterior de caos (%s), ¿Era tu intención " +"usar \"--chaos\"? \n" +"para volver a un lanzamiento regular, especifica una etiqueta de " +"lanzamiento, SHA de commit o agrega el comando \"--latest\"" #: pkg/dns/dns.go:38 pkg/dns/dns.go:47 #, c-format @@ -2097,7 +2237,8 @@ msgstr "no se puede resolver ipv4 para %s?" #: cli/recipe/release.go:108 msgid "cannot specify tag and bump type at the same time" -msgstr "no se puede especificar una etiqueta y un tipo de incremento al mismo tiempo" +msgstr "" +"no se puede especificar una etiqueta y un tipo de incremento al mismo tiempo" #: cli/app/secret.go:68 msgid "cannot use '[secret] [version]' and '--all' together" @@ -2227,7 +2368,7 @@ msgstr "tarea: publicar cambios de la nueva versión del catálogo" msgid "cmd" msgstr "comando" -#: pkg/recipe/git.go:464 +#: pkg/recipe/git.go:470 #, c-format msgid "collected %s for %s" msgstr "colectado %s para %s" @@ -2252,13 +2393,21 @@ msgstr "el comando %v no salió después de %v: stderr=%q" #: pkg/upstream/commandconn/commandconn.go:172 #, c-format -msgid "command %v has exited with %v, please make sure the URL is valid, and Docker 18.09 or later is installed on the remote host: stderr=%s" -msgstr "el comando %v ha salido con %v, por favor asegúrate de que la URL sea válida y que Docker 18.09 o posterior esté instalado en el host remoto: stderr=%s" +msgid "" +"command %v has exited with %v, please make sure the URL is valid, and Docker " +"18.09 or later is installed on the remote host: stderr=%s" +msgstr "" +"el comando %v ha salido con %v, por favor asegúrate de que la URL sea válida " +"y que Docker 18.09 o posterior esté instalado en el host remoto: stderr=%s" #. translators: `app command` command #: cli/app/cmd.go:27 -msgid "command [service | --local] [[args] [flags] | [flags] -- [args]]" -msgstr "ejecutar [service | --local] [[args] [flags] | [flags] -- [args]]" +msgid "" +"command [service | --local] [[args] [flags] | [flags] -- " +"[args]]" +msgstr "" +"ejecutar [service | --local] [[args] [flags] | [flags] -- " +"[args]]" #: pkg/upstream/commandconn/commandconn.go:239 #, c-format @@ -2325,12 +2474,15 @@ msgstr "tiempo de conexión agotado para %s" #: pkg/recipe/compose.go:191 #, c-format msgid "considering %s config(s) for label update" -msgstr "considerando la(s) configuración(es) %s para la actualización de etiquetas" +msgstr "" +"considerando la(s) configuración(es) %s para la actualización de etiquetas" #: pkg/recipe/compose.go:123 #, c-format msgid "considering %s config(s) for tag update" -msgstr "considerando la(s) configuración(es) %s para la actualización de etiquetas (tags)" +msgstr "" +"considerando la(s) configuración(es) %s para la actualización de etiquetas " +"(tags)" #: cli/app/undeploy.go:141 cli/server/prune.go:53 #, c-format @@ -2404,7 +2556,7 @@ msgstr "crear un ejemplo de .env.sample" msgid "create remote directory: %s" msgstr "crear directorio remoto: %s" -#: pkg/client/client.go:111 +#: pkg/client/client.go:109 #, c-format msgid "created client for %s" msgstr "creado cliente para %s" @@ -2549,7 +2701,7 @@ msgstr "tiempo de espera agotado 🟠" msgid "destination directory does not exist" msgstr "el directorio de destino no existe" -#: pkg/recipe/git.go:367 +#: pkg/recipe/git.go:373 #, c-format msgid "detected %s as tags for recipe %s" msgstr "detectado(s) %s como etiquetas para la receta %s" @@ -2640,7 +2792,8 @@ msgstr "no solicitar un TTY" #: pkg/ssh/ssh.go:26 msgid "docker: is the daemon running / your user has docker permissions?" -msgstr "docker: ¿está corriendo el daemon / tu usuario tiene permisos de Docker?" +msgstr "" +"docker: ¿está corriendo el daemon / tu usuario tiene permisos de Docker?" #: cli/app/new.go:382 msgid "domain" @@ -2699,7 +2852,8 @@ msgstr "ejecución de prueba: no se creó etiqueta de git (%s)" #: cli/recipe/sync.go:254 #, c-format msgid "dry run: not syncing label %s for recipe %s" -msgstr "ejecución de prueba: no se sincronizará la etiqueta %s para la receta %s" +msgstr "" +"ejecución de prueba: no se sincronizará la etiqueta %s para la receta %s" #: pkg/git/remote.go:15 #, c-format @@ -2738,11 +2892,14 @@ msgstr "habilitar ejecución de comandos pre/post-hook" #: cli/internal/validate.go:82 #, c-format msgid "ensure %s recipe compose.* files include \"version: '3.8'\"" -msgstr "asegúrate de que los archivos compose.* de la receta %s incluyan \"version: '3.8'\"" +msgstr "" +"asegúrate de que los archivos compose.* de la receta %s incluyan \"version: " +"'3.8'\"" #: pkg/lint/recipe.go:69 msgid "ensure 'version: \"3.8\"' in compose configs" -msgstr "asegúrate que 'version: \"3.8\"' esté en las configuraciones de compose" +msgstr "" +"asegúrate que 'version: \"3.8\"' esté en las configuraciones de compose" #: pkg/lint/recipe.go:163 msgid "ensure \"image: ...\" set on all services" @@ -2753,14 +2910,18 @@ msgstr "asegúrate que \"image: ...\" esté establecido en todos los servicios" msgid "ensure recipe: %s" msgstr "asegura receta: %s" -#: pkg/recipe/git.go:50 +#: pkg/recipe/git.go:56 #, c-format msgid "ensuring env version %s" msgstr "asegurando la versión del entorno (env) %s" #: cli/recipe/upgrade.go:284 -msgid "enter / return to confirm, choose 'skip' to not upgrade this tag, vim mode is enabled" -msgstr "presiona \"enter\" para confirmar; escribe 'skip' para no actualizar esta etiqueta; modo vim habilitado" +msgid "" +"enter / return to confirm, choose 'skip' to not upgrade this tag, vim mode " +"is enabled" +msgstr "" +"presiona \"enter\" para confirmar; escribe 'skip' para no actualizar esta " +"etiqueta; modo vim habilitado" #. translators: `app env` command group #: cli/app/env.go:311 @@ -2859,12 +3020,12 @@ msgstr "🛑 falló al agregar notas de la versión: %s" msgid "failed to check git status of %s: %s" msgstr "🛑 falló al comprobar el estado de git de %s: %s" -#: pkg/git/branch.go:95 pkg/recipe/git.go:225 +#: pkg/git/branch.go:95 pkg/recipe/git.go:231 #, c-format msgid "failed to check out %s in %s" msgstr "🛑 falló al cambiar a %s en %s" -#: pkg/recipe/git.go:406 +#: pkg/recipe/git.go:412 #, fuzzy, c-format msgid "failed to check out %s in %s: %s" msgstr "🛑 falló al cambiar a %s en %s" @@ -2882,7 +3043,8 @@ msgstr "🛑falló al copiar %s desde %s a la máquina local: salida:%s errores: #: cli/app/move.go:173 #, c-format msgid "failed to copy %s from local machine to %s: output:%s err:%s" -msgstr "🛑 falló al copiar %s desde la máquina local a %s: salida:%s errores:%s" +msgstr "" +"🛑 falló al copiar %s desde la máquina local a %s: salida:%s errores:%s" #: pkg/upstream/stack/stack.go:535 #, c-format @@ -2909,7 +3071,7 @@ msgstr "🛑 argh! falló al crear secreto %s" msgid "failed to create volume %s on %s: %s" msgstr "🛑 falló al crear el volumen %s en %s: %s" -#: pkg/recipe/git.go:415 +#: pkg/recipe/git.go:421 #, fuzzy, c-format msgid "failed to get compose config for %s: %s" msgstr "🛑 error al eliminar la configuración %s: %s" @@ -2947,7 +3109,7 @@ msgstr "🛑 falló al migrar la configuración de la aplicación: %s" msgid "failed to parse image %s, saw: %s" msgstr "🛑 falló al analizar la imagen %s; detectado: %s" -#: pkg/recipe/git.go:425 +#: pkg/recipe/git.go:431 #, fuzzy, c-format msgid "failed to parse image for %s in %s: %s" msgstr "🛑 falló al analizar la imagen %s; detectado: %s" @@ -3009,7 +3171,8 @@ msgstr "🛑 No se pudo obtener el último commit de %s: %s" #: pkg/upstream/stack/stack.go:472 #, c-format msgid "failed to retrieve registry auth for image %s: %s" -msgstr "🛑 No se pudo obtener la autenticación del registro para la imagen %s: %s" +msgstr "" +"🛑 No se pudo obtener la autenticación del registro para la imagen %s: %s" #: pkg/git/branch.go:68 #, c-format @@ -3055,7 +3218,7 @@ msgstr "obtener [recipe | --all] [flags]" msgid "fetch all recipes" msgstr "Obtener todas las recetas" -#: pkg/catalogue/catalogue.go:84 pkg/recipe/git.go:278 +#: pkg/catalogue/catalogue.go:84 pkg/recipe/git.go:284 #, c-format msgid "fetched latest git changes for %s" msgstr "Se obtuvieron los últimos cambios de Git para %s" @@ -3150,7 +3313,9 @@ msgstr "catálogo de recetas generado: %s" #: cli/app/secret.go:145 #, c-format msgid "generated secrets %s shown again, please take note of them %s" -msgstr "los secretos generados %s; se muestran nuevamente, por favor toma nota de ellos %s" +msgstr "" +"los secretos generados %s; se muestran nuevamente, por favor toma nota de " +"ellos %s" #: pkg/app/compose.go:63 #, c-format @@ -3175,7 +3340,7 @@ msgstr "cambios de git confirmados" msgid "git changes pushed" msgstr "cambios de git enviados (push)" -#: pkg/recipe/git.go:411 +#: pkg/recipe/git.go:417 #, c-format msgid "git checkout: %s in %s" msgstr "" @@ -3255,7 +3420,7 @@ msgstr "git-nombre" msgid "git.coopcloud.tech repo exists" msgstr "el repositorio git.coopcloud.tech existe" -#: pkg/recipe/git.go:378 +#: pkg/recipe/git.go:384 #, c-format msgid "git: opening repository in %s" msgstr "git: abriendo repositorio en %s" @@ -3416,7 +3581,9 @@ msgstr "incrementar la parte de parche de la versión" #: pkg/git/init.go:50 #, c-format msgid "init committed all files for new git repo in %s" -msgstr "inicializado y comiteados todos los archivos para el nuevo repositorio git en %s" +msgstr "" +"inicializado y comiteados todos los archivos para el nuevo repositorio git " +"en %s" #: pkg/git/init.go:24 #, c-format @@ -3462,22 +3629,31 @@ msgstr "fuente de enlace inválida, la fuente no puede estar vacía" #: pkg/upstream/convert/service.go:813 #, c-format msgid "invalid credential spec: cannot specify both %s and %s" -msgstr "especificación de credencial inválida: no se pueden especificar ambos %s y %s" +msgstr "" +"especificación de credencial inválida: no se pueden especificar ambos %s y %s" #: pkg/upstream/convert/service.go:815 #, c-format msgid "invalid credential spec: cannot specify both %s, and %s" -msgstr "especificación de credencial inválida: no se pueden especificar tanto %s, como %s" +msgstr "" +"especificación de credencial inválida: no se pueden especificar tanto %s, " +"como %s" #: pkg/upstream/convert/service.go:834 #, c-format -msgid "invalid credential spec: spec specifies config %v, but no such config can be found" -msgstr "especificación de credencial inválida: la especificación indica la configuración %v, pero no se puede encontrar tal configuración" +msgid "" +"invalid credential spec: spec specifies config %v, but no such config can be " +"found" +msgstr "" +"especificación de credencial inválida: la especificación indica la " +"configuración %v, pero no se puede encontrar tal configuración" #: pkg/upstream/container/hijack.go:100 #, c-format msgid "invalid detach escape keys, using default: %s" -msgstr "teclas de escape de separación inválidas, utilizando el valor predeterminado: %s" +msgstr "" +"teclas de escape de separación inválidas, utilizando el valor " +"predeterminado: %s" #: pkg/lint/recipe.go:504 msgid "invalid lightweight tag detected" @@ -3533,7 +3709,9 @@ msgstr "ultima" #: cli/recipe/release.go:536 #, c-format msgid "latest git tag (%s) and synced label (%s) are the same?" -msgstr "¿la última etiqueta de git (%s) y la etiqueta sincronizada (%s) son las mismas?" +msgstr "" +"¿la última etiqueta de git (%s) y la etiqueta sincronizada (%s) son las " +"mismas?" #. translators: `abra app labels` aliases. use a comma separated list of #. aliases with no spaces in between @@ -3669,7 +3847,8 @@ msgstr "maquina" #: cli/recipe/release.go:93 #, c-format msgid "main app service version for %s is empty?" -msgstr "¿la versión del servicio principal de la aplicación para %s está vacía?" +msgstr "" +"¿la versión del servicio principal de la aplicación para %s está vacía?" #: cli/internal/recipe.go:48 cli/internal/recipe.go:66 #: cli/internal/recipe.go:80 cli/recipe/release.go:656 cli/recipe/sync.go:281 @@ -3770,13 +3949,23 @@ msgstr "se necesitan 3 o 4 argumentos" #: pkg/upstream/stack/stack.go:352 #, c-format -msgid "network %q is declared as external, but could not be found. You need to create a swarm-scoped network before the stack is deployed, which you can do by running this on the server: docker network create -d overlay proxy" -msgstr "La red %q está declarada como externa, pero no se pudo encontrar. Debes crear una red con alcance swarm antes de desplegar el stack; puedes hacerlo en el servidor mismo con: docker network create -d overlay proxy" +msgid "" +"network %q is declared as external, but could not be found. You need to " +"create a swarm-scoped network before the stack is deployed, which you can do " +"by running this on the server: docker network create -d overlay proxy" +msgstr "" +"La red %q está declarada como externa, pero no se pudo encontrar. Debes " +"crear una red con alcance swarm antes de desplegar el stack; puedes hacerlo " +"en el servidor mismo con: docker network create -d overlay proxy" #: pkg/upstream/stack/stack.go:356 #, c-format -msgid "network %q is declared as external, but it is not in the right scope: %q instead of \"swarm\"" -msgstr "la red %q se declara como externa, pero no está en el alcance correcto: %q en lugar de \"swarm\"" +msgid "" +"network %q is declared as external, but it is not in the right scope: %q " +"instead of \"swarm\"" +msgstr "" +"la red %q se declara como externa, pero no está en el alcance correcto: %q " +"en lugar de \"swarm\"" #: cli/app/undeploy.go:148 cli/server/prune.go:60 #, c-format @@ -3816,7 +4005,8 @@ msgstr "secretos nuevos: %v" #: pkg/git/read.go:88 #, c-format msgid "no %s exists, not reading any global gitignore config" -msgstr "no existe %s, no se está leyendo ninguna configuración global de gitignore" +msgstr "" +"no existe %s, no se está leyendo ninguna configuración global de gitignore" #: pkg/git/read.go:130 #, c-format @@ -3886,7 +4076,9 @@ msgstr "no se proporcionó dominio" #: pkg/recipe/compose.go:248 msgid "no existing label found, automagic insertion not supported yet" -msgstr "no se encontró ninguna etiqueta existente, la inserción automágica no es compatible aún" +msgstr "" +"no se encontró ninguna etiqueta existente, la inserción automágica no es " +"compatible aún" #: cli/recipe/sync.go:85 #, c-format @@ -3895,8 +4087,12 @@ msgstr "no se encontraron etiquetas de git para %s" #: cli/recipe/upgrade.go:181 #, c-format -msgid "no new versions available for %s, assuming %s is the latest (use -a/--all-tags to see all anyway)" -msgstr "no hay nuevas versiones disponibles para %s; asumiendo que %s es la más reciente (usa -a/--all-tags para ver todas)" +msgid "" +"no new versions available for %s, assuming %s is the latest (use -a/--all-" +"tags to see all anyway)" +msgstr "" +"no hay nuevas versiones disponibles para %s; asumiendo que %s es la más " +"reciente (usa -a/--all-tags para ver todas)" #: cli/internal/validate.go:64 #, c-format @@ -3962,8 +4158,12 @@ msgstr "¿No se encontraron servicios que coincidan con el filtro %v?" #: cli/recipe/release.go:180 #, c-format -msgid "no tag specified and no previous tag available for %s, assuming initial release" -msgstr "no se especificó etiqueta y no hay etiqueta previa disponible para %s; asumiendo lanzamiento inicial" +msgid "" +"no tag specified and no previous tag available for %s, assuming initial " +"release" +msgstr "" +"no se especificó etiqueta y no hay etiqueta previa disponible para %s; " +"asumiendo lanzamiento inicial" #: pkg/lint/recipe.go:89 msgid "no unstable tags" @@ -4015,7 +4215,9 @@ msgstr "no hay suficientes argumentos: %s" #: pkg/secret/secret.go:124 msgid "not generating app secrets, none enabled in recipe config" -msgstr "no se están generando secretos de la aplicación; ninguno habilitado en la configuración de la receta" +msgstr "" +"no se están generando secretos de la aplicación; ninguno habilitado en la " +"configuración de la receta" #: cli/internal/command.go:93 msgid "not requesting a remote TTY" @@ -4028,8 +4230,12 @@ msgstr "no se actualizará %s; se omite, como fue solicitado" #: cli/recipe/upgrade.go:243 #, c-format -msgid "not upgrading from %s to %s for %s, because the upgrade type is more serious than what user wants" -msgstr "no se actualizará %s a %s para %s, porque el tipo de actualización es más serio de lo que el usuario desea" +msgid "" +"not upgrading from %s to %s for %s, because the upgrade type is more serious " +"than what user wants" +msgstr "" +"no se actualizará %s a %s para %s, porque el tipo de actualización es más " +"serio de lo que el usuario desea" #: pkg/upstream/stack/remove.go:73 #, c-format @@ -4147,7 +4353,9 @@ msgstr "" #: cli/recipe/release.go:634 #, c-format msgid "please fix your synced label for %s and re-run this command" -msgstr "por favor, corrige tu etiqueta sincronizada para %s y vuelve a ejecutar este comando" +msgstr "" +"por favor, corrige tu etiqueta sincronizada para %s y vuelve a ejecutar este " +"comando" #: cli/app/rollback.go:267 #, c-format @@ -4157,7 +4365,9 @@ msgstr "por favor, selecciona una versión anterior (downgrade) (versión: %s):" #: cli/app/rollback.go:272 #, c-format msgid "please select a downgrade (version: %s, chaos: %s):" -msgstr "por favor, selecciona una versión anterior (downgrade) (versión: %s, caos: %s):" +msgstr "" +"por favor, selecciona una versión anterior (downgrade) (versión: %s, caos: " +"%s):" #: cli/app/upgrade.go:312 #, c-format @@ -4183,7 +4393,8 @@ msgstr "preferir acceso sin conexión y al sistema de archivos" #: cli/recipe/release.go:168 msgid "previous git tags detected, assuming new semver release" -msgstr "se detectaron etiquetas git anteriores, asumiendo un nuevo lanzamiento semver" +msgstr "" +"se detectaron etiquetas git anteriores, asumiendo un nuevo lanzamiento semver" #: cli/app/list.go:321 cli/app/ps.go:207 cli/app/secret.go:555 #: cli/app/secret.go:651 cli/recipe/list.go:106 cli/recipe/upgrade.go:376 @@ -4195,7 +4406,7 @@ msgstr "mostrar salida legible por máquina" msgid "proceed?" msgstr "¿procedemos?" -#: pkg/recipe/git.go:398 +#: pkg/recipe/git.go:404 #, c-format msgid "processing %s for %s" msgstr "procesando %s para %s" @@ -4269,7 +4480,7 @@ msgstr "" msgid "re" msgstr "" -#: pkg/recipe/git.go:151 +#: pkg/recipe/git.go:157 #, c-format msgid "read %s as tags for recipe %s" msgstr "leer %s como etiquetas para la receta %s" @@ -4614,7 +4825,8 @@ msgstr "versiones recuperadas del repositorio local de recetas" #: pkg/upstream/stack/stack.go:468 #, c-format msgid "retrieving docker auth token: failed create docker cli: %s" -msgstr "recuperando token de autenticación de Docker: error al crear docker cli: %s" +msgstr "" +"recuperando token de autenticación de Docker: error al crear docker cli: %s" #: pkg/recipe/recipe.go:659 msgid "retrieving recipes" @@ -4767,7 +4979,9 @@ msgstr "secreto [cmd] [args] [flags]" #: cli/app/secret.go:295 msgid "secret data not provided on command-line or stdin, prompting" -msgstr "datos del secreto no proporcionados en la línea de comandos o stdin, solicitando" +msgstr "" +"datos del secreto no proporcionados en la línea de comandos o stdin, " +"solicitando" #: pkg/upstream/convert/service.go:72 #, c-format @@ -4817,7 +5031,8 @@ msgstr "servidor" #: pkg/app/app.go:301 #, c-format msgid "server %s doesn't exist? Run \"abra server ls\" to check" -msgstr "el servidor %s no existe? Ejecuta \"abra servidor listar\" para verificar" +msgstr "" +"el servidor %s no existe? Ejecuta \"abra servidor listar\" para verificar" #. translators: `server` command group #: cli/server/server.go:17 @@ -4837,17 +5052,18 @@ msgstr "el directorio del servidor para %s ya ha sido creado" msgid "server doesn't exist?" msgstr "¿el servidor no existe?" -#: pkg/client/client.go:54 +#: pkg/client/client.go:53 #, c-format msgid "server missing context, context creation failed: %s" msgstr "falta contexto del servidor, la creación de contexto falló: %s" -#: pkg/client/client.go:59 +#: pkg/client/client.go:58 #, c-format msgid "server missing context, run \"abra server add %s\"?" -msgstr "falta contexto del servidor, ¿probaste con \"abra servidor agregar %s\"?" +msgstr "" +"falta contexto del servidor, ¿probaste con \"abra servidor agregar %s\"?" -#: pkg/client/client.go:48 +#: pkg/client/client.go:47 #, c-format msgid "server missing, run \"abra server add %s\"?" msgstr "falta servidor, ¿intenta ejecutando \"abra servidor agregar %s\"?" @@ -4874,13 +5090,18 @@ msgstr "serverAdd: cleanUp: no se pueden listar los archivos en %s: %s" #: cli/recipe/upgrade.go:226 #, c-format -msgid "service %s is at version %s, but pinned to %s, please correct your compose.yml file manually!" -msgstr "el servicio %s está en la versión %s, pero fijado a %s, ¡por favor corrige manualmente tu archivo compose.yml!" +msgid "" +"service %s is at version %s, but pinned to %s, please correct your compose." +"yml file manually!" +msgstr "" +"el servicio %s está en la versión %s, pero fijado a %s, ¡por favor corrige " +"manualmente tu archivo compose.yml!" #: cli/recipe/upgrade.go:222 #, c-format msgid "service %s, image %s pinned to %s, no compatible upgrade found" -msgstr "servicio %s, imagen %s fijada a %s, no se encontró actualización compatible" +msgstr "" +"servicio %s, imagen %s fijada a %s, no se encontró actualización compatible" #: cli/app/restore.go:113 msgid "services" @@ -4926,7 +5147,8 @@ msgstr "gravedad" #: cli/app/deploy.go:456 cli/app/rollback.go:379 cli/app/upgrade.go:496 msgid "show all configs & images, including unchanged ones" -msgstr "mostrar todas las configuraciones e imágenes, incluidas las no cambiadas" +msgstr "" +"mostrar todas las configuraciones e imágenes, incluidas las no cambiadas" #: cli/app/backup.go:273 msgid "show all paths" @@ -5014,17 +5236,17 @@ msgstr "omitiendo generación de %s (generate=false)" msgid "skipping secret (because it already exists) on %s: %s" msgstr "omitiendo secreto (porque ya existe) en %s: %s" -#: pkg/recipe/git.go:407 +#: pkg/recipe/git.go:413 #, c-format msgid "skipping tag %s: checkout failed: %s" msgstr "" -#: pkg/recipe/git.go:416 +#: pkg/recipe/git.go:422 #, c-format msgid "skipping tag %s: invalid compose config: %s" msgstr "" -#: pkg/recipe/git.go:426 +#: pkg/recipe/git.go:432 #, c-format msgid "skipping tag %s: invalid image reference in service %s: %s" msgstr "" @@ -5091,11 +5313,17 @@ msgstr "" #: cli/recipe/release.go:460 msgid "ssh-agent not found. see \"abra recipe release --help\" and try again" -msgstr "ssh-agent no encontrado. consulta \"abra receta publicar --ayuda\" y vuelve a intentarlo" +msgstr "" +"ssh-agent no encontrado. consulta \"abra receta publicar --ayuda\" y vuelve " +"a intentarlo" #: cli/catalogue/catalogue.go:98 -msgid "ssh: SSH_AUTH_SOCK missing, --publish/-p will fail. see \"abra catalogue generate --help\"" -msgstr "ssh: falta SSH_AUTH_SOCK, --publish/-p fallará. consulta \"abra catalogo regenerar --ayuda\"" +msgid "" +"ssh: SSH_AUTH_SOCK missing, --publish/-p will fail. see \"abra catalogue " +"generate --help\"" +msgstr "" +"ssh: falta SSH_AUTH_SOCK, --publish/-p fallará. consulta \"abra catalogo " +"regenerar --ayuda\"" #: cli/app/list.go:295 cli/recipe/list.go:45 msgid "status" @@ -5127,7 +5355,7 @@ msgstr "recortado %s a %s para el análisis" msgid "succeeded" msgstr "exitoso" -#: pkg/recipe/git.go:178 +#: pkg/recipe/git.go:184 #, c-format msgid "successfully checked %s out to %s in %s" msgstr "se comprobó correctamente %s de %s en %s" @@ -5142,12 +5370,12 @@ msgstr "se comprobó correctamente %v en %s" msgid "successfully created %s" msgstr "creado correctamente %s" -#: pkg/client/client.go:120 +#: pkg/client/client.go:118 #, c-format msgid "swarm mode not enabled on %s?" msgstr "¿Modo swarm no habilitado en %s?" -#: pkg/client/client.go:123 +#: pkg/client/client.go:121 msgid "swarm mode not enabled on local server?" msgstr "¿Modo swarm no habilitado en el servidor local?" @@ -5294,12 +5522,12 @@ msgstr "" msgid "un" msgstr "" -#: pkg/recipe/git.go:187 +#: pkg/recipe/git.go:193 #, c-format msgid "unable to check git clean status in %s: %s" msgstr "no se pudo comprobar el estado de git clean en %s: %s" -#: pkg/recipe/git.go:256 +#: pkg/recipe/git.go:262 #, c-format msgid "unable to check out default branch in %s: %s" msgstr "no se pudo cambiar a la rama predeterminada en %s: %s" @@ -5361,24 +5589,23 @@ msgstr "no se pudo determinar el tipo de receta a partir de %s, env: %v" #: cli/app/env.go:106 #, c-format msgid "unable to determine server of app %s, please pass --server/-s" -msgstr "no se pudo determinar el servidor de la aplicación %s; agrega al comando --server/-s" +msgstr "" +"no se pudo determinar el servidor de la aplicación %s; agrega al comando --" +"server/-s" #: cli/recipe/upgrade.go:251 #, c-format msgid "unable to determine versioning semantics of %s, listing all tags" -msgstr "no se pudieron determinar las reglas de versionado de %s; listando todas las etiquetas" - -#: pkg/lint/recipe.go:261 pkg/recipe/files.go:18 -#, c-format -msgid "unable to discover .env.sample for %s" -msgstr "no se pudo encontrar .env.sample para %s" +msgstr "" +"no se pudieron determinar las reglas de versionado de %s; listando todas las " +"etiquetas" #: cli/recipe/fetch.go:71 #, c-format msgid "unable to discover SSH remote for %s" msgstr "no se pudo detectar el remoto SSH para %s" -#: pkg/recipe/git.go:262 +#: pkg/recipe/git.go:268 #, c-format msgid "unable to fetch tags in %s: %s" msgstr "no se pudieron obtener las etiquetas en %s: %s" @@ -5388,7 +5615,7 @@ msgstr "no se pudieron obtener las etiquetas en %s: %s" msgid "unable to get container matching %s: %s" msgstr "no se pudo obtener el contenedor que coincide con %s: %s" -#: pkg/recipe/git.go:274 +#: pkg/recipe/git.go:280 #, c-format msgid "unable to git pull in %s: %s" msgstr "no se pudo hacer git pull en %s: %s" @@ -5413,12 +5640,12 @@ msgid "unable to look up server context for %s: %s" msgstr "no se pudo obtener el contexto del servidor para %s: %s" #: cli/recipe/fetch.go:77 pkg/git/read.go:26 pkg/lint/recipe.go:491 -#: pkg/recipe/git.go:236 +#: pkg/recipe/git.go:242 #, c-format msgid "unable to open %s: %s" msgstr "no se pudo abrir %s: %s" -#: pkg/recipe/git.go:251 +#: pkg/recipe/git.go:257 #, c-format msgid "unable to open git work tree in %s: %s" msgstr "no se pudo abrir el git work tree en %s: %s" @@ -5441,7 +5668,8 @@ msgstr "no se pudo abrir el work tree de %s: %s" #: cli/recipe/upgrade.go:158 #, c-format msgid "unable to parse %s, error was: %s, skipping upgrade for %s" -msgstr "no se pudo analizar %s, el error fue: %s, omitiendo la actualización para %s" +msgstr "" +"no se pudo analizar %s, el error fue: %s, omitiendo la actualización para %s" #: pkg/recipe/compose.go:153 #, c-format @@ -5478,7 +5706,7 @@ msgstr "no se pudo consultar el estado de %s: %s" msgid "unable to read new env %s: %s" msgstr "no se pudo leer el nuevo env %s: %s" -#: pkg/recipe/git.go:241 +#: pkg/recipe/git.go:247 #, c-format msgid "unable to read remotes in %s: %s" msgstr "no se pudieron leer los remotos en %s: %s" @@ -5486,12 +5714,18 @@ msgstr "no se pudieron leer los remotos en %s: %s" #: cli/recipe/upgrade.go:152 #, c-format msgid "unable to read tag for image %s, is it missing? skipping upgrade for %s" -msgstr "no se pudo leer la etiqueta de la imagen %s; ¿quizás falta? omitiendo actualización para %s" +msgstr "" +"no se pudo leer la etiqueta de la imagen %s; ¿quizás falta? omitiendo " +"actualización para %s" #: cli/recipe/release.go:621 #, c-format -msgid "unable to read version for %s from synced label. Did you try running \"abra recipe sync %s\" already?" -msgstr "no se pudo leer la versión de %s desde la etiqueta sincronizada. ¿Ya ejecutaste \"abra receta sincronizar %s\"?" +msgid "" +"unable to read version for %s from synced label. Did you try running \"abra " +"recipe sync %s\" already?" +msgstr "" +"no se pudo leer la versión de %s desde la etiqueta sincronizada. ¿Ya " +"ejecutaste \"abra receta sincronizar %s\"?" #: cli/app/move.go:210 #, c-format @@ -5506,7 +5740,8 @@ msgstr "no se pudo eliminar el remoto predeterminado en %s: %s" #: cli/app/volume.go:158 #, c-format msgid "unable to remove volume: no volume with name '%s'?" -msgstr "no se pudo eliminar el volumen: ¿no existe un volumen con el nombre '%s'?" +msgstr "" +"no se pudo eliminar el volumen: ¿no existe un volumen con el nombre '%s'?" #: cli/app/secret.go:135 cli/app/secret.go:515 cli/recipe/list.go:83 #: cli/recipe/version.go:113 cli/server/list.go:88 @@ -5514,7 +5749,7 @@ msgstr "no se pudo eliminar el volumen: ¿no existe un volumen con el nombre '%s msgid "unable to render to JSON: %s" msgstr "no se pudo renderizar a JSON: %s" -#: pkg/recipe/git.go:160 +#: pkg/recipe/git.go:166 #, c-format msgid "unable to resolve '%s': %s" msgstr "no se pudo resolver '%s': %s" @@ -5794,8 +6029,10 @@ msgstr "versión %s guardada en %s.env" #: cli/app/deploy.go:126 #, c-format -msgid "version '%s' appears to be a chaos commit, but --chaos/-C was not provided" -msgstr "la versión '%s' parece ser un commit de caos, pero no se utilizó --chaos/-C" +msgid "" +"version '%s' appears to be a chaos commit, but --chaos/-C was not provided" +msgstr "" +"la versión '%s' parece ser un commit de caos, pero no se utilizó --chaos/-C" #: pkg/recipe/recipe.go:200 #, c-format @@ -5843,7 +6080,8 @@ msgstr "versión: tomando la versión desde el archivo .env: %s" #: cli/app/deploy.go:378 #, c-format msgid "version: taking version from cli arg: %s" -msgstr "versión: tomando la versión desde el argumento de la línea de comandos: %s" +msgstr "" +"versión: tomando la versión desde el argumento de la línea de comandos: %s" #. translators: `recipe versions` command #: cli/recipe/version.go:23 @@ -6006,6 +6244,10 @@ msgstr "" msgid "{name: %s, " msgstr "{nombre: %s, " +#, c-format +#~ msgid "unable to discover .env.sample for %s" +#~ msgstr "no se pudo encontrar .env.sample para %s" + #~ msgid "Show app .env values" #~ msgstr "📋 Muestra la información del entorno de la plataforma 🚀" diff --git a/pkg/lint/recipe.go b/pkg/lint/recipe.go index c1b8c158..e81c288c 100644 --- a/pkg/lint/recipe.go +++ b/pkg/lint/recipe.go @@ -258,7 +258,7 @@ func LintAppService(recipe recipe.Recipe) (bool, error) { func LintTraefikEnabledSkipCondition(r recipe.Recipe) (bool, error) { sampleEnv, err := r.SampleEnv() if err != nil { - return false, errors.New(i18n.G("unable to discover .env.sample for %s", r.Name)) + return false, errors.New(i18n.G(".env.sample for %s couldn't be read: %s", r.Name, err)) } if _, ok := sampleEnv["DOMAIN"]; !ok { diff --git a/pkg/recipe/files.go b/pkg/recipe/files.go index cc8fbac9..39457778 100644 --- a/pkg/recipe/files.go +++ b/pkg/recipe/files.go @@ -15,7 +15,7 @@ import ( func (r Recipe) SampleEnv() (map[string]string, error) { sampleEnv, err := envfile.ReadEnv(r.SampleEnvPath) if err != nil { - return sampleEnv, errors.New(i18n.G("unable to discover .env.sample for %s", r.Name)) + return sampleEnv, errors.New(i18n.G(".env.sample for %s couldn't be read: %s", r.Name, err)) } return sampleEnv, nil } diff --git a/pkg/recipe/git.go b/pkg/recipe/git.go index aef62b08..eff8f5f8 100644 --- a/pkg/recipe/git.go +++ b/pkg/recipe/git.go @@ -32,6 +32,12 @@ func (r Recipe) Ensure(ctx EnsureContext) error { return err } + // NOTE(d1): if we cannot parse the .env.sample then there is a + // fundamental problem which requires solving right now + if _, err := r.SampleEnv(); err != nil { + return err + } + if ctx.Chaos { return nil } diff --git a/tests/integration/app_deploy.bats b/tests/integration/app_deploy.bats index 0295a3bd..0e4f9ff2 100644 --- a/tests/integration/app_deploy.bats +++ b/tests/integration/app_deploy.bats @@ -30,6 +30,11 @@ teardown(){ run rm -rf "$ABRA_DIR/recipes/$TEST_RECIPE/foo" assert_not_exists "$ABRA_DIR/recipes/$TEST_RECIPE/foo" + + if [[ -d "$ABRA_DIR/recipes/foo" ]]; then + run rm -rf "$ABRA_DIR/recipes/foo" + assert_not_exists "$ABRA_DIR/recipes/foo" + fi } @test "validate app argument" { @@ -610,8 +615,6 @@ teardown(){ "$ABRA_DIR/servers/$TEST_SERVER/$TEST_APP_DOMAIN.env" assert_success - # run sed -i 's/#COMPOSE_FILE="$COMPOSE_FILE:compose.udp-and-tcp.yml"/COMPOSE_FILE="$COMPOSE_FILE:compose.udp-and-tcp.yml"/g' \ - # "$ABRA_DIR/servers/$TEST_SERVER/$TEST_APP_DOMAIN.env" run bash -c "printf '\nCOMPOSE_FILE=\"\$COMPOSE_FILE:compose.udp-and-tcp.yml\"' >> $ABRA_DIR/servers/$TEST_SERVER/$TEST_APP_DOMAIN.env" assert_success @@ -669,3 +672,25 @@ teardown(){ assert_failure assert_output --partial "unable to parse" } + +# bats test_tags=slow +@test "app deploy with borked sample env gives useful error" { + run $ABRA recipe new foo --no-input + assert_success + + run $ABRA app new foo \ + --no-input \ + --server "$TEST_SERVER" \ + --domain "foo.$TEST_SERVER" \ + --chaos + assert_success + assert_exists "$ABRA_DIR/servers/$TEST_SERVER/foo.$TEST_SERVER.env" + + run bash -c "printf '\nEVIL-VAR=EVIL' >> $ABRA_DIR/recipes/foo/.env.sample" + assert_success + + run $ABRA app deploy "foo.$TEST_SERVER" \ + --no-input --no-converge-checks --chaos + assert_failure + assert_output --partial "unexpected character" +} -- 2.49.0