diff --git a/bin/sde-config-ini b/bin/sde-config-ini index 8134724..d0e80f7 100755 --- a/bin/sde-config-ini +++ b/bin/sde-config-ini @@ -53,15 +53,10 @@ ini_section_raw() { # USAGE: ini_section_read "file" "section" # ini_section_read() { - ini_section_raw "$1" "$2" | sed -e '/^[ \t]*#/d;' -e '/^[ \t]*$/d;' -e 's,",\\",g' -e 's,=\(..*\)$,="\1",' + ini_section_raw "$1" "$2" | + sed -e '/^[ \t]*;/d;' -e '/^[ \t]*$/d;' -e 's,",\\",g' -e 's,=\(..*\)$,="\1",' } -# list the available sections on a file -# USAGE: ini_section_list "file" -# -ini_section_list() { - sed -n -e 's,^\[\(.*\)\][ \t]*$,\1,p' "$1" -} # this file has to be sourced only by tools which really want to # write ini formated files. reading methods are available at libsde.in @@ -136,7 +131,6 @@ ini_write() { ini_do_set() { echo_abort 1 "Not yet implemented"; } ini_do_get() { echo_abort 1 "Not yet implemented"; } ini_do_delete() { echo_abort 1 "Not yet implemented"; } -ini_do_sections() { echo_abort 1 "Not yet implemented"; } ini_do_keys() { echo_abort 1 "Not yet implemented"; } shortopts='F:s:g:d:SK:' @@ -150,29 +144,29 @@ fi # load new arguments list eval set -- "$options" -if [ $# -le 1 ]; then - ini_usage -fi +[ $# -ge 2 ] || ini_usage file= while [ $# -gt 0 ]; do case "$1" in - -F|--file) shift; file="$1" - if [ ! -r "$file" ]; then - echo_abort 1 "$file: can't read." - fi ;; - -s|--set) shift; ini_do_set "$1" - ;; - -g|--get) shift; ini_do_get "$1" - ;; - -d|--delete) shift; ini_do_delete "$1" - ;; - -S|--sections) ini_do_sections - ;; - -K|--keys) shift; ini_do_keys "$1" - ;; - - --) break; ;; + -F|--file) shift; file="$1" ;; + --) break ;; + + *) [ -r "$file" ] || echo_abort 1 "${file:-none}: can't read." + + case "$1" in + -s|--set) shift; ini_do_set "$1" + ;; + -g|--get) shift; ini_do_get "$1" + ;; + -d|--delete) shift; ini_do_delete "$1" + ;; + -S|--sections) + sed -n -e 's,^\[\(.*\)\][ \t]*$,\1,p' "$file" + ;; + -K|--keys) shift; ini_do_keys "$1" + ;; + esac esac shift done