]> git.tuebingen.mpg.de Git - paraslash.git/blobdiff - command_util.sh
command_util: Remove code for generating .c files.
[paraslash.git] / command_util.sh
index 875b5e6957f7509a15352cdfc6a9c7239402a448..1530aee7333ea03a1b2748d85d60ce68c2eae2dd 100755 (executable)
@@ -1,6 +1,5 @@
 #!/usr/bin/env bash
 
-
 read_header()
 {
        local key value i
@@ -10,30 +9,12 @@ read_header()
                ---)
                        break
                        ;;
-               OF:)
-                       output_file="$value"
-                       array_name=${value%command_list}cmds
+               BN:)
+                       base_name="$value"
                        ;;
                SF:)
                        source_files="$value"
                        ;;
-               AT:)
-                       array_type="$value"
-                       ;;
-               SI:)
-                       for i in $value; do
-                               system_includes="$system_includes
-#include <$i.h>"
-                       done
-                       ;;
-               IN:)
-                       for i in $value; do
-                               includes="$includes
-#include \"$i.h\""
-                       done
-                       includes="$includes
-#include \"$output_file.h\""
-                       ;;
                SN:)
                        section_name="$value"
                        ;;
@@ -41,10 +22,6 @@ read_header()
                        template_members="$value"
                esac
        done
-       if test -z "$output_file"; then
-               echo "header error" 1&>2
-               exit 1
-       fi
 }
 
 read_one_command()
@@ -248,39 +225,25 @@ template_loop()
                usage_txt=$(echo "$t_usage" | $sed_cmd)
                help_txt=$(printf "%s\n" "$t_help" | $sed_cmd)
                prototype=$(echo "$template_prototype" | $sed_cmd)
+               result=
                $1
                loop_result="$loop_result$result"
        done
        result="$loop_result"
-}
-
-com_c_file()
-{
-       echo "$system_includes"
-       echo "$includes"
-       echo "struct $array_type $array_name[] = {"
-       while : ; do
-               read_one_command
-               if test $ret -lt 0; then
-                       exit 1
-               fi
-               if test $ret -eq 0; then
-                       break
-               fi
-               if test $template -eq 0; then
-                       make_array_member
-                       printf "%s" "$result"
-                       continue
-               fi
-               template_loop make_array_member
-               printf "%s" "$result"
-       done
-       echo '{.name = NULL}};'
+       # reset global variables
+       name_txt="$t_name"
+       perms_txt="$t_perms"
+       desc_txt="$t_desc"
+       usage_txt="$t_usage"
+       help_txt="$t_help"
+       source_files="$t_source_files"
 }
 
 com_header()
 {
-       echo "extern struct $array_type $array_name[];"
+       local array_members CR='
+'
+
        while : ; do
                read_one_command
                if test $ret -lt 0; then
@@ -292,11 +255,17 @@ com_header()
                if test $template -eq 0; then
                        make_proto
                        printf "%s" "$result"
+                       make_array_member
+                       array_members="$array_members$result"
                        continue
                fi
                template_loop make_proto
                printf "%s" "$result"
+               template_loop make_array_member
+               array_members="$array_members$result"
        done
+       array_members="$array_members{.name = NULL} \\$CR"
+       echo "#define DEFINE_$(tr 'a-z' 'A-Z' <<< "$base_name")_CMD_ARRAY $array_members"
 }
 
 com_completion()
@@ -326,9 +295,6 @@ read_header
 arg="$1"
 shift
 case "$arg" in
-       "c")
-               com_c_file
-               ;;
        "h")
                com_header
                ;;