#!/bin/bash # file: gsl__post_manager # Folder: /var/lib/gsl/scripts # By echolib # License: GNU AFFERO GENERAL PUBLIC LICENSE Version 3, 19 November 2007 #======================================================================= # Check if posts from PWD folder #======================================================================= gsl__check_nbr_posts() { gsl_nbr_posts=`ls -1 *.gsl 2>/dev/null | wc -l` (( $gsl_nbr_posts == 0 )) \ && echo "! No Posts found with .gsl extension" } #======================================================================= # Read from Post list #======================================================================= gsl__loop_posts() { for gsl_post in `ls -1 *.gsl 2>/dev/null` do # Post too small gsl__post_hash_size if (( "$gsl_post_size" <= $gsl_post_min_size ));then gsl__logs_print \ "$gsl_log_e" \ "Post" \ "Size" \ "Too small $gsl_post_size <= $gsl_post_min_size" \ "${PWD}/$gsl_post" continue fi case "$1" in check) gsl__post_compare_hash && continue gsl__logs_print \ "$gsl_log_i" \ "Reading" \ "Post" \ "$gsl_post" \ "${PWD}" gsl__post_all_checkers # No error: Check/Write to DB (posts.db) if ! [[ "$gsl_checker_err" ]];then gsl_process="Checked" gsl__db_line_post fi ;; make) gsl_process="Made" gsl__db_post_exists "$gsl_file_db_posts" if [[ "$gsl_db_post_status" == "Made" ]];then gsl__logs_print "$gsl_log_w" \ "Post" \ "Make" \ "$gsl_post already Made (Converted)" \ "$gsl_file_db_posts" continue fi ;; esac done [[ "$gsl_check_done" ]] \ && echo "# All posts already checked" } #======================================================================= # Get Post Hash #======================================================================= gsl__post_hash_size() { gsl_post_csum=`cksum "$gsl_post"` gsl_post_hash=`awk '{print $1}' <<< "$gsl_post_csum"` gsl_post_size=`awk '{print $2}' <<< "$gsl_post_csum"` } #======================================================================= # Check if Post has same Hash #======================================================================= gsl__post_compare_hash() { gsl__db_post_hash if [[ "$gsl_db_post_hash" == "$gsl_post_hash" ]];then gsl__logs_print \ "$gsl_log_i" \ "Post" \ "Hash" \ "$gsl_post already Checked from $gsl_post_hash" \ "$gsl_file_db_posts" gsl_check_done=true fi } #======================================================================= # Get everything after the marker. $1: marker | $2: File #======================================================================= gsl__get_header() { awk -F"$1" -v marker="$1" \ '{if ($0 ~ marker) print $2}' \ "$2" 2>/dev/null }