GitHubのミラーです
https://github.com/hayao0819/crshini
Révision | 2f2e61bee2fc611e14376798d2e53b0da3de23d0 (tree) |
---|---|
l'heure | 2021-06-07 22:08:19 |
Auteur | hayao <hayao@fasc...> |
Commiter | hayao |
[update] : Simple row settings
@@ -131,7 +131,7 @@ _crshini_get(){ | ||
131 | 131 | # _crshini_set file section [param] [value] |
132 | 132 | _crshini_set(){ |
133 | 133 | # Set variables |
134 | - local _crshini_set_fileline=() _crshini_set_section _crshini_set_param _crshini_set_value __line _crshini_set_insert_line _crshini_set_writed=false _crshini_set_mode | |
134 | + local _crshini_set_fileline=() _crshini_set_section _crshini_set_param _crshini_set_value __line _crshini_set_insert_line _crshini_set_writed=false _crshini_set_modline | |
135 | 135 | if [[ "${_crshini_stdin}" = true ]]; then |
136 | 136 | cat - > "${_crshini_temp}" |
137 | 137 | _crshini_set_file="${_crshini_temp}" |
@@ -142,12 +142,11 @@ _crshini_set(){ | ||
142 | 142 | fi |
143 | 143 | |
144 | 144 | readarray -t _crshini_set_fileline < "${_crshini_set_file}" |
145 | - _crshini_set_section="${1}" _crshini_set_param="${2-""}" _crshini_set_value="${3-""}" | |
145 | + _crshini_set_section="${1}" _crshini_set_param="${2-""}" _crshini_set_value="${3-""}" | |
146 | 146 | _crshini_msg_dbg "セクション: \"${_crshini_set_section}\"" |
147 | 147 | _crshini_msg_dbg "パラメータ: \"${_crshini_set_param}\"" |
148 | 148 | |
149 | 149 | # Copy |
150 | - local _crshini_set_modline | |
151 | 150 | readarray -t _crshini_set_sectionlist < <(printf "%s\n" "${_crshini_set_fileline[@]}" | _crshini_output="-" _crshini_stdin=true _crshini_get) |
152 | 151 | readarray -t _crshini_set_paramlist < <(printf "%s\n" "${_crshini_set_fileline[@]}" | _crshini_output="-" _crshini_stdin=true _crshini_get "${_crshini_set_section}") |
153 | 152 | _crshini_msg_dbg "見つかったセクション: $(printf "[%s] " "${_crshini_set_sectionlist[@]}")" |
@@ -165,27 +164,15 @@ _crshini_set(){ | ||
165 | 164 | # Find and Set param |
166 | 165 | if printf "%s\n" "${_crshini_set_paramlist[@]}" | grep -x "${_crshini_set_param}" 1> /dev/null 2>&1; then |
167 | 166 | _crshini_msg_dbg "値の書き換えを行います" |
168 | - _crshini_set_insert_line=$(( "$(_crshini_output="-" _crshini_get_linemode=true _crshini_get "${_crshini_set_file}" "${_crshini_set_section}" "${_crshini_set_param}")" )) | |
169 | - _crshini_set_mode="rewrite" | |
167 | + _crshini_set_insert_line=$(( "$(_crshini_output="-" _crshini_get_linemode=true _crshini_get "${_crshini_set_file}" "${_crshini_set_section}" "${_crshini_set_param}")" - 1 )) | |
170 | 168 | elif (( "${#_crshini_set_paramlist[@]}" == 0 )) || [[ -z "${_crshini_set_paramlist[*]}" ]]; then |
171 | 169 | _crshini_msg_dbg "空のセクションに値を追加します" |
172 | - _crshini_set_insert_line="$(_crshini_output="-" _crshini_index_from_str "[${_crshini_set_section}]" "${_crshini_set_fileline[@]}")" | |
173 | - _crshini_set_mode="new" | |
170 | + _crshini_set_insert_line="$(( $(_crshini_output="-" _crshini_index_from_str "[${_crshini_set_section}]" "${_crshini_set_fileline[@]}") + 1))" | |
174 | 171 | else |
175 | 172 | _crshini_msg_dbg "セクションの最後に追記します" |
176 | - _crshini_set_insert_line=$(( "$( _crshini_stdin=true _crshini_output="-" _crshini_get_linemode=true _crshini_get "${_crshini_set_section}" "${_crshini_set_paramlist[-1]}" < "${_crshini_set_file}" )" - 1 )) | |
177 | - _crshini_set_mode="new" | |
173 | + _crshini_set_insert_line="$( _crshini_stdin=true _crshini_output="-" _crshini_get_linemode=true _crshini_get "${_crshini_set_section}" "${_crshini_set_paramlist[-1]}" < "${_crshini_set_file}" )" | |
178 | 174 | fi |
179 | 175 | |
180 | - _crshini_msg_dbg "${_crshini_set_insert_line}行目を基準にします" | |
181 | - _crshini_msg_dbg "モードは${_crshini_set_mode}です" | |
182 | - | |
183 | - if [[ "${_crshini_set_mode}" = "new" ]]; then | |
184 | - _crshini_set_insert_line=$(( _crshini_set_insert_line + 1 )) | |
185 | - elif [[ "${_crshini_set_mode}" = "rewrite" ]]; then | |
186 | - _crshini_set_insert_line=$(( _crshini_set_insert_line - 1 )) | |
187 | - fi | |
188 | - | |
189 | 176 | _crshini_msg_dbg "${_crshini_set_insert_line}行目に設定されました" |
190 | 177 | |
191 | 178 | for __line in $( seq 0 $(( "${#_crshini_set_fileline[@]}")) ); do |
@@ -200,9 +187,10 @@ _crshini_set(){ | ||
200 | 187 | fi |
201 | 188 | else |
202 | 189 | _crshini_msg_dbg "${__line}行目を書き換えました" |
203 | - _crshini_set_modline+=("${_crshini_set_param}=${_crshini_set_value}") | |
204 | - [[ "${_crshini_set_mode}" = "new" ]] && _crshini_set_modline+=("") | |
205 | - _crshini_set_writed=true | |
190 | + _crshini_set_modline+=("${_crshini_set_param}=${_crshini_set_value}") _crshini_set_writed=true | |
191 | + if [[ -z "${_crshini_set_fileline[$(( __line + 1 ))]+SET}" ]] || [[ "${_crshini_set_fileline[$(( __line + 1 ))]}" = "["*"]" ]]; then | |
192 | + _crshini_set_modline+=("") | |
193 | + fi | |
206 | 194 | fi |
207 | 195 | done |
208 | 196 |