From 1786ceb222be94acbc0212aab041b31f6fadce9e Mon Sep 17 00:00:00 2001 From: Cyrille L Date: Sat, 5 Mar 2022 18:06:48 +0100 Subject: [PATCH] Updated DB System from post status --- var/lib/gsl/scripts/gsl__db_manager | 71 +++++++++++++++++++++------ var/lib/gsl/scripts/gsl__page_creator | 68 ++++++++++++++++--------- var/lib/gsl/scripts/gsl__post_makers | 14 ++---- var/lib/gsl/scripts/gsl__post_manager | 12 +++-- 4 files changed, 113 insertions(+), 52 deletions(-) diff --git a/var/lib/gsl/scripts/gsl__db_manager b/var/lib/gsl/scripts/gsl__db_manager index f303a33..83bbf1c 100644 --- a/var/lib/gsl/scripts/gsl__db_manager +++ b/var/lib/gsl/scripts/gsl__db_manager @@ -9,13 +9,15 @@ # Get Post Hash & Status From Database #====================================================================== gsl__db_get_post_datas() { -gsl_db_post_hash=0 if [[ -f "$gsl_file_db_post" ]];then gsl_db_post_hash=` awk -F: 'NR == 1 {print $3}' \ "$gsl_file_db_post"` + ! [[ "$gsl_db_post_hash" ]] \ + && gsl_db_post_hash=0 + gsl_db_post_status=` awk -F: 'NR == 2 {print $2}' \ "$gsl_file_db_post"` @@ -27,37 +29,68 @@ fi # Get Post Hash and Compare from Database #====================================================================== gsl__db_compare_post_hash() { -! (( $gsl_post_hash == $gsl_db_post_hash )) \ - && gsl__logs_print \ +gsl_checker_war=true +if ! (( $gsl_post_hash == $gsl_db_post_hash ));then + gsl__logs_print \ "$gsl_log_w" \ "Post" \ "Hash" \ "$gsl_post Changed ($gsl_post_hash)" \ - "${PWD}/$gsl_post" \ - && gsl_checker_war=true \ - && return + "${PWD}/$gsl_post" + gsl_post_new_hash=true +else + gsl__logs_print \ + "$gsl_log_w" \ + "Post" \ + "Hash" \ + "$gsl_post already checked" \ + "${PWD}/$gsl_post" +fi } #====================================================================== # Set Post Status in Database according to proceess #====================================================================== gsl__db_set_post_status() { +echo "D> DB:$gsl_file_db_post $gsl_process > $gsl_db_post_status" case "$gsl_process" in - Checked) + chk) case "$gsl_db_post_status" in - Checked) - gsl__db_compare_post_hash || return # Do Nothing if same Hash + chk) + gsl__db_compare_post_hash + [[ "$gsl_post_new_hash" ]] || return # Do Nothing if same Hash gsl__db_create_post ;; - Made) - return - ;; - Online) - return - ;; - *) + wip) + gsl__db_compare_post_hash + [[ "$gsl_post_new_hash" ]] || return # Do Nothing if same Hash + gsl_process="wip" gsl__db_create_post ;; + www) + gsl__db_compare_post_hash + [[ "$gsl_post_new_hash" ]] || return # Do Nothing if same Hash + gsl_process="www" + gsl__db_create_post + ;; + ""|=) + echo "D> Create..." + gsl__db_create_post + ;; + esac + ;; + wip) + case "$gsl_db_post_status" in + chk) + sed -i "2s/.*/Status:$gsl_process/" "$gsl_file_db_post" && \ + gsl__logs_print \ + "$gsl_log_w" \ + "DB" \ + "Post" \ + "Status:$gsl_process ; $gsl_post" \ + "$gsl_file_db_post" + gsl_checker_war=true + ;; esac ;; esac @@ -67,6 +100,7 @@ esac # Create DB File from Data Post #====================================================================== gsl__db_create_post() { +echo "D> DB: $gsl_process > $gsl_db_post_status > $gsl_checker_err" if [[ "$gsl_checker_err" ]];then [[ -f "$gsl_file_db_post" ]] \ && rm -f "$gsl_file_db_post" \ @@ -81,6 +115,11 @@ fi touch "$gsl_file_db_post" +# Check webserver files +gsl__page_prepare_datas +[[ -f $gsl_srv_wip_page ]] \ + && gsl_process=wip + # Main Print printf '%s\n%s\n%s\n' \ "Post:${PWD}/$gsl_post:$gsl_post_hash:$gsl_post_size" \ diff --git a/var/lib/gsl/scripts/gsl__page_creator b/var/lib/gsl/scripts/gsl__page_creator index b575710..c9d2799 100644 --- a/var/lib/gsl/scripts/gsl__page_creator +++ b/var/lib/gsl/scripts/gsl__page_creator @@ -21,21 +21,37 @@ gsl__page_create cat -n "$gsl_srv_wip_page" } +#====================================================================== +# Sync Files from Templates to webserver +#====================================================================== +gsl__srv_sync() { +# Sync Files and Folders +for folder in `find $gsl_this_conf_domain/* -type d` +do + rsync -a "$folder" "$gsl_srv_wip" && \ + gsl__logs_print \ + "$gsl_log_w" \ + "Server" \ + "Sync" \ + "$folder" \ + "$gsl_srv_wip" +done +} + #---------------------------------------------------------------------- # Get Datas for Post/Page #---------------------------------------------------------------------- gsl__page_prepare_datas() { echo "D> $gsl_this_conf_domain" +# Source config website (DATAS) +source "$gsl_this_conf_domain/$gsl_find_domain.conf" + +# Get Needed Headers DATAS +gsl__get_needed_headers + # Check for Files & Folders in server gsl_srv_wip="$gsl_site_server/$gsl_site_ndd/wip" -mkdir -p "$gsl_srv_wip" - -# Sync Files and Folders -for folder in `find $gsl_this_conf_domain/* -type d` -do - rsync -a "$folder" "$gsl_srv_wip" -done # Post or Page case "$gsl_post_type" in @@ -59,7 +75,7 @@ gsl_uri_site_logo="$gsl_uri/templates/$gsl_site_logo" #---------------------------------------------------------------------- gsl__check_srv_files() { if [[ -f "$1" ]];then - echo "! Replaced Page: $1" + echo "! Replace Page: $1" fi } @@ -68,23 +84,31 @@ fi #====================================================================== gsl__page_create_listing() { # Check if Post is in list ; Status Made -[[ "$gsl_db_post_status" == "Made" ]] \ - && gsl__logs_print \ - "$gsl_log_i" \ - "Post" \ - "Make" \ - "$gsl_post already added to Latest listings" \ - "$gsl_file_db_posts" \ - && return - +case "$gsl_db_post_status" in + wip|www) + gsl__logs_print \ + "$gsl_log_i" \ + "Post" \ + "Make" \ + "$gsl_post already added to Latest listings" \ + "$gsl_file_db_posts" + return + ;; +esac touch "$gsl_dir_domain_tpl/last-posts-list.html" -gsl_max_posts_list=5 -gsl_cur_posts_list=`cat "$gsl_dir_domain_tpl/last-posts-list.html" | wc -l` -if (( $((gsl_cur_posts_list )) >= 25 ));then - echo "D> $gsl_cur_posts_list * $gsl_max_posts_list" - for i in `seq 1 5`; +gsl_list_max_posts=5 +gsl_list_lines_per_post=5 +gsl_list_max_lines=$(( gsl_list_max_posts * gsl_list_lines_per_post)) +gsl_list_cur_lines=` +cat "$gsl_dir_domain_tpl/last-posts-list.html" \ + | wc -l` + + +if (( $((gsl_list_cur_lines )) >= $gsl_list_max_lines ));then + echo "D> $gsl_list_cur_lines > $gsl_list_max_lines" + for i in `seq 1 $gsl_list_lines_per_post` do sed -i "1d" "$gsl_dir_domain_tpl/last-posts-list.html" done diff --git a/var/lib/gsl/scripts/gsl__post_makers b/var/lib/gsl/scripts/gsl__post_makers index beeea0d..3a9bcfa 100644 --- a/var/lib/gsl/scripts/gsl__post_makers +++ b/var/lib/gsl/scripts/gsl__post_makers @@ -15,8 +15,13 @@ #======================================================================= gsl__all_makers() { unset gsl_check_done +# Code readability a11y +gsl_a11y_post=`mktemp` + gsl__prepare_makers gsl__page_prepare_datas +mkdir -p "$gsl_srv_wip" +gsl__srv_sync # Create Listng Page gsl__page_create_listing @@ -76,18 +81,9 @@ grep -n "#1" $gsl_post \ | head -1 \ | awk -F: '{print $1}'` -# Source config website (DATAS) -source "$gsl_this_conf_domain/$gsl_find_domain.conf" - -# Get Needed Headers DATAS -gsl__get_needed_headers - # Get extra Headers DATAS #gsl_header_images=`gsl__get_header "$gsl_marker_image" "$gsl_post"` gsl__post_content_only - -# Code readability a11y -gsl_a11y_post=`mktemp` } #======================================================================= diff --git a/var/lib/gsl/scripts/gsl__post_manager b/var/lib/gsl/scripts/gsl__post_manager index 597970c..ea61c60 100644 --- a/var/lib/gsl/scripts/gsl__post_manager +++ b/var/lib/gsl/scripts/gsl__post_manager @@ -45,8 +45,10 @@ do # From COMMAND [OPT] case "$1" in check) + gsl_process="chk" if ! [[ "$gsl_force_check" ]];then - gsl__db_compare_post_hash || continue + gsl__db_compare_post_hash + ! [[ "$gsl_post_new_hash" ]] && continue fi gsl__logs_print \ @@ -55,20 +57,19 @@ do "Post" \ "$gsl_post" \ "${PWD}" - gsl_process="Checked" gsl__all_checkers ;; make) - gsl_process="Made" + gsl_process="wip" gsl__db_compare_post_hash && continue case "$gsl_db_post_status" in - Checked) + chk) gsl__all_makers ;; - Made) + wip) if [[ "$gsl_force_make" ]];then gsl__all_makers else @@ -78,6 +79,7 @@ do "Make" \ "$gsl_post already Converted" \ "$gsl_file_db_posts" + gsl_checker_war=true continue fi ;;