Skip to content

Commit

Permalink
add debconf-templates cookbook (#1907)
Browse files Browse the repository at this point in the history
* add debconf-templates cookbook

* chore: typo

Co-authored-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>
  • Loading branch information
Ivan Vandot and caarlos0 committed Nov 18, 2020
1 parent a704bae commit 20594d6
Show file tree
Hide file tree
Showing 3 changed files with 59 additions and 1 deletion.
56 changes: 56 additions & 0 deletions www/docs/cookbooks/debconf-templates.md
@@ -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)
3 changes: 2 additions & 1 deletion www/docs/customization/nfpm.md
Expand Up @@ -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
Expand Down
1 change: 1 addition & 0 deletions www/mkdocs.yml
Expand Up @@ -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

Expand Down

1 comment on commit 20594d6

@vercel
Copy link

@vercel vercel bot commented on 20594d6 Nov 18, 2020

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please sign in to comment.