#!/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 FROM DB posts.db #======================================================================= gsl__db_post_hash() { gsl_db_post_hash=` grep "$gsl_post" \ "$gsl_file_db_posts" \ | awk -F"|" '{print $3}'` } #======================================================================= # Check Post exists and get line NBR in DB #======================================================================= gsl__db_post_exists() { gsl_db_post_exists=`grep -n "$gsl_post" "$1"` gsl_db_post_line_nbr=`awk -F":" '{print $1}' <<< "$gsl_db_post_exists"` gsl_db_post_status=`awk -F"|" '{print $4}' <<< "$gsl_db_post_exists"` } #======================================================================= # From gsl__loop_posts: Write DB #======================================================================= gsl__db_line_post() { case "$gsl_process" in Checked) # Check if post exists in DB posts.db and get line / status gsl__db_post_exists "$gsl_file_db_posts" [[ "$gsl_checker_err" ]] && \ [[ "$gsl_db_post_line_nbr" ]] \ && sed -i "${gsl_db_post_line_nbr}d" "$gsl_file_db_posts" \ && gsl__logs_print \ "$gsl_log_w" \ "DB" \ "Post" \ "Line:$gsl_db_post_line_nbr removed. Error in $gsl_post" \ "$gsl_file_db_posts" \ && return gsl_db_line=` printf '%s%s%s%s%s\n' \ "$gsl_post_type|" \ "$gsl_post|" \ "$gsl_post_hash|" \ "$gsl_post_size|" \ "$gsl_process|"` if [[ "$gsl_db_post_exists" ]];then sed -i "${gsl_db_post_line_nbr}s/.*/$gsl_db_line/" \ "$gsl_file_db_posts" && \ gsl__logs_print \ "$gsl_log_w" \ "DB" \ "Post" \ "Line:REPLACED - $gsl_post - Hash: $gsl_post_hash" \ "$gsl_file_db_posts" gsl_checker_war=true else echo "$gsl_db_line" \ >> "$gsl_file_db_posts" && \ gsl__logs_print \ "$gsl_log_i" \ "DB" \ "Post" \ "Line:NEW - $gsl_post - Hash: $gsl_post_hash" \ "$gsl_file_db_posts" fi ;; esac }