Como personalizar as escolhas e a descrição de uma pergunta do debconf?

Como personalizar as escolhas e a descrição de uma pergunta do debconf?

Atualmente estou trabalhando em um script de pacote onde preciso fornecer opções personalizadas e também desejo fornecer uma descrição estendida com base nessas escolhas.

Já modifiquei com sucesso um instalador Linux antes com uma pré-configuração e scripts personalizados usando Debconf para fazer perguntas, então estou familiarizado com como ele funciona.

O que estou travando é alterar a descrição no modelo. De acordo com todos os manuais do Debconf que procurei online, tanto as opções quanto a descrição podem ser personalizadas, embora as informações sejam breves. Existem muitos exemplos de personalização de Choices db_subste isso funciona bem.

O que estou travando é personalizar o texto da descrição e, neste caso, a descrição estendida. Já tentei usar db_substmas sem resultados satisfatórios. O problema é que preciso estender a descrição com mais linhas de texto. Mas descobri que o Debconf usa apenas uma linha. Se eu colocar marcadores de nova linha como "\n" no texto, ele os interpretará literalmente, o que parece confuso.

O Debconf pode ser programado para personalizar uma Descrição com algumas linhas extras de texto? Ou preciso desistir e apenas criar manualmente um arquivo de modelo personalizado para esta pergunta? Vejo que posso ter ido além dos recursos que o Debconf oferece, mas para mim não pareceu tão complicado.

Aqui está meu script e modelo de exemplo para que você possa ver como e o que fiz para testá-lo.

#!/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}

Responder1

Basta adicionar novas linhas reais à sua variável, assim:

extended="One
Two
Three
Four"

Isso exigiu algumas experiências da minha parte. O Debiandebconf-develmanual diz

Observe que: - Como na descrição de um pacote debian, um ponto em sua própria linha inicia um novo parágrafo. - A maior parte do texto é quebrada por palavras, mas o texto com recuo duplo é deixado de lado, então você pode usá-lo para listas de itens, como esta lista.

O que aparentemente não é verdade para a substituição. Por exemplo, se você colocar um ponto de espaço diretamente no modelo, ele imprimirá uma linha em branco, mas coloque o mesmo em uma chave substituta e imprimirá o ponto. (-‸ლ)

informação relacionada