1
0
mirror of https://github.com/goreleaser/goreleaser.git synced 2025-03-17 20:47:50 +02:00

add debconf-templates cookbook (#1907)

* add debconf-templates cookbook

* chore: typo

Co-authored-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>
This commit is contained in:
Ivan Vandot 2020-11-18 13:55:14 +01:00 committed by GitHub
parent a704baea0b
commit 20594d6183
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 59 additions and 1 deletions

View File

@ -0,0 +1,56 @@
# Use debconf and templates
Deb installation format has a support for user input during installation using [debconf](https://manpages.debian.org/testing/debconf-doc/debconf-devel.7.en.html).
To enable it inside `goreleaser` you need:
`templates` file, what to ask (all templates go into single file):
```none
Template: foo/like_debian
Type: boolean
Description: Do you like Debian?
We'd like to know if you like the Debian GNU/Linux system.
Template: foo/why_debian_is_great
Type: note
Description: Poor misguided one. Why are you installing this package?
Debian is great. As you continue using Debian, we hope you will
discover the error in your ways.
```
Maintainer script file that will trigger questions, usually its `postinst` because all package files are already installed:
```sh
#!/bin/sh -e
# Source debconf library.
. /usr/share/debconf/confmodule
# Do you like debian?
db_input high foo/like_debian || true
db_go || true
# Check their answer.
# with db_get you load value into $RET env variable.
db_get foo/like_debian
if [ "$RET" = "false" ]; then
# Poor misguided one...
db_input high foo/why_debian_is_great || true
db_go || true
fi
```
Include `templates` and `postinst` in `.goreleaser.yml`:
```yaml
overrides:
deb:
scripts:
postinstall: ./deb/postinst
deb:
scripts:
templates: ./deb/templates
```
Useful tutorial: [Debconf Programmer's Tutorial](http://www.fifi.org/doc/debconf-doc/tutorial.html)

View File

@ -207,8 +207,9 @@ nfpms:
# Custom configuration applied only to the Deb packager.
deb:
# Custom deb rules script.
# Custom deb special files.
scripts:
# Deb rules script.
rules: foo.sh
# Deb templates file, when using debconf.
templates: templates

View File

@ -89,6 +89,7 @@ nav:
- cookbooks/release-a-library.md
- cookbooks/publish-to-nexus.md
- cookbooks/cgo-and-crosscompiling.md
- cookbooks/debconf-templates.md
- tutorials.md
- links.md