142 lines
3.7 KiB
Bash
142 lines
3.7 KiB
Bash
#!/bin/bash
|
|
# file: gsl__sidebar
|
|
# Folder: /var/lib/gsl/scripts
|
|
# By echolib
|
|
# License: GNU AFFERO GENERAL PUBLIC LICENSE Version 3, 19 November 2007
|
|
|
|
#======================================================================
|
|
# Sidebar Manager | $1=call | $2=process | $3=POS/Post | $4=Post
|
|
#======================================================================
|
|
gsl__sidebar() {
|
|
case "$2" in
|
|
"")
|
|
ls -1 "$gsl_dir_domain_listings" | sort -r
|
|
exit
|
|
;;
|
|
|
|
create|-C)
|
|
! [[ `ls -1 "$gsl_dir_domain_listings"` ]] \
|
|
&& echo "! No post in list: $gsl_dir_domain_listings" \
|
|
&& exit
|
|
|
|
gsl__page_sidebar_create
|
|
;;
|
|
|
|
add|-A)
|
|
# $2=process | $3=Position | $4=post
|
|
gsl_listing_process="add"
|
|
! [[ "$3" ]] \
|
|
&& echo "! Set a number <= $gsl_list_max_posts ; see help" \
|
|
&& exit
|
|
|
|
! [[ `expr "x$3" : "x[0-9]*$"` -gt 0 ]] \
|
|
&& gsl__list_bad_arg nbr $3
|
|
|
|
! (( $3 <= $gsl_list_max_posts )) \
|
|
&& gsl__list_bad_arg nbr $3
|
|
|
|
! [[ "$4" ]] \
|
|
&& gsl__list_bad_arg file
|
|
|
|
gsl__logs_print \
|
|
"$gsl_log_i" \
|
|
"Starting" \
|
|
"Process" \
|
|
"$1 ; $2 ; position $3 ; $4 from domain $gsl_find_domain" \
|
|
"$gsl_dir_domain_tpl/last-posts-list.html"
|
|
|
|
gsl__if_file "$4" post
|
|
gsl_listing_file="$gsl_dir_domain_listings/$4.list"
|
|
gsl_post_old_inlist=`ls -1 "$gsl_dir_domain_listings/" | grep ".list.$3"`
|
|
|
|
if [[ `ls -1 "$gsl_listing_file"* 2>/dev/null` ]];then
|
|
# Post exists (maybe with different position)
|
|
gsl__logs_print \
|
|
"$gsl_log_w" \
|
|
"Sidebar" \
|
|
"Post" \
|
|
"$gsl_listing_process $4 ; already in list !" \
|
|
"$gsl_dir_domain_listings/"
|
|
gsl_checker_war=true
|
|
|
|
elif [[ "$gsl_post_old_inlist" ]];then
|
|
# Another post exists at this position.
|
|
# Remove and create new in roller
|
|
rm -f "$gsl_dir_domain_listings/$gsl_post_old_inlist"
|
|
gsl__logs_print \
|
|
"$gsl_log_w" \
|
|
"Sidebar" \
|
|
"Post" \
|
|
"$gsl_listing_process $4 ; replace $gsl_post_old_inlist !" \
|
|
"$gsl_dir_domain_listings/$gsl_post_old_inlist"
|
|
gsl_checker_war=true
|
|
gsl__page_sidebar $2 $3 $4
|
|
else
|
|
# Not gound in list, create for roller
|
|
gsl__page_sidebar $2 $3 $4
|
|
fi
|
|
|
|
gsl__logs_print \
|
|
"$gsl_log_i" \
|
|
"Stopping" \
|
|
"Process" \
|
|
"$1 ; $2 ; position $3 ; $4 from domain $gsl_find_domain" \
|
|
"$gsl_dir_domain_tpl/last-posts-list.html"
|
|
;;
|
|
|
|
remove|-R)
|
|
gsl_listing_process="remove"
|
|
! [[ "$3" ]] \
|
|
&& gsl__list_bad_arg file $3
|
|
|
|
gsl__if_file "$3" post
|
|
|
|
gsl__logs_print \
|
|
"$gsl_log_i" \
|
|
"Starting" \
|
|
"Process" \
|
|
"$1 ; $2 ; $3 from domain $gsl_find_domain" \
|
|
"$gsl_dir_domain_tpl/last-posts-list.html"
|
|
|
|
gsl_post_rm_list=`ls -1 "$gsl_dir_domain_listings/" | grep "$3.list"`
|
|
rm -f "$gsl_dir_domain_listings/$gsl_post_rm_list" && \
|
|
gsl__logs_print \
|
|
"$gsl_log_w" \
|
|
"Sidebar" \
|
|
"$2" \
|
|
"$3 from domain $gsl_find_domain in list" \
|
|
"$gsl_dir_domain_listings/$gsl_post_rm_list"
|
|
gsl_checker_war=true
|
|
|
|
gsl__page_sidebar_create
|
|
|
|
gsl__logs_print \
|
|
"$gsl_log_i" \
|
|
"Stopping" \
|
|
"Process" \
|
|
"$1 ; $2 ; $3 from domain $gsl_find_domain" \
|
|
"$gsl_dir_domain_tpl/last-posts-list.html"
|
|
;;
|
|
|
|
*)
|
|
echo "! Bad argument: add|-A/remove|-R"
|
|
exit
|
|
;;
|
|
esac
|
|
}
|
|
|
|
#======================================================================
|
|
# Sidebar Return bad argument
|
|
#======================================================================
|
|
gsl__list_bad_arg() {
|
|
case "$1" in
|
|
nbr)
|
|
echo "! $2 is not a number <= $gsl_list_max_posts ; see help"
|
|
;;
|
|
file)
|
|
echo "! Set post [FILE]"
|
|
;;
|
|
esac
|
|
exit
|
|
}
|