#!/bin/bash # file: gsl__db_manager # Folder: /var/lib/gsl/scripts # By echolib # License: GNU AFFERO GENERAL PUBLIC LICENSE Version 3, 19 November 2007 #====================================================================== # Get Post Hash & Status From Database #====================================================================== gsl__db_get_post_datas() { 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"` fi } #====================================================================== # Get Post Hash and Compare from Database #====================================================================== gsl__db_compare_post_hash() { 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_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 chk) case "$gsl_db_post_status" in chk) gsl__db_compare_post_hash [[ "$gsl_post_new_hash" ]] || return # Do Nothing if same Hash gsl__db_create_post ;; 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 } #====================================================================== # 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" \ && gsl__logs_print \ "$gsl_log_w" \ "DB" \ "Delete" \ "file ; error in $gsl_post" \ "$gsl_file_db_post" return fi touch "$gsl_file_db_post" # Check webserver files [[ -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" \ "Status:$gsl_process" \ "`cat "$gsl_db_tmp"`" \ > "$gsl_file_db_post" # Stats Print printf '\n%s\n%s\n%s\n%s\n%s\n%s\n%s\n%s\n%s\n%s\n%s\n%s\n%s\n%s\n%s\n' \ "Stats" \ "Author:$gsl_header_author" \ "Date:$gsl_header_date" \ "Words:$gsl_stat_words" \ "Parag:$gsl_stat_p" \ "Links:$gsl_stat_link:$gsl_stat_links" \ "Strongs:$gsl_stat_strongs" \ "Bolds:$gsl_stat_bolds"\ "Italics:$gsl_stat_italics" \ "Abbrs:$gsl_stat_abbr:$gsl_stat_abbrs" \ "Images:$gsl_stat_image" \ "Files:$gsl_stat_file:$gsl_count_files" \ "Cites:$gsl_stat_bq" \ "ICodes:$gsl_stat_icode" \ "FCodes:$gsl_stat_fcode" \ >> "$gsl_file_db_post" gsl__logs_print \ "$gsl_log_w" \ "DB" \ "Create" \ "Datas from $gsl_post" \ "$gsl_file_db_post" }