From 01e71ddc618a3cfa8de7e0e0674b210d55476f3c Mon Sep 17 00:00:00 2001 From: Cyrille L Date: Mon, 14 Feb 2022 18:54:07 +0100 Subject: [PATCH] Added Tools ; Checkers --- var/lib/gsl/scripts/gsl__post_checkers | 94 ++++++++++++++++++++------ var/lib/gsl/scripts/gsl__post_manager | 36 +++++++++- 2 files changed, 110 insertions(+), 20 deletions(-) diff --git a/var/lib/gsl/scripts/gsl__post_checkers b/var/lib/gsl/scripts/gsl__post_checkers index f883a22..a95ff00 100644 --- a/var/lib/gsl/scripts/gsl__post_checkers +++ b/var/lib/gsl/scripts/gsl__post_checkers @@ -15,15 +15,16 @@ echo -n ": Searching for needed Headers..." gsl__post_check_needed_headers echo -ne "\r\033[2K: Searching for #1..." gsl__post_check_h1 -echo -ne "\r\033[2K: Searching for Paragraph" +echo -ne "\r\033[2K: Searching for Paragraphs" gsl__post_check_paragraphs echo -ne "\r\033[2K: Searching for Content MARKERS..." gsl__post_check_markers -echo -ne "\r\033[2K: Searching for BLOCKQUOTE..." +echo -ne "\r\033[2K: Searching for BLOCKQUOTEs..." gsl__post_check_blockquote -echo -ne "\r\033[2K: Searching for ABBR..." +echo -ne "\r\033[2K: Searching for ABBRs..." gsl__post_check_abbr - +echo -ne "\r\033[2K: Searching for LINKs.." +gsl__post_check_links echo #echo -ne "\r\033[2K" @@ -318,6 +319,7 @@ fi # Check Post for ABBR HEADER + Content #======================================================================= gsl__post_check_abbr() { +gsl_post_stat_abbr=0 while read -r "gsl_header_abbr" do gsl_post_abbr_s=`gsl__get_header_field 1 "$gsl_header_abbr"` @@ -331,32 +333,86 @@ do "$gsl_log_e" \ "Post" \ "ABBR" \ - "Missing Line $gsl_post_line_nbr. $gsl_marker_abbr: Short : Long" \ + "Line:$gsl_post_line_nbr > Content: $gsl_log_act_abbr" \ "${PWD}/$gsl_post" gsl_checker_err=true continue fi - - while read -r "gsl_content_line_nbr" - do - gsl_abbr_lines+="$gsl_content_line_nbr," - done < <(gsl__get_content_line "$gsl_post_abbr_s" "$gsl_post" ) - - if ! [[ "$gsl_abbr_lines" ]];then + + if ! [[ `gsl__get_content_line "$gsl_post_abbr_s" "$gsl_post"` ]];then gsl__logs_print \ "$gsl_log_e" \ "Post" \ "ABBR" \ - "Missing content: $gsl_post_abbr_s" \ + "Missing Content: $gsl_post_abbr_s" \ "${PWD}/$gsl_post" gsl_checker_err=true else - gsl__logs_print \ - "$gsl_log_i" \ - "Post" \ - "ABBR" \ - "Found: $gsl_post_abbr_s line $gsl_abbr_lines" \ - "${PWD}/$gsl_post" + (( gsl_post_stat_abbr ++ )) fi done < <(gsl__get_header "$gsl_marker_abbr" "$gsl_post") + +gsl__logs_print \ + "$gsl_log_i" \ + "Post" \ + "ABBR" \ + "NBR=$gsl_post_stat_abbr" \ + "${PWD}/$gsl_post" +} + +#======================================================================= +# Check Post for LINKs HEADER + Content +#======================================================================= +gsl__post_check_links() { +while read -r "gsl_header_link" +do + # Get in HEADERS + gsl_post_link_ref=`gsl__get_header_field 1 "$gsl_header_link"` + gsl_post_link_url=`gsl__get_header_field 2 "$gsl_header_link"` + gsl_post_link_alt=`gsl__get_header_field 3 "$gsl_header_link"` + gsl_post_line_nbr=`gsl__get_line "$gsl_marker_link$gsl_post_link_ref" "$gsl_post"` + + if ! [[ "$gsl_post_link_ref" ]] || \ + ! [[ "$gsl_post_link_url" ]];then + + gsl__logs_print \ + "$gsl_log_e" \ + "Post" \ + "Link" \ + "Line:$gsl_post_line_nbr > Content: $gsl_log_act_link" \ + "${PWD}/$gsl_post" + gsl_checker_err=true + continue + fi + + # Not ALT TEXT ? + if ! [[ "$gsl_post_link_alt" ]];then + gsl__logs_print \ + "$gsl_log_w" \ + "Post" \ + "Link" \ + "Line:$gsl_post_line_nbr > No ALT TEXT ?" \ + "${PWD}/$gsl_post" + gsl_checker_war=true + fi + + # Find if ref is in CONTENT + gsl_content_link=` + gsl__get_content_finder \ + -o "$gsl_mo_link" \ + -b "$gsl_post_link_ref" \ + -c "$gsl_mc_link" \ + -f "$gsl_post" \ + | tail -1` + + if ! [[ $gsl_content_link ]];then + gsl__logs_print \ + "$gsl_log_e" \ + "Post" \ + "Link" \ + "Missing Content: [_${gsl_post_link_ref}_]" \ + "${PWD}/$gsl_post" + gsl_checker_err=true + fi +done < <(gsl__get_header "$gsl_marker_link" "$gsl_post") } diff --git a/var/lib/gsl/scripts/gsl__post_manager b/var/lib/gsl/scripts/gsl__post_manager index 7d6e19b..e6dd4ae 100644 --- a/var/lib/gsl/scripts/gsl__post_manager +++ b/var/lib/gsl/scripts/gsl__post_manager @@ -97,6 +97,11 @@ if [[ "$gsl_db_post_hash" == "$gsl_post_hash" ]];then fi } +#----------------------------------------------------------------------- +# +# TOOLS +# +#----------------------------------------------------------------------- #======================================================================= # Get line nbr from Post... $1: TERM | $2: File #======================================================================= @@ -125,10 +130,39 @@ awk -F" : " -v f="$1" \ } #======================================================================= -# Get fields from variable... $1: field | $2: variable +# Get line nbr from CONTENT Post... $1: TERM | $2: File #======================================================================= gsl__get_content_line() { awk -v line="$gsl_post_begin" -v s="$1" \ 'NR >= line && $0 ~ s {print NR}' \ "$2" } + +#======================================================================= +# Get CONTENT with marks | ! find from ONE line content +#======================================================================= +gsl__get_content_finder() { +# Get [OPTs] +while (( "$#" )) + do + case "$1" in + -o) mk_o="$2" ;; # Open marker + -c) mk_c="$2" ;; # Close Marker + -b) mk_b="$2" ;; # Between markers + -f) file="$2" ;; # In whole file + -v) ivar="$2" ;; # In variable + -n) line="n" ;; # Give found line number + esac + shift +done + +! [[ "$file" ]] && ! [[ "$ivar" ]] && return 1 +! [[ "$mk_o" ]] && ! [[ "$mk_c" ]] && return 1 +! [[ "$mk_b" ]] && mk_b='.*' + +if [[ "$file" ]];then + grep -oP$line "(?<=$mk_o)$mk_b?(?=$mk_c)" "$file" +elif [[ "$ivar" ]];then + grep -oP$line "(?<=$mk_o)$mk_b?(?=$mk_c)" <<< "$ivar" +fi +}