]> git.tuebingen.mpg.de Git - gsu.git/blobdiff - gui
gui: Make $first a local variable of _get_subtree().
[gsu.git] / gui
diff --git a/gui b/gui
index eb9f29f37c9e1d7aef03c96f08b4838285931f1a..336d1547ad6366af9dd3cb481cd0a29b87d08167 100644 (file)
--- a/gui
+++ b/gui
@@ -1,11 +1,12 @@
 #!/bin/bash
 
 #!/bin/bash
 
-if [[ $(type -t gsu_is_a_number) != "function" ]]; then
-       GSU_DIR=${GSU_DIR:=${HOME:-}/.gsu}
-       . $GSU_DIR/common || exit 1
+if [[ "$(type -t _gsu_setup)" != "function" ]]; then
+       gsu_dir=${gsu_dir:-${BASH_SOURCE[0]%/*}}
+       . $gsu_dir/common || exit 1
+       _gsu_setup
 fi
 
 fi
 
-export GSU_NODE_NAME_PATTERN='[a-zA-Z_]'
+_gsu_node_name_pattern='[a-zA-Z_]'
 
 _get_geometry()
 {
 
 _get_geometry()
 {
@@ -21,50 +22,6 @@ _get_geometry()
        result="$y $x"
 }
 
        result="$y $x"
 }
 
-gsu_infobox()
-{
-       _get_geometry
-       dialog --infobox "$1" $result
-}
-
-gsu_checklist_all_on()
-{
-       local header="$1"
-       local items="$2"
-       local i state opts num=0
-
-       _get_geometry
-       ops="$result 16"
-       for i in $items; do
-               let num++
-               opts+=" $i $num on"
-       done
-       result=$(dialog --checklist "$header" $opts 3>&1 1>&2 2>&3 3>&-)
-       ret="$?"
-}
-
-gsu_radiolist()
-{
-       local header="$1"
-       local selected_item="$2"
-       local items="$3"
-       local i state ops num=0
-
-       _get_geometry
-       ops="$result 16"
-       for i in $items; do
-               let num++
-               if [[ "$i" == "$selected_item" ]]; then
-                       state="on"
-               else
-                       state="off"
-               fi
-               ops+=" $i $num $state"
-       done
-       result=$(dialog --radiolist "$header" $ops 3>&1 1>&2 2>&3 3>&-)
-       ret="$?"
-}
-
 gsu_inputbox()
 {
        local g text="$1" init="$2"
 gsu_inputbox()
 {
        local g text="$1" init="$2"
@@ -97,37 +54,7 @@ gsu_msgbox()
        rm -f "$tmp"
 }
 
        rm -f "$tmp"
 }
 
-gsu_cmd_output_box()
-{
-       local tmp="$(mktemp)"
-
-       if (($? != 0)); then
-               dialog --msgbox "mktemp error" 0 0
-               return
-       fi
-       $@ > "$tmp" 2>&1
-       echo "exit code: $?" >> "$tmp"
-       gsu_textbox "$tmp"
-       rm -f "$tmp"
-}
-
-gsu_yesno()
-{
-       local text="$1"
-
-       _get_geometry
-       dialog --yesno "$text" $result
-       ret=$?
-       if (($ret == 0)); then
-               result="yes"
-       elif (($ret == 1)); then
-               result="no"
-       else
-               result=
-       fi
-}
-
-gsu_menu()
+_gsu_menu()
 {
        local header="${1:-root}"
        local items="$2"
 {
        local header="${1:-root}"
        local items="$2"
@@ -145,14 +72,14 @@ gsu_menu()
 
 _get_level()
 {
 
 _get_level()
 {
-       local tmp="${1%%$GSU_NODE_NAME_PATTERN*}"
+       local tmp="${1%%$_gsu_node_name_pattern*}"
        result="${#tmp}"
 }
 
 _get_subtree()
 {
        local tree="$1" root="${2%/}"
        result="${#tmp}"
 }
 
 _get_subtree()
 {
        local tree="$1" root="${2%/}"
-       local TAB='     '
+       local first TAB='       '
 
        first="$(grep -n "$TAB\{1,\}$root/" <<< "$tree")"
        [[ -z "$first" ]] && return
 
        first="$(grep -n "$TAB\{1,\}$root/" <<< "$tree")"
        [[ -z "$first" ]] && return
@@ -163,7 +90,7 @@ _get_subtree()
 
        #echo "line: $line_num, root: $root, indent level: $level"
        result="$(sed -e "1,${line_num}d;" <<< "$tree" \
 
        #echo "line: $line_num, root: $root, indent level: $level"
        result="$(sed -e "1,${line_num}d;" <<< "$tree" \
-               | sed -e "/^$TAB\{1,$level\}$GSU_NODE_NAME_PATTERN/,\$d" \
+               | sed -e "/^$TAB\{1,$level\}$_gsu_node_name_pattern/,\$d" \
                | sed -e "/^$TAB\{$(($level + 2))\}/d")"
        ret="$level"
 }
                | sed -e "/^$TAB\{$(($level + 2))\}/d")"
        ret="$level"
 }
@@ -172,7 +99,7 @@ _get_root_nodes()
 {
        local tree="$1" TAB='   '
 
 {
        local tree="$1" TAB='   '
 
-       result="$(grep "^${TAB}${GSU_NODE_NAME_PATTERN}" <<< "$tree")"
+       result="$(grep "^${TAB}${_gsu_node_name_pattern}" <<< "$tree")"
 }
 
 _browse()
 }
 
 _browse()
@@ -181,7 +108,7 @@ _browse()
        local tree="$2" subtree="$3"
 
        while :; do
        local tree="$2" subtree="$3"
 
        while :; do
-               gsu_menu "$header" "$subtree"
+               _gsu_menu "$header" "$subtree"
                (($ret != 0)) && return
                [[ -z "$result" ]] && return
                if [[ "${result%/}" != "$result" ]]; then
                (($ret != 0)) && return
                [[ -z "$result" ]] && return
                if [[ "${result%/}" != "$result" ]]; then
@@ -200,7 +127,6 @@ gsu_gui()
 {
        local tree="$1" subtree
 
 {
        local tree="$1" subtree
 
-       _gsu_setup
        type -t dialog &> /dev/null
        if (($? != 0)); then
                gsu_msg "dialog executable not found"
        type -t dialog &> /dev/null
        if (($? != 0)); then
                gsu_msg "dialog executable not found"