From 67c226241c7cf6cf60657816744eb0ba9e6523c7 Mon Sep 17 00:00:00 2001 From: simonzhangsz Date: Wed, 16 Oct 2024 16:23:43 +0800 Subject: [PATCH] add: update config file while upgrade --- misc/upgconf.sh | 62 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 62 insertions(+) create mode 100644 misc/upgconf.sh diff --git a/misc/upgconf.sh b/misc/upgconf.sh new file mode 100644 index 00000000..4383c72a --- /dev/null +++ b/misc/upgconf.sh @@ -0,0 +1,62 @@ +#!/bin/bash + +config_file="/usr/local/omc/etc/restconf.yaml" +temp_file="/tmp/temp.yaml" + +declare -A insert_lines=( + [156]=" dataCoding: 0" + [157]=" serviceNumber: \"OMC\"" +) + +declare -A update_lines=( + ["deadLine: 10"]="deadLine: 600" +) + +# check if exist file +if [[ ! -f $config_file ]]; then + echo "NOT FOUND config file: $config_file" + exit 1 +fi + +insert_if_missing() { + local line_number="$1" + local line_content="$2" + local current_content=$(sed -n "${line_number}p" "$config_file") + + if [[ "$current_content" != "$line_content" ]]; then + # insert line to config file + echo -n "Inserting '$line_content' into line ${line_number} ... " + awk -v n="$line_number" -v line="$line_content" 'NR==n {print line} {print}' "$config_file" >"$temp_file" && mv "$temp_file" "$config_file" + if [ $? = 0 ]; then + echo "done" + fi + else + echo "Exist '$line_content' at line ${line_number}" + fi +} + +# function:update line content +update_lines_content() { + local old_line="$1" + local new_line="$2" + echo -n "Updating '$old_line' to line '$new_line' ..." + sed -i "s/$old_line/$new_line/" "$config_file" + if [ $? = 0 ]; then + echo "done" + fi +} + +#line_numbers=(156 157) +line_numbers=$(for key in "${!insert_lines[@]}"; do echo "$key"; done | sort -n) + +# insert process +#for line_number in "${line_numbers[@]}"; do +#for line_number in "${!insert_lines[@]}"; do +for line_number in $line_numbers; do + insert_if_missing "$line_number" "${insert_lines[$line_number]}" +done + +# update process +for old_line in "${!update_lines[@]}"; do + update_lines_content "$old_line" "${update_lines[$old_line]}" +done