#!/bin/bash # file: gsl__do_commons # Folder: /var/lib/gsl/scripts # By echolib (XMPP: im@echolib.re) # License: GNU AFFERO GENERAL PUBLIC LICENSE Version 3, 19 November 2007 #====================================================================== # Set/Get NEEDED DATAS from META HEADERS # $1: process # $2: file: (gsl_tmp_head) #====================================================================== get__needed_headers() { gsl__logs_print -i -g \ "Get" \ "Needed Metas from header" \ "$2" read__line_with "^$gsl_marker_type" "$1" \ "$gsl_marker_type" "meta" "$2" read__line_with "^$gsl_marker_slug" "$1" \ "$gsl_marker_slug" "meta" "$2" read__line_with "^$gsl_marker_title" "$1" \ "$gsl_marker_title" "meta" "$2" read__line_with "^$gsl_marker_info" "$1" \ "$gsl_marker_info" "meta" "$2" read__line_with "^$gsl_marker_author" "$1" \ "$gsl_marker_author" "meta" "$2" read__line_with "^$gsl_marker_tags" "$1" \ "$gsl_marker_tags" "meta" "$2" read__line_with "^$gsl_marker_date" "$1" \ "$gsl_marker_date" "meta" "$2" read__line_with "^$gsl_marker_css" "$1" \ "$gsl_marker_css" "meta" "$2" } #====================================================================== # Read line with # $1: TERM # $2: process # $3: marker # $4: type (meta/metas) # $5: file # From "meta" ; check only one marker ; get fields # From "metas" ; check multiple markers ; get fields # From content ; read line ; no need to get fields #====================================================================== read__line_with() { # meta must be set, and no more than one value if [[ "$2" == "check" && "$4" == "meta" ]];then meta_nbr=`grep -n "$1" "$5" | wc -l` if (( $meta_nbr == 0 ));then if [[ "$3" == "$gsl_marker_css" ]];then gsl__logs_print -w -h \ "$gsl_marker_css" \ "Body template: css not customized" \ "$PWD/$gsl_post" gsl_post_css="" else gsl__logs_print -e -h \ "$3" \ "Unused needed marker" \ "${PWD}/$gsl_post" return fi elif (( $meta_nbr > 1 ));then gsl__logs_print -e -h \ "$3" \ "Set only one marker ; Found $meta_nbr" \ "${PWD}/$gsl_post" return fi fi # Read line filtered while IFS=: read -r "ln" "gsl_line" do # Get values if meta(s) case "$4" in meta|metas) header_f1=`awk -F" : " '{print $1}' <<<"$gsl_line"` header_f0=`awk -F": " '{print $1}' <<<"$header_f1"` header_f1=`awk -F": " '{print $2}' <<<"$header_f1"` header_f2=`awk -F" : " '{print $2}' <<<"$gsl_line"` header_f3=`awk -F" : " '{print $3}' <<<"$gsl_line"` ;; esac # From process, do case "$2" in check) check__headers_from_filter "$1" "$2" "$3" "$4" ;; make) make__headers_from_filter "$1" "$3" "$5" "$6" "$7" "$8" ;; esac done < <(grep -n "$1" "$5") }