#!/bin/bash # file: gsl # Folder: /usr/local/bin # By echolib # License: GNU AFFERO GENERAL PUBLIC LICENSE Version 3, 19 November 2007 #======================================================================= # Tool: Check needed file and sourcee if asked #======================================================================= gsl__if_file() { if ! [[ -f "$1" ]];then echo "! Missing file: $1" exit 1 fi case "$2" in source) source "$1" || exit 1 ;; read) cat "$1" ;; post) gsl_this_post="$1" ;; esac } # Get conf gsl__if_file "/etc/gsl/gsl.conf" source case "$1" in help|--help|-h) clear case "$2" in "") gsl__if_file "$gsl_dir_helps/gsl_help" read ;; new) gsl__if_file "$gsl_dir_helps/gsl_infos_new_website" read ;; install) gsl__if_file "$gsl_dir_helps/gsl_help_install" read ;; write|-w) gsl__if_file "$gsl_dir_helps/gsl_help_write_post" read ;; esac ;; esac #======================================================================= # Checking Dependancies #======================================================================= # Get Tools gsl__if_file "/var/lib/gsl/scripts/gsl__tools" source # Get Logs Manager gsl__if_file "$gsl_dir_scripts/gsl__log_manager" source # Check/Create Files and Folders gsl__create_ff gsl__find_domain gsl__if_file "$gsl_dir_scripts/gsl__auth_manager" source gsl__authors_list check || exit 1 gsl__if_file "$gsl_dir_scripts/gsl__new_website" source gsl__if_file "$gsl_dir_scripts/gsl__post_checkers" source gsl__if_file "$gsl_dir_scripts/gsl__post_manager" source gsl__if_file "$gsl_dir_scripts/gsl__db_manager" source gsl__if_file "$gsl_dir_scripts/gsl__post_makers" source gsl__if_file "$gsl_dir_scripts/gsl__page_creator" source gsl__if_file "$gsl_dir_scripts/gsl__do_commons" source #======================================================================= # Main #======================================================================= case "$1" in author|-A) gsl__authors_list check || exit 1 case "$2" in "") gsl__authors_list ;; add) gsl__logs_print \ "$gsl_log_i" \ "Starting" \ "Process" \ "Add Author for domain $gsl_find_domain" \ "Domain: $gsl_find_domain" gsl__authors_add gsl__logs_print \ "$gsl_log_i" \ "Stopping" \ "Process" \ "Add Author for domain $gsl_find_domain" \ "Domain: $gsl_find_domain" ;; remove) gsl__logs_print \ "$gsl_log_i" \ "Starting" \ "Process" \ "Remove Author for domain $gsl_find_domain" \ "Domain: $gsl_find_domain" gsl__authors_remove gsl__logs_print \ "$gsl_log_i" \ "Stopping" \ "Process" \ "Remove Author for domain $gsl_find_domain" \ "Domain: $gsl_find_domain" ;; esac ;; new|-N) gsl__logs_print \ "$gsl_log_i" \ "Starting" \ "Process" \ "New Website" \ "$gsl_dir_scripts/gsl__new_website" gsl__new_website gsl__logs_print \ "$gsl_log_i" \ "Stopping" \ "Process" \ "New Website" \ "$gsl_dir_scripts/gsl__new_website" [[ -f "$gsl_file_db_domains" ]] && \ [[ -d "$gsl_dir_user_posts" ]] \ && cd "$gsl_dir_user_posts" \ && gsl author add ;; log|-L) [[ -z `grep '[^[:space:]]' "$gsl_file_logs" 2>/dev/null` ]] \ && echo "# No logs to show. File is empty." \ && exit while test "$2" do case "$2" in clean|-C) gsl_date_logs=`date +%F-%H-%M-%S` mv "$gsl_file_logs" "$gsl_dir_logs/$gsl_date_logs.gsl.log" rm -f "$gsl_file_logs" printf '%s %s %s\n' \ "# Logs saved to" \ "$gsl_dir_logs/$gsl_date_logs.gsl.log" \ "and cleaned" exit ;; -s) gsl_logs_last_session=true ;; -e) gsl_logs_err=true ;; -i) gsl_logs_inf=true ;; -w) gsl_logs_war=true ;; *) gsl_logs_search="$2" ;; esac shift done gsl__logs_show ;; check|-C) gsl__check_nbr_posts gsl_process="chk" case "$2" in -F) gsl_force_check=true [[ "$3" ]] && gsl__if_file "$3" post ;; *) [[ "$2" ]] && gsl__if_file "$2" post ;; esac gsl__logs_print \ "$gsl_log_i" \ "Starting" \ "Process" \ "Check Post for domain $gsl_find_domain" \ "${PWD}" gsl__loop_posts check gsl__logs_print \ "$gsl_log_i" \ "Stopping" \ "Process" \ "Check Post for domain $gsl_find_domain" \ "${PWD}" ;; make|-M) gsl__check_nbr_posts gsl_process="wip" gsl_post_list="Add" case "$2" in -F) gsl_force_make=true [[ "$3" ]] && gsl__if_file "$3" post ;; *) [[ "$2" ]] && gsl__if_file "$2" post ;; esac gsl__logs_print \ "$gsl_log_i" \ "Starting" \ "Process" \ "Make Post for domain $gsl_find_domain" \ "${PWD}" gsl__loop_posts make gsl__logs_print \ "$gsl_log_i" \ "Stopping" \ "Process" \ "Make Post for domain $gsl_find_domain" \ "${PWD}" ;; post-list) case "$2" in add) gsl_post_list="Add" ;; pin) gsl_post_list="Pin" ;; *) echo "! Bad Argument: $2" exit 1 ;; esac if [[ "$3" ]];then gsl__if_file "$3" post else echo "! Select a Post to add to list" exit 1 fi gsl__check_nbr_posts gsl__logs_print \ "$gsl_log_i" \ "Starting" \ "Process" \ "Post-List ; $gsl_post_list $3 from domain $gsl_find_domain" \ "$gsl_dir_domain_tpl/last-posts-list.html" gsl__loop_posts post-list gsl__logs_print \ "$gsl_log_i" \ "Stopping" \ "Process" \ "Post-List ; $gsl_post_list $3 from domain $gsl_find_domain" \ "$gsl_dir_domain_tpl/last-posts-list.html" ;; readme) clear gsl__if_file "/var/lib/gsl/README.md" read ;; esac