summaryrefslogtreecommitdiffstats
path: root/scripts/lib/ptxd_lib_cfgchg.sh
diff options
context:
space:
mode:
authorMarc Kleine-Budde <mkl@pengutronix.de>2008-12-08 01:51:17 +0000
committerMarc Kleine-Budde <mkl@pengutronix.de>2008-12-08 01:51:17 +0000
commit9fd2789785f0183ffcc4efa64af1227100644dda (patch)
tree9e4ec9b01c6c0faf09b4c2c6b25c58c060cb3806 /scripts/lib/ptxd_lib_cfgchg.sh
parent8c52c2abcd8daffb34669d97900ee088feed7405 (diff)
downloadptxdist-9fd2789785f0183ffcc4efa64af1227100644dda.tar.gz
ptxdist-9fd2789785f0183ffcc4efa64af1227100644dda.tar.xz
* bin/ptxdist, scripts/lib/ptxd_lib_cfgchg.sh:
activated reconfigure packet if config changed git-svn-id: https://svn.pengutronix.de/svn/ptxdist/trunks/ptxdist-trunk@9196 33e552b5-05e3-0310-8538-816dae2090ed
Diffstat (limited to 'scripts/lib/ptxd_lib_cfgchg.sh')
-rw-r--r--scripts/lib/ptxd_lib_cfgchg.sh29
1 files changed, 21 insertions, 8 deletions
diff --git a/scripts/lib/ptxd_lib_cfgchg.sh b/scripts/lib/ptxd_lib_cfgchg.sh
index fbfcf0423..b7f5d82cf 100644
--- a/scripts/lib/ptxd_lib_cfgchg.sh
+++ b/scripts/lib/ptxd_lib_cfgchg.sh
@@ -1,7 +1,5 @@
#!/bin/bash
-return 0
-
ptxd_cfgchg_generate()
{
gawk '
@@ -22,13 +20,17 @@ ptxd_cfgchg_generate()
opt = gensub(/[-\+](|# )PTXCONF_/, "", "g", $1);
do {
- if (opt in pkgs)
- print opt, "state/" pkgs[opt] ".prepare";
-
+ if (opt in pkgs) {
+ pkgs_chged[opt] = pkgs[opt];
+ break;
+ }
} while (sub(/_+[^_]+$/, "", opt));
}
END {
+ for (pkg in pkgs_chged) {
+ printf "'"${STATEDIR}/"'" pkgs_chged[pkg] ".prepare\0";
+ }
}
' \
@@ -39,7 +41,18 @@ ptxd_cfgchg_generate()
ptxd_cfgchg()
{
- ptxd_cfgchg_generate
+ for cfg in PTXDIST_PTXCONFIG PTXDIST_PLATFORMCONFIG; do
+ local cfg_orig="${!cfg}"
+ local cfg_default="${cfg}_DEFAULT"
+ local cfg_old="${STATEDIR}/${!cfg_default#${PTXDIST_WORKSPACE}/}.deps_old"
+
+ if [ -e "${cfg_old}" ]; then
+ diff -u "${cfg_old}" "${cfg_orig}" | \
+ ptxd_cfgchg_generate | \
+ xargs -0 -r rm
+ #check_pipe_status
+ fi
+
+ cp "${cfg_orig}" "${cfg_old}" || return
+ done
}
-
-cat | ptxd_cfgchg