¿Cómo personalizar tanto las opciones como la descripción de una pregunta de debconf?

¿Cómo personalizar tanto las opciones como la descripción de una pregunta de debconf?

Actualmente estoy trabajando en un script de paquete en el que necesito proporcionar opciones personalizadas y también deseo proporcionar una descripción ampliada basada en esas opciones.

He modificado con éxito un instalador de Linux antes con scripts personalizados y preestablecidos usando Debconf para hacer preguntas y estar familiarizado con su funcionamiento.

Lo que estoy atascado es cambiar la descripción en la plantilla. Según todos los manuales de Debconf que busqué online, tanto las opciones como la descripción se pueden personalizar, aunque la información es breve. Hay muchos ejemplos de personalización de Choices db_substy esto funciona bien.

Donde estoy atascado es en personalizar el texto de Descripción y en este caso la descripción extendida. Intenté usarlo db_substpero sin resultados satisfactorios. El problema es que necesito ampliar la descripción con más líneas de texto. Pero descubrí que Debconf solo usa una línea. Si coloco marcadores de nueva línea como "\n" en el texto, los interpreta literalmente, lo que parece desordenado.

¿Se puede programar Debconf para personalizar una Descripción con unas pocas líneas de texto adicionales? ¿O tengo que rendirme y simplemente crear un archivo de plantilla personalizado a mano para esta pregunta? Veo que es posible que haya ido más allá de las funciones que ofrece Debconf, pero a mí no me pareció tan complicado.

Aquí está mi script de ejemplo y mi plantilla para que pueda ver cómo y qué he hecho para probarlo.

#!/bin/sh

# testing.sh 
# Debconf testing script.
# Testing dynamic changing of choices and description in question.

export DEBCONF_DEBUG=developer
#export DEBIAN_FRONTEND=gnome

. /usr/share/debconf/confmodule

db_x_loadtemplatefile ./testing.template testing
db_settitle testing/title

list="1, 2, 3, 4"
extended="One\n Two\n Three\n Four\n"

# Use real newlines in text
#extended=`echo "${extended}"`

db_subst testing/list list "${list}"
db_subst testing/list extended "${extended}"
db_reset testing/list
db_input critical testing/list 
db_go
db_get testing/list

db_stop

exit 0


# testing.template

Template: testing/title
Type: title
Description: Testing title

Template: testing/list
Type: select
Choices: ${list}
Description: Please select option below.
 Extended description.
 .
 ${extended}

Respuesta1

Simplemente agregue nuevas líneas reales a su variable, así:

extended="One
Two
Three
Four"

Esto requirió algo de experimentación de mi parte. El debiandebconf-desarrollomanual dice

Observe que: - Como en la descripción de un paquete Debian, un punto en su propia línea marca un nuevo párrafo. - La mayor parte del texto está ajustado en palabras, pero el texto con doble sangría no se modifica, por lo que puede usarlo para listas de elementos, como esta lista.

Lo cual aparentemente no es cierto para la sustitución. Por ejemplo, si coloca un punto de espacio directamente en la plantilla, imprimirá una línea en blanco, pero coloque lo mismo en una tecla secundaria e imprimirá el punto. (-‸ლ)

información relacionada