base-files: rework postinstall uci-defaults handling
authorJo-Philipp Wich <jo@mein.io>
Fri, 27 May 2016 07:43:14 +0000 (09:43 +0200)
committerJo-Philipp Wich <jo@mein.io>
Fri, 27 May 2016 08:27:45 +0000 (10:27 +0200)
commit7f6945829640e82dadf928c9e214470fa0c5a321
tree2a59f1476d962b22112f8d1e028bc046c9503979
parent749d4b77bdbf0b31b9e15c42207ae448ac45c7d9
base-files: rework postinstall uci-defaults handling

Some package postinstall operations, e.g. those emitted by the LuCI build
system, source and delete the uci-defaults themselves upon package insteall,
causing the generic defaults apply code to trigger shell errors like:

    .../luci-app-ddns.postinst: .: line 130: can't open './40_luci-ddns'

Rework the generic apply code to check the existence of the uci-defaults
script before trying to source it, use sed to prefilter the list of entries
from the control file and perform the directory change in a subshell,
avoiding the need for cd $OLDPWD.

Signed-off-by: Jo-Philipp Wich <jo@mein.io>
package/base-files/files/lib/functions.sh