2022-02-13 17:58:25 +01:00
|
|
|
#!/bin/bash
|
2022-06-25 12:30:54 +02:00
|
|
|
# Version: 0.1.8
|
2022-03-08 17:53:40 +01:00
|
|
|
# file: gsl
|
|
|
|
# Folder: /usr/local/bin
|
2022-06-14 18:51:19 +02:00
|
|
|
# By echolib (XMPP: im@echolib.re)
|
2022-03-08 17:53:40 +01:00
|
|
|
# License: GNU AFFERO GENERAL PUBLIC LICENSE Version 3, 19 November 2007
|
|
|
|
|
2022-06-14 18:51:19 +02:00
|
|
|
|
2022-03-08 17:53:40 +01:00
|
|
|
#=======================================================================
|
2022-04-23 17:51:46 +02:00
|
|
|
# Tools
|
2022-03-08 17:53:40 +01:00
|
|
|
#=======================================================================
|
2022-03-27 18:46:48 +02:00
|
|
|
if__command() {
|
|
|
|
! [[ `command -v $1` ]] \
|
|
|
|
&& echo -e "$I_Red Missing $1 command" \
|
2022-04-11 18:06:38 +02:00
|
|
|
&& exit
|
2022-03-27 18:46:48 +02:00
|
|
|
}
|
|
|
|
|
2022-06-14 18:51:19 +02:00
|
|
|
if__file() {
|
2022-03-08 17:53:40 +01:00
|
|
|
if ! [[ -f "$1" ]];then
|
|
|
|
echo "! Missing file: $1"
|
2022-04-11 18:06:38 +02:00
|
|
|
exit
|
2022-03-08 17:53:40 +01:00
|
|
|
fi
|
|
|
|
|
|
|
|
case "$2" in
|
2022-06-14 18:51:19 +02:00
|
|
|
source) source "$1" || exit ;;
|
|
|
|
read) clear;cat "$1";exit ;;
|
|
|
|
post) gsl_this_post="$1" ;;
|
2022-03-08 17:53:40 +01:00
|
|
|
esac
|
|
|
|
}
|
2022-02-13 17:58:25 +01:00
|
|
|
|
2022-06-14 18:51:19 +02:00
|
|
|
if__folder() {
|
|
|
|
if ! [[ -d "$1" ]];then
|
|
|
|
echo "! Missing directory: $1"
|
|
|
|
exit
|
|
|
|
fi
|
|
|
|
}
|
|
|
|
|
2022-04-23 17:51:46 +02:00
|
|
|
gsl__invalid_option() {
|
|
|
|
echo "! Invalid argument '$1': $2"
|
|
|
|
exit
|
|
|
|
}
|
|
|
|
|
2022-04-06 18:28:48 +02:00
|
|
|
|
2022-06-14 18:51:19 +02:00
|
|
|
#======================================================================
|
|
|
|
# Source files for help
|
|
|
|
#======================================================================
|
|
|
|
source__help() {
|
|
|
|
for file_help in ${gsl_files_help[@]}
|
|
|
|
do
|
|
|
|
if [[ -f "$file_help" ]];then
|
|
|
|
[[ "$file_help" == "$gsl_dir_help/gsl__help" ]] \
|
|
|
|
&& source "$file_help"
|
|
|
|
|
|
|
|
else
|
|
|
|
echo "! Installation Failure. Missing file: $file_help"
|
2022-04-06 18:28:48 +02:00
|
|
|
exit
|
2022-06-14 18:51:19 +02:00
|
|
|
fi
|
|
|
|
done
|
|
|
|
}
|
2022-04-06 18:28:48 +02:00
|
|
|
|
|
|
|
|
2022-06-14 18:51:19 +02:00
|
|
|
#======================================================================
|
|
|
|
# Helper
|
2022-06-23 12:24:01 +02:00
|
|
|
# $1: arguments list from help
|
2022-06-14 18:51:19 +02:00
|
|
|
#======================================================================
|
|
|
|
help__OPTIONS() {
|
|
|
|
clear
|
|
|
|
case "$1" in
|
|
|
|
write|-w) cat "$gsl_dir_help/comment_ecrire-article.md" ;;
|
|
|
|
tpl|-T) cat "$gsl_dir_help/template-comment-creer.md" ;;
|
|
|
|
install|-i) cat "$gsl_dir_help/comment_installer-GSL.md" ;;
|
2022-06-18 18:02:14 +02:00
|
|
|
authors|-a) cat "$gsl_dir_help/how-to_add_remove_authors.md" ;;
|
|
|
|
setdir|-d) cat "$gsl_dir_help/how-to_set_directory_for_articles.md" ;;
|
|
|
|
param|-p) cat "$gsl_dir_help/how-to_parameters_conf.md" ;;
|
|
|
|
css) cat "$gsl_dir_help/how-to_CSS_classes.md" ;;
|
|
|
|
tips|-t) cat "$gsl_dir_help/how-to_Tips_Advises.md" ;;
|
2022-06-14 18:51:19 +02:00
|
|
|
""|*) cat "$gsl_dir_help/gsl_help.md" ;;
|
|
|
|
esac
|
|
|
|
exit
|
|
|
|
}
|
2022-04-06 18:28:48 +02:00
|
|
|
|
|
|
|
|
2022-06-14 18:51:19 +02:00
|
|
|
#======================================================================
|
|
|
|
# Get CONF and source variables
|
|
|
|
#======================================================================
|
|
|
|
if__file "/etc/gsl/gsl.conf" source
|
2022-03-27 18:46:48 +02:00
|
|
|
|
|
|
|
|
2022-06-14 18:51:19 +02:00
|
|
|
#======================================================================
|
|
|
|
# Check installation and source files
|
|
|
|
#======================================================================
|
|
|
|
for dir in ${gsl_dirs[@]}
|
|
|
|
do
|
|
|
|
! [[ -d "$dir" ]] \
|
|
|
|
&& echo "! Installation Failure. Missing directory: $dir" \
|
|
|
|
&& exit
|
|
|
|
done
|
2022-03-27 18:46:48 +02:00
|
|
|
|
2022-06-14 18:51:19 +02:00
|
|
|
for file_script in ${gsl_files_scripts[@]}
|
|
|
|
do
|
|
|
|
if [[ -f "$file_script" ]];then
|
|
|
|
source "$file_script"
|
2022-03-27 18:46:48 +02:00
|
|
|
|
2022-06-14 18:51:19 +02:00
|
|
|
else
|
|
|
|
echo "! Installation Failure. Missing file: $file_help"
|
2022-03-27 18:46:48 +02:00
|
|
|
exit
|
2022-06-14 18:51:19 +02:00
|
|
|
fi
|
|
|
|
done
|
2022-03-13 16:20:44 +01:00
|
|
|
|
2022-06-14 18:51:19 +02:00
|
|
|
for dir_w in ${gsl_dirs_w[@]}
|
|
|
|
do
|
|
|
|
if ! [[ -w "$dir_w" ]];then
|
|
|
|
echo "! Installation Failure. Directory not writeable: $dir_w"
|
|
|
|
exit
|
|
|
|
fi
|
|
|
|
done
|
2022-02-13 17:58:25 +01:00
|
|
|
|
2022-02-27 19:16:16 +01:00
|
|
|
|
2022-02-13 17:58:25 +01:00
|
|
|
#=======================================================================
|
2022-06-14 18:51:19 +02:00
|
|
|
# Check ARGUMENTS
|
2022-02-13 17:58:25 +01:00
|
|
|
#=======================================================================
|
|
|
|
case "$1" in
|
2022-06-14 18:51:19 +02:00
|
|
|
new|-N) new__OPTIONS "$2" "$3" ;;
|
|
|
|
author|-A) author__OPTIONS "$2" ;;
|
|
|
|
log|-L) log__OPTIONS "$@" ;;
|
|
|
|
-v|-vv|--version) version__OPTIONS "$1" ;;
|
|
|
|
readme) if__file "$gsl_dir_lib/README.md" read ;;
|
|
|
|
setdir|-D) setdir__OPTIONS ;;
|
|
|
|
help|--help|-h) source__help;help__OPTIONS "$2" ;;
|
|
|
|
esac
|
2022-04-15 08:50:22 +02:00
|
|
|
|
2022-06-14 18:51:19 +02:00
|
|
|
# Check if registred DOMAIn and authors from PWD
|
|
|
|
domain__check
|
|
|
|
author__check || exit 0 # Check if authors registresd
|
2022-04-17 17:08:06 +02:00
|
|
|
|
2022-06-14 18:51:19 +02:00
|
|
|
case "$1" in
|
|
|
|
db) db__OPTIONS "$2" ;;
|
|
|
|
sync|-s) sync__OPTIONS "$2" ;;
|
2022-06-15 18:15:52 +02:00
|
|
|
edit|-E) edit__file_OPTIONS "$2" "$3" ;;
|
2022-06-14 18:51:19 +02:00
|
|
|
esac
|
2022-04-17 17:08:06 +02:00
|
|
|
|
2022-06-14 18:51:19 +02:00
|
|
|
if__gsl_post # from gsl__post_manager: check if .gsl
|
|
|
|
case "$1" in
|
2022-06-23 12:24:01 +02:00
|
|
|
db|sync|-s|edit|-E) true ;;
|
2022-06-14 18:51:19 +02:00
|
|
|
check|-C) check__OPTIONS "$@" ;;
|
|
|
|
make|-M) make__OPTIONS "$@" ;;
|
|
|
|
sidebar|-S) sidebar__OPTIONS "$2" "$3" "$4" ;;
|
|
|
|
www) srv__OPTIONS "$1" "$2" "$3" ;;
|
|
|
|
wip) srv__OPTIONS "$1" "$2" "$3" ;;
|
2022-06-15 16:15:44 +02:00
|
|
|
stats) stats__datas;exit ;;
|
2022-06-23 12:24:01 +02:00
|
|
|
*) gsl__invalid_option "$1" "See help argument";exit ;;
|
2022-02-13 17:58:25 +01:00
|
|
|
esac
|
2022-03-27 18:46:48 +02:00
|
|
|
|
2022-06-14 18:51:19 +02:00
|
|
|
#======================================================================
|
|
|
|
# After process, show logs
|
|
|
|
#======================================================================
|
2022-04-11 18:45:33 +02:00
|
|
|
gsl_logs_last_session=true
|
2022-06-14 18:51:19 +02:00
|
|
|
|
|
|
|
[[ $gsl_log_order ]] \
|
|
|
|
&& gsl__logs_show \
|
|
|
|
&& exit
|
|
|
|
|
|
|
|
gsl_logs_inf=true
|
2022-04-11 18:45:33 +02:00
|
|
|
gsl__logs_show
|
|
|
|
|
|
|
|
if [[ "$gsl_checker_war" ]];then
|
|
|
|
echo
|
|
|
|
gsl_logs_war=true
|
|
|
|
gsl__logs_show
|
|
|
|
fi
|
|
|
|
|
2022-04-12 17:56:54 +02:00
|
|
|
if [[ "$gsl_checker_err" ]];then
|
2022-04-11 18:45:33 +02:00
|
|
|
echo
|
|
|
|
gsl_logs_err=true
|
|
|
|
gsl__logs_show
|
|
|
|
fi
|
2022-06-23 12:24:01 +02:00
|
|
|
exit
|