diff --git a/inc/ini-config b/inc/ini-config index d2830d79cd..e99b088994 100644 --- a/inc/ini-config +++ b/inc/ini-config @@ -261,6 +261,18 @@ function iniuncomment { $xtrace } +# Get list of sections from an INI file +# iniget_sections config-file +function iniget_sections { + local xtrace + xtrace=$(set +o | grep xtrace) + set +o xtrace + local file=$1 + + echo $(sed -ne "s/^\[\(.*\)\]/\1/p" "$file") + $xtrace +} + # Restore xtrace $INC_CONF_TRACE diff --git a/tests/test_ini_config.sh b/tests/test_ini_config.sh index d9cb8d8a99..a5e110736e 100755 --- a/tests/test_ini_config.sh +++ b/tests/test_ini_config.sh @@ -80,6 +80,11 @@ if [ -n "$TEST_SUDO" ]; then sudo chown -R root:root ${INI_TMP_ETC_DIR} fi +# test iniget_sections +VAL=$(iniget_sections "${TEST_INI}") +assert_equal "$VAL" "default aaa bbb ccc ddd eee del_separate_options \ +del_same_option del_missing_option del_missing_option_multi del_no_options" + # Test with missing arguments BEFORE=$(cat ${TEST_INI})