tAllow purely arguments control of the search output. - recipes - various cooking recipes
 (HTM) git clone git://src.adamsgaard.dk/recipes
 (DIR) Log
 (DIR) Files
 (DIR) Refs
 (DIR) Submodules
       ---
 (DIR) commit 1d6448b2fe5caab14f9afcf88d97635be94b447e
 (DIR) parent e0edbfac7024dc6f6ca06752839ef819120db3d3
 (HTM) Author: Christoph Lohmann <20h@r-36.net>
       Date:   Fri, 27 Aug 2021 14:49:13 +0200
       
       Allow purely arguments control of the search output.
       
       * Format the source to a congruent if style.
       * allow '+' as space replacement for complex scripted search
       
               index.dcgi?vegetarian+milk+cabbage
               index.dcgi?milk+cabbage
       
       Diffstat:
         M index.dcgi                          |      42 ++++++++++++++++++++++---------
       
       1 file changed, 30 insertions(+), 12 deletions(-)
       ---
 (DIR) diff --git a/index.dcgi b/index.dcgi
       t@@ -8,14 +8,15 @@ port="$4"
        recipedir="recipes/"
        
        printf '\n# EMPTY-THE-FRIDGE COOKING RECIPE SEARCH\n\n'
       -printf 'Search for one or more items which must appear in the recipe
       -ingredient list (space separated, case insensitive).\n'
       +printf 'Search for one or more items which must appear in the\nrecipe ingredient list (space separated, case insensitive).\n'
        
        gphfmt() {
                while read -r l; do
       -                if test -f "$l"; then
       +                if [ -f "$l" ];
       +                then
                                printf '[0|%s|/%s%s|server|port]\n' "$l" "$recipedir" "$l"
       -                elif test -f "$l"; then
       +                elif [ -f "$l" ];
       +                then
                                printf '[1|%s|/%s%s|server|port]\n' "$l" "$recipedir" "$l"
                        else
                                printf '%s\n' "$l"
       t@@ -23,19 +24,35 @@ gphfmt() {
                done
        }
        
       -if test -n "${search}"; then
       -        if test "${arguments}" = "vegetarian"; then
       -                results="$(./cookwhatveg $search | gphfmt)"
       +searchvegetarian=0
       +case "${arguments}" in
       +vegetarian*)
       +        arguments="$(printf "%s\n" "${arguments}" | cut -c 11-)"
       +        searchvegetarian=1
       +        ;;
       +esac
       +[ -n "${search}" ] && arguments="${arguments}+${search}"
       +
       +if [ -n "${arguments}" ];
       +then
       +        normalarguments="$(printf "${arguments}\n" | tr '+' ' ')"
       +        if [ $searchvegetarian -eq 1 ];
       +        then
       +                results="$(./cookwhatveg "$normalarguments" | gphfmt)"
                else
       -                results="$(./cookwhat $search | gphfmt)"
       +                results="$(./cookwhat "$normalarguments" | gphfmt)"
                fi
        
                n="$(printf '%s' "$results" | wc -l)"
       -        if test "$n" -gt 0; then
       -                if test "$n" -gt 1; then
       -                        printf '\n## Results (%d recipes): "%s" \n' "$n" "$search"
       +        if [ $n -gt 0 ];
       +        then
       +                if [ $n -gt 1 ];
       +                then
       +                        printf '\n## Results (%d recipes): "%s" \n' \
       +                                "$n" "$normalarguments"
                        else
       -                        printf '\n## Just one result: "%s" \n' "$search"
       +                        printf '\n## Just one result: "%s" \n' \
       +                                "$normalarguments"
                        fi
                        printf '\n%s\n' "$results"
                else
       t@@ -53,3 +70,4 @@ printf '[h|git://src.adamsgaard.dk/recipes|URL:git://src.adamsgaard.dk/recipes|s
        printf '[1|Source code view|/src/recipes|server|port]\n'
        
        printf '\n[1|<< back|/|server|port]\n'
       +