diff options
Diffstat (limited to 'content/blog/miscellaneous/etc-update-alpine.md')
-rw-r--r-- | content/blog/miscellaneous/etc-update-alpine.md | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/content/blog/miscellaneous/etc-update-alpine.md b/content/blog/miscellaneous/etc-update-alpine.md new file mode 100644 index 0000000..dbc0824 --- /dev/null +++ b/content/blog/miscellaneous/etc-update-alpine.md @@ -0,0 +1,38 @@ +--- +title: "etc-update script for alpine linux" +linkTitle: "etc-update script for alpine linux" +date: 2019-04-02 +description: > + etc-update script for alpine linux +--- + +Alpine linux doesn't seem to have a tool to merge pending configuration changes, so I wrote one : +{{< highlight sh >}} +#!/bin/sh +set -eu + +for new_file in $(find /etc -iname '*.apk-new'); do + current_file=${new_file%.apk-new} + echo "===== New config file version for $current_file =====" + diff ${current_file} ${new_file} || true + while true; do + echo "===== (r)eplace file with update? (d)iscard update? (m)erge files? (i)gnore =====" + PS2="k/d/m/i? " + read choice + case ${choice} in + r) + mv ${new_file} ${current_file} + break;; + d) + rm -f ${new_file} + break;; + m) + vimdiff ${new_file} ${current_file} + break;; + i) + break;; + esac + done +done +{{< /highlight >}} + |