| tAllow purely arguments control of the search output. - recipes - various cooki… | |
| git clone git://src.adamsgaard.dk/recipes | |
| Log | |
| Files | |
| Refs | |
| Submodules | |
| --- | |
| commit 1d6448b2fe5caab14f9afcf88d97635be94b447e | |
| parent e0edbfac7024dc6f6ca06752839ef819120db3d3 | |
| Author: Christoph Lohmann <[email protected]> | |
| 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(-) | |
| --- | |
| 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 ingredie… | |
| 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" … | |
| - elif test -f "$l"; then | |
| + elif [ -f "$l" ]; | |
| + then | |
| printf '[1|%s|/%s%s|server|port]\n' "$l" "$recipedir" … | |
| 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" "$sea… | |
| + 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.ada… | |
| printf '[1|Source code view|/src/recipes|server|port]\n' | |
| printf '\n[1|<< back|/|server|port]\n' | |
| + |