Hello mentors,
From the debconf-devel(7) manual:
If the question will not be displayed, debconf replies with code 30.
What is a use case if db_input 30 return value?
If question is skipped (will not be displayed) by db_input:
* Should I also skip db_go?
* Or should I safely ignore 30 return code and do db_go? if so, What is the use case of db_input 30 return value?
Because, if I do skip db_go and want to unregister (just for example) my template then db_unregister fails with 10 return code:
debconf (developer): <-- INPUT high my-package/some-template
debconf (developer): --> 30 question skipped
debconf (developer): <-- UNREGISTER my-package/some-template
debconf (developer): --> 10 my-package/some-template is busy, cannot unregister right now
debconf (developer): <-- PURGE
debconf (developer): --> 0
example code:
#!/bin/sh
. /usr/share/debconf/confmodule
db_version 2.0
TMPL_FILE="$(mktemp)"
question="my-package/some-template"
cat > "${TMPL_FILE}" <<'!EOF!'
Template: my-package/some-template
Type: string
Description: Some short description:
Some long description
!EOF!
db_x_loadtemplatefile "${TMPL_FILE}" my-package
main(){
# emulate upgrade procedure or preseeded case
db_fset "$question" seen true
db_input high "$question" || return 0
db_go
}
db_register "$question" "$question"
main
db_unregister "$question" || true
db_purge
rm -f "${TMPL_FILE}"