diff --git a/var/lib/gsl/scripts/gsl__db_manager b/var/lib/gsl/scripts/gsl__db_manager
index 7e0d376..72b8f21 100644
--- a/var/lib/gsl/scripts/gsl__db_manager
+++ b/var/lib/gsl/scripts/gsl__db_manager
@@ -144,10 +144,6 @@ fi
touch "$gsl_file_db_post"
-# Check webserver files
-[[ -f $gsl_srv_wip_page ]] \
- && gsl_process=wip
-
# Main Print
printf '%s\n%s\n%s\n' \
"Post:${PWD}/$gsl_post:$gsl_post_hash:$gsl_post_size" \
diff --git a/var/lib/gsl/scripts/gsl__page_creator b/var/lib/gsl/scripts/gsl__page_creator
index f64f8fe..e5fd499 100644
--- a/var/lib/gsl/scripts/gsl__page_creator
+++ b/var/lib/gsl/scripts/gsl__page_creator
@@ -26,14 +26,15 @@ cat -n "$gsl_srv_wip_page"
#======================================================================
gsl__srv_sync() {
# Sync Files and Folders
+mkdir -p "$gsl_srv_wip"
for folder in `find $gsl_this_conf_domain/* -type d`
do
- rsync -a "$folder" "$gsl_srv_wip" && \
+ rsync -a --delete "$folder" "$gsl_srv_wip" && \
gsl__logs_print \
"$gsl_log_w" \
"Server" \
"Sync" \
- "$folder" \
+ "$folder in" \
"$gsl_srv_wip"
done
}
@@ -79,9 +80,9 @@ fi
}
#======================================================================
-# Create Post Listing
+# latest Posts listing Manager
#======================================================================
-gsl__page_create_listing() {
+gsl__page_listing_create() {
# Check if Post is in list ; Status Made
gsl_checker_war=true
gsl_listing_file="$gsl_dir_domain_listings/$gsl_post.list"
@@ -90,47 +91,46 @@ if [[ `ls -1 "$gsl_listing_file"* 2>/dev/null` ]];then
gsl__logs_print \
"$gsl_log_w" \
"Post" \
- "List" \
- "$gsl_post_list $gsl_post already added to Latests" \
+ "Latest" \
+ "$gsl_post_list $gsl_post ; already added to Listing" \
"$gsl_dir_domain_listings/"
return
fi
case "$gsl_post_list" in
Pin)
- gsl__page_create_listing_file "$gsl_listing_file.1"
+ gsl_listing_start_n=1
+ [[ $gsl_post_pin ]] \
+ && sed -i "s|gsl_post_pin.*|gsl_post_pin=$gsl_header_title|" \
+ "$gsl_this_conf_domain/$gsl_find_domain.conf" \
+ || echo "gsl_post_pin=$gsl_header_title" \
+ >> "$gsl_this_conf_domain/$gsl_find_domain.conf"
;;
Add)
- # search for last listing number
- gsl_listing_last=`
- ls -1 *"$gsl_dir_domain_listings/"*".list."* \
- | tail -1 2>/dev/null`
-
- # Get Last listing number
- ! [[ $gsl_listing_last ]] \
- && gsl_listing_last_n=0 \
- || gsl_listing_last_n=${gsl_listing_last: -1}
-
- # Set last listing number for this post
- (( $gsl_listing_last_n <= $(( gsl_list_max_posts - 1)) )) \
- && gsl_listing_last_n=$(( $gsl_listing_last_n + 1 ))
-
- gsl__page_create_listing_file \
- "$gsl_listing_file.$gsl_listing_last_n"
+ # Check if a post is pinned
+ [[ $gsl_post_pin ]] \
+ && gsl_listing_start_n=2 \
+ || gsl_listing_start_n=1
;;
esac
-cat "$gsl_dir_domain_listings/"*.list.* \
+gsl__page_listing_roller
+gsl__page_listing_create_file "$gsl_listing_file.$gsl_listing_start_n"
+
+cat `ls -1r "$gsl_dir_domain_listings/"*.list.*` \
> "$gsl_dir_domain_tpl/last-posts-list.html" \
&& gsl__logs_print \
"$gsl_log_w" \
"Post" \
- "List" \
- "Create Latest Listing (Merged .list.*)"\
+ "Latest" \
+ "Create Listing (Merged .list.*)"\
"$gsl_dir_domain_tpl/last-post-list.html"
}
-gsl__page_create_listing_file() {
+#======================================================================
+# Create HTML List from selected Post
+#======================================================================
+gsl__page_listing_create_file() {
cat << EOPostSide > "$1"
$gsl_header_title
@@ -142,11 +142,76 @@ EOPostSide
gsl__logs_print \
"$gsl_log_w" \
"Post" \
- "List" \
- "$gsl_post_list $gsl_post to Latests"\
+ "Latest" \
+ "$gsl_post_list $gsl_post to Listing" \
"$1"
}
+#======================================================================
+# latest Posts listing Rolling
+#======================================================================
+gsl__page_listing_roller() {
+
+ gsl__page_listing_file_mv() {
+ for n in `seq $gsl_listing_start_n $(( gsl_listing_last_n )) | sort -r`
+ do
+ gsl_listing_this_post=`ls -1 "$gsl_dir_domain_listings/"*".list.$n"`
+ gsl_listing_tmp_no_n=`echo ${gsl_listing_this_post%.*}`
+ gsl_listing_new_post="$gsl_listing_tmp_no_n.$(( n + 1 ))"
+
+ mv "$gsl_listing_this_post" \
+ "$gsl_listing_new_post"
+ done
+ gsl__logs_print \
+ "$gsl_log_w" \
+ "Post" \
+ "Latest" \
+ "Roll from Listing" \
+ "$gsl_dir_domain_listings/*.list.*"
+ }
+
+# search for last listing number
+gsl_listing_last=`
+ls -1 "$gsl_dir_domain_listings/"*".list."* 2>/dev/null \
+ | tail -1`
+
+if [[ $gsl_listing_last ]];then
+
+ # A Post is Pinned
+ if [[ $gsl_post_pin ]];then
+ gsl__logs_print \
+ "$gsl_log_w" \
+ "Post" \
+ "Latest" \
+ "Remove Pin $gsl_listing_rm_post_name from Listing" \
+ "$gsl_listing_rm_post_uri"
+ fi
+
+ # Get Last listing number
+ gsl_listing_last_n=${gsl_listing_last: -1}
+ # Remove last file
+ if (( $gsl_listing_last_n == $gsl_list_max_posts ));then
+ gsl_listing_rm_post_uri=`
+ ls -1 "$gsl_dir_domain_listings/"*".list.$gsl_list_max_posts"`
+ gsl_listing_rm_post_name=`
+ basename "$gsl_listing_rm_post_uri" | awk -F"." '{print $1"."$2}'`
+
+ rm -f "$gsl_dir_domain_listings/"*".list.$gsl_list_max_posts" && \
+ gsl__logs_print \
+ "$gsl_log_w" \
+ "Post" \
+ "Latest" \
+ "Remove $gsl_listing_rm_post_name from Listing" \
+ "$gsl_listing_rm_post_uri"
+ gsl_listing_last_n=4
+ fi
+
+ # Roll each ones + 1
+ gsl__page_listing_file_mv
+
+fi
+}
+
#----------------------------------------------------------------------
# Create Final HTML Post/Page
#----------------------------------------------------------------------
diff --git a/var/lib/gsl/scripts/gsl__post_checkers b/var/lib/gsl/scripts/gsl__post_checkers
index fd814dd..77d6dc4 100644
--- a/var/lib/gsl/scripts/gsl__post_checkers
+++ b/var/lib/gsl/scripts/gsl__post_checkers
@@ -93,14 +93,16 @@ case "$gsl_post_type" in
"${PWD}/$gsl_post"
;;
*)
- sed -i "s|$gsl_marker_type.*|${gsl_marker_type}post|" \
+ gsl_post_type="post"
+ sed -i "1i$gsl_marker_type$gsl_post_type" \
"$gsl_post" && \
gsl__logs_print \
"$gsl_log_w" \
"Post" \
"Set as" \
- "Default $gsl_post_type: $gsl_post" \
+ "Default: $gsl_post_type for $gsl_post" \
"${PWD}/$gsl_post"
+ gsl__get_sum "$gsl_post"
;;
esac
}
@@ -205,9 +207,9 @@ if (( "$gsl_count_links" > 0 ));then
# Check URL
gsl_url_status=`
- curl -o /dev/null --silent --head --write-out \
+ timeout 3 curl -o /dev/null --silent --head --write-out \
'%{http_code}' \
- "$gsl_post_hf_2" 2>/dev/null`
+ "$gsl_post_hf_2" 2>/dev/null || gsl_utl_status=408`
case "$gsl_url_status" in
1*|2*|3*)
@@ -562,6 +564,7 @@ if ! [[ "$gsl_slug_err" ]];then
"Changed: $gsl_header_slug_test" \
"${PWD}/$gsl_post"
+ gsl__get_sum "$gsl_post"
gsl_header_slug=$gsl_header_slug_test
gsl_checker_war=true
diff --git a/var/lib/gsl/scripts/gsl__post_makers b/var/lib/gsl/scripts/gsl__post_makers
index 51f9296..bc26ca0 100644
--- a/var/lib/gsl/scripts/gsl__post_makers
+++ b/var/lib/gsl/scripts/gsl__post_makers
@@ -19,11 +19,10 @@ unset gsl_check_done
gsl_a11y_post=`mktemp`
gsl__post_content_only
-mkdir -p "$gsl_srv_wip"
gsl__srv_sync
# Create Listng Page
-gsl__page_create_listing
+gsl__page_listing_create Add
gsl__do_italics "make" "$gsl_tmp_post" # First
gsl__do_header "make" "$gsl_marker_link" "$gsl_post"
@@ -50,8 +49,11 @@ echo -ne "\r\033[2K"
rm -f "$gsl_tmp_post" # No more Needed tmp file post
+# Create SRV folder according to post type
+[[ "$gsl_post_type" == "post" ]] \
+ && mkdir -p "$gsl_srv_wip/$gsl_header_slug/"
+
# Create HTML Page using gsl_a11y_post
-# cat "$gsl_a11y_post"
gsl__page_creator
gsl__db_set_post_status
diff --git a/var/lib/gsl/scripts/gsl__post_manager b/var/lib/gsl/scripts/gsl__post_manager
index 8bcb2da..945fc38 100644
--- a/var/lib/gsl/scripts/gsl__post_manager
+++ b/var/lib/gsl/scripts/gsl__post_manager
@@ -30,11 +30,12 @@ do
# Post too small
if (( "$gsl_post_size" <= $gsl_post_min_size ));then
gsl__logs_print \
- "$gsl_log_e" \
+ "$gsl_log_w" \
"Post" \
"Size" \
"$gsl_post - Too small $gsl_post_size <= $gsl_post_min_size" \
"${PWD}/$gsl_post"
+ gsl_checker_war=true
continue
fi
@@ -112,7 +113,7 @@ do
gsl__post_begin
gsl__get_needed_headers
gsl__page_prepare_datas
- gsl__page_create_listing
+ gsl__page_listing_create "$gsl_post_list"
;;
*)
gsl__logs_print \