Version 0.1.10

This commit is contained in:
Cyrille L 2022-06-30 19:28:24 +02:00
parent a5e46da318
commit 63e148795d
9 changed files with 191 additions and 55 deletions

View File

@ -4,6 +4,15 @@ GSL changes from releases. You can send an issue :
- repo: https://git.a-lec.org/echolib/gsl/-/issues - repo: https://git.a-lec.org/echolib/gsl/-/issues
- Contact xmpp: im@echolib.re - Contact xmpp: im@echolib.re
## [0.1.10]
- Fix: file for links
- added: setdir (DO IT on your articles folder)
- - files and images folders are created in articles folder
- changes: check for files and images in files and images folder from articles folder
- - no more check for existing files in GSL DOMAIN/ template
- If no error in article, copy (if exists) files and images (with sub-folder) to GSL DOMAIN/
## [0.1.9] ## [0.1.9]
### Added: ### Added:
- gawk dependance - gawk dependance

View File

@ -1,5 +1,5 @@
Package: egsl Package: egsl
Version: 0.1.9 Version: 0.1.10
Section: custom Section: custom
Priority: optional Priority: optional
Architecture: all Architecture: all

View File

@ -1,6 +1,6 @@
# Créer un article depuis la ligne de commande # Créer un article depuis la ligne de commande
------------------------------------------------------------------------ ------------------------------------------------------------------------
Rendez vous dans le dossier de vos articles, enregistrés lors de l'ajout Rendez vous dans le dossier de vos articles, enregistré lors de l'ajout
de votre domaine (ou celui que vous avez configuré) de votre domaine (ou celui que vous avez configuré)
``` ```
@ -8,10 +8,15 @@ cd MON-DOSSIER-ARTICLES
gsl setdir gsl setdir
``` ```
Vous pouvez créer un article daté du jour avec les METAS obligatoires "setdir" permet de choisir parmi les domaines configurés. Cette commande
intégrées (à renseigner après) depuis la ligne de commande. s'assure également que le dossier "images" et le dossier "files" sont
présents. Si déjà configuré, vous serez averti pour quel domaine.
Vous devez spécifier si votre article sera une 'page' ou un 'post' ## Créer un article de base
Vous pouvez créer un article daté du jour avec les METAS obligatoires
intégrées depuis la ligne de commande. Vous devrez les renseigner après.
Pour cela, spécifier si votre article sera une 'page' ou un 'post'
(Voir section plus bas), et lui donner un nom sans l'extension .gsl. Les (Voir section plus bas), et lui donner un nom sans l'extension .gsl. Les
metas optionnelles sont ajoutées en commentaires. metas optionnelles sont ajoutées en commentaires.
@ -22,17 +27,18 @@ gsl new page|post FILENAME
Mettez des guillemets pour les nom du fichier avec espaces. Mettez des guillemets pour les nom du fichier avec espaces.
``` ```
# Créer une page nommée index (deviendra /index.html) # Créer une page nommée index # deviendra /index.html
gsl new page index gsl new page index
# Créer un article nommé "mes vacances" # Créer un article nommé "mes vacances"
gsl new post "mes vacances" gsl new post "mes vacances" # Deviendra /mes vacances/index.html
``` ```
Vous pouvez l'éditer dans le terminal en utilisant l'autocompletion # Éditez votre article dans le terminal
(<tab>), ou avec votre éditeur de texte favoris. le micro logiciel nano Vous pouvez éditer dans le terminal vos articles en utilisant
est utilisé par défaut par GSL pour toute édition (article, l'autocompletion (touche <tab>), ou avec votre éditeur de texte favoris.
configuration du domaine, auteurs...) le micro logiciel nano est utilisé par défaut par GSL pour toute édition
(article, configuration du domaine, auteurs...)
``` ```
gsl edit "mes vacances.gsl" gsl edit "mes vacances.gsl"
@ -110,7 +116,7 @@ azerty français (disposition par défaut)
- Gras: ```*...*``` - Gras: ```*...*```
- Italique: ```\...\``` - Italique: ```\...\```
- Code en ligne: "`...`" (altgr + 7) - Code en ligne: `...` (altgr + 7)
- Très gras: ```¤...¤``` (altgr + $) - Très gras: ```¤...¤``` (altgr + $)
- Barré: ```~...~``` (altgr + 2) - Barré: ```~...~``` (altgr + 2)
- Personnalisé: ```×...×``` (altgr + shift + ;) - Personnalisé: ```×...×``` (altgr + shift + ;)

View File

@ -1,5 +1,5 @@
#!/bin/bash #!/bin/bash
# Version: 0.1.9 # Version: 0.1.10
# file: gsl # file: gsl
# Folder: /usr/local/bin # Folder: /usr/local/bin
# By echolib (XMPP: im@echolib.re) # By echolib (XMPP: im@echolib.re)

View File

@ -4,6 +4,15 @@ GSL changes from releases. You can send an issue :
- repo: https://git.a-lec.org/echolib/gsl/-/issues - repo: https://git.a-lec.org/echolib/gsl/-/issues
- Contact xmpp: im@echolib.re - Contact xmpp: im@echolib.re
## [0.1.10]
- Fix: file for links
- added: setdir (DO IT on your articles folder)
- - files and images folders are created in articles folder
- changes: check for files and images in files and images folder from articles folder
- - no more check for existing files in GSL DOMAIN/ template
- If no error in article, copy (if exists) files and images (with sub-folder) to GSL DOMAIN/
## [0.1.9] ## [0.1.9]
### Added: ### Added:
- gawk dependance - gawk dependance

View File

@ -1,6 +1,6 @@
# Créer un article depuis la ligne de commande # Créer un article depuis la ligne de commande
------------------------------------------------------------------------ ------------------------------------------------------------------------
Rendez vous dans le dossier de vos articles, enregistrés lors de l'ajout Rendez vous dans le dossier de vos articles, enregistré lors de l'ajout
de votre domaine (ou celui que vous avez configuré) de votre domaine (ou celui que vous avez configuré)
``` ```
@ -8,10 +8,15 @@ cd MON-DOSSIER-ARTICLES
gsl setdir gsl setdir
``` ```
Vous pouvez créer un article daté du jour avec les METAS obligatoires "setdir" permet de choisir parmi les domaines configurés. Cette commande
intégrées (à renseigner après) depuis la ligne de commande. s'assure également que le dossier "images" et le dossier "files" sont
présents. Si déjà configuré, vous serez averti pour quel domaine.
Vous devez spécifier si votre article sera une 'page' ou un 'post' ## Créer un article de base
Vous pouvez créer un article daté du jour avec les METAS obligatoires
intégrées depuis la ligne de commande. Vous devrez les renseigner après.
Pour cela, spécifier si votre article sera une 'page' ou un 'post'
(Voir section plus bas), et lui donner un nom sans l'extension .gsl. Les (Voir section plus bas), et lui donner un nom sans l'extension .gsl. Les
metas optionnelles sont ajoutées en commentaires. metas optionnelles sont ajoutées en commentaires.
@ -22,17 +27,18 @@ gsl new page|post FILENAME
Mettez des guillemets pour les nom du fichier avec espaces. Mettez des guillemets pour les nom du fichier avec espaces.
``` ```
# Créer une page nommée index (deviendra /index.html) # Créer une page nommée index # deviendra /index.html
gsl new page index gsl new page index
# Créer un article nommé "mes vacances" # Créer un article nommé "mes vacances"
gsl new post "mes vacances" gsl new post "mes vacances" # Deviendra /mes vacances/index.html
``` ```
Vous pouvez l'éditer dans le terminal en utilisant l'autocompletion # Éditez votre article dans le terminal
(<tab>), ou avec votre éditeur de texte favoris. le micro logiciel nano Vous pouvez éditer dans le terminal vos articles en utilisant
est utilisé par défaut par GSL pour toute édition (article, l'autocompletion (touche <tab>), ou avec votre éditeur de texte favoris.
configuration du domaine, auteurs...) le micro logiciel nano est utilisé par défaut par GSL pour toute édition
(article, configuration du domaine, auteurs...)
``` ```
gsl edit "mes vacances.gsl" gsl edit "mes vacances.gsl"
@ -110,7 +116,7 @@ azerty français (disposition par défaut)
- Gras: ```*...*``` - Gras: ```*...*```
- Italique: ```\...\``` - Italique: ```\...\```
- Code en ligne: "`...`" (altgr + 7) - Code en ligne: `...` (altgr + 7)
- Très gras: ```¤...¤``` (altgr + $) - Très gras: ```¤...¤``` (altgr + $)
- Barré: ```~...~``` (altgr + 2) - Barré: ```~...~``` (altgr + 2)
- Personnalisé: ```×...×``` (altgr + shift + ;) - Personnalisé: ```×...×``` (altgr + shift + ;)

View File

@ -54,10 +54,14 @@ fi
#====================================================================== #======================================================================
setdir__OPTIONS() { setdir__OPTIONS() {
domain__check setdir domain__check setdir
[[ "$domain_name" ]] \ if [[ "$domain_name" ]];then
&& echo "# Domain registred for this folder: $domain_name" \ mkdir -p "images"
&& exit mkdir -p "files"
echo "# Domain registred for this folder: $domain_name"
exit
fi
# If no domain regsitred for PWD folder
domain_nbr_max=`cat "$gsl_file_db_domains" | wc -l` domain_nbr_max=`cat "$gsl_file_db_domains" | wc -l`
cat -n "$gsl_file_db_domains" cat -n "$gsl_file_db_domains"
ask_domain=`echo -e "\n# Which domain to set for this folder ? "` ask_domain=`echo -e "\n# Which domain to set for this folder ? "`
@ -77,6 +81,8 @@ read -rp "$ask_domain" domain_nbr
domain_set=`awk -v l="$domain_nbr" 'NR==l' "$gsl_file_db_domains"` domain_set=`awk -v l="$domain_nbr" 'NR==l' "$gsl_file_db_domains"`
touch "gsl.$domain_set" touch "gsl.$domain_set"
mkdir -p "images"
mkdir -p "files"
gsl setdir gsl setdir
exit exit
} }
@ -134,6 +140,11 @@ gsl_file_domain_authors="$gsl_dir_domain/authors.db"
gsl_file_domain_conf="$gsl_dir_domain/$domain_name.conf" gsl_file_domain_conf="$gsl_dir_domain/$domain_name.conf"
if__file "$gsl_file_domain_conf" source if__file "$gsl_file_domain_conf" source
# To PWD
pwd_images="$PWD/images"
pwd_files="$PWD/files"
# To gsl template DOMAIN/
gsl_dir_domain_tpl="$gsl_dir_domain/templates" gsl_dir_domain_tpl="$gsl_dir_domain/templates"
gsl_dir_domain_files="$gsl_dir_domain/files" gsl_dir_domain_files="$gsl_dir_domain/files"
gsl_dir_domain_images="$gsl_dir_domain/images" gsl_dir_domain_images="$gsl_dir_domain/images"

View File

@ -104,6 +104,7 @@ case "$2" in
-E) log_f2="Stopping" ;; -E) log_f2="Stopping" ;;
-A) log_f2="Article" ;; -A) log_f2="Article" ;;
-srv) log_f2="Server" ;; -srv) log_f2="Server" ;;
-rsc) log_f2="Rsync" ;;
-st) log_f2="Stats" ;; -st) log_f2="Stats" ;;
-R) log_f2="Removed" ;; -R) log_f2="Removed" ;;
-D) log_f2="Database" ;; -D) log_f2="Database" ;;

View File

@ -319,6 +319,72 @@ DB__set_status chk
rm -f "$gsl_tmp_post" \ rm -f "$gsl_tmp_post" \
"$gsl_tmp_head" \ "$gsl_tmp_head" \
"$gsl_tmp_db" "$gsl_tmp_db"
[[ "$gsl_checker_err" ]] && return
# Sync PWD/images from article to DOMAIN/ template
if [[ "${image_filename[1]}" ]];then
for i in `seq 1 $gsl_stat_images`
do
[[ ${image_folders[$i]} ]] \
&& mkdir -p "$gsl_dir_domain_images/${image_folders[$i]}"
rsync -q -a --exclude ".*" \
"$pwd_images/${image_header_f2[$i]}" \
"$gsl_dir_domain_images/${image_header_f2[$i]}" && \
gsl__logs_print -w -rsc -src \
"Image: $pwd_images/${image_header_f2[$i]}" \
"$gsl_dir_domain_images/${image_header_f2[$i]}"
done
fi
# Sync PWD/files from article to DOMAIN/ template for file-link
if [[ "${flink_filename[1]}" ]];then
for i in `seq 1 $gsl_stat_flinks`
do
[[ ${flink_folders[$i]} ]] \
&& mkdir -p "$gsl_dir_domain_files/${flink_folders[$i]}"
rsync -q -a --exclude ".*" \
"$pwd_files/${flink_header_f2[$i]}" \
"$gsl_dir_domain_files/${flink_header_f2[$i]}" && \
gsl__logs_print -w -rsc -src \
"File link: $pwd_files/${flink_header_f2[$i]}" \
"$gsl_dir_domain_files/${flink_header_f2[$i]}"
done
fi
# Sync PWD/files from article to DOMAIN/ template for file-code
if [[ "${fcode_filename[1]}" ]];then
for i in `seq 1 $gsl_stat_fcodes`
do
[[ ${fcode_folders[$i]} ]] \
&& mkdir -p "$gsl_dir_domain_files/${fcode_folders[$i]}"
rsync -q -a --exclude ".*" \
"$pwd_files/${fcode_header_f2[$i]}" \
"$gsl_dir_domain_files/${fcode_header_f2[$i]}" && \
gsl__logs_print -w -rsc -src \
"File code: $pwd_files/${fcode_header_f2[$i]}" \
"$gsl_dir_domain_files/${fcode_header_f2[$i]}"
done
fi
# Sync PWD/files from article to DOMAIN/ template for file-brut
if [[ "${fbrut_filename[1]}" ]];then
for i in `seq 1 $gsl_stat_fbruts`
do
[[ ${fbrut_folders[$i]} ]] \
&& mkdir -p "$gsl_dir_domain_files/${fbrut_folders[$i]}"
rsync -q -a --exclude ".*" \
"$pwd_files/${fbrut_header_f2[$i]}" \
"$gsl_dir_domain_files/${fbrut_header_f2[$i]}" && \
gsl__logs_print -w -rsc -src \
"File brut: $pwd_files/${fbrut_header_f2[$i]}" \
"$gsl_dir_domain_files/${fbrut_header_f2[$i]}"
done
fi
} }
@ -559,23 +625,30 @@ if ! [[ `grep "\<__$header_f1\>" "$gsl_tmp_post"` ]];then
gsl_flink_err=true gsl_flink_err=true
fi fi
if ! [[ -f "$gsl_dir_domain_files/$header_f2" ]];then if ! [[ -f "$pwd_files/$header_f2" ]];then
gsl__logs_print -e -h \ gsl__logs_print -e -h \
"$gsl_marker_flink" \ "$gsl_marker_flink" \
"Not found: $header_f2" \ "Not found: $header_f2" \
"$gsl_dir_domain_docs/$header_f2" "$pwd_files/$header_f2"
gsl_flink_err=true gsl_flink_err=true
fi fi
[[ $gsl_flink_err ]] && return [[ $gsl_flink_err ]] && return
# Register file to DB
printf '%s\n' \
"# Flink_URI:$gsl_dir_domain_fles/$header_f2" \
>> "$gsl_tmp_db"
# Stat # Stat
((gsl_stat_flinks++)) ((gsl_stat_flinks++))
# Register file to DB
printf '%s\n' \
"Flink_$gsl_stat_flinks=\"$gsl_dir_domain_files/$header_f2\"" \
>> "$gsl_tmp_db"
# register images in PWD/images to sync after no err check
flink_header_f2[$gsl_stat_flinks]="$header_f2"
# Get image sub-folders (if exists) to create them on DOMAIN/ template
flink_filename[$gsl_stat_flinks]=`basename "$header_f2"`
flink_folders[$gsl_stat_flinks]=${header_f2/${flink_filename[$gsl_stat_flinks]}/}
} }
@ -599,23 +672,30 @@ if ! [[ `grep "_image:$header_f1" "$gsl_tmp_post"` ]];then
gsl_image_err=true gsl_image_err=true
fi fi
if ! [[ -f "$gsl_dir_domain_images/$header_f2" ]];then if ! [[ -f "$pwd_images/$header_f2" ]];then
gsl__logs_print -e -h \ gsl__logs_print -e -h \
"$gsl_marker_image" \ "$gsl_marker_image" \
"Not found: $header_f2" \ "Not found: $header_f2" \
"$gsl_dir_domain_images/$header_f2" "$pwd_images/$header_f2"
gsl_image_err=true gsl_image_err=true
fi fi
[[ $gsl_image_err ]] && return [[ $gsl_image_err ]] && return
# Register file to DB
printf '%s\n' \
"# Image_URI:$gsl_dir_domain_images/$header_f2" \
>> "$gsl_tmp_db"
# Stat # Stat
((gsl_stat_images++)) ((gsl_stat_images++))
# Register file to DB
printf '%s\n' \
"Image_$gsl_stat_images=\"$gsl_dir_domain_images/$header_f2\"" \
>> "$gsl_tmp_db"
# register images in PWD/images to sync after no err check
image_header_f2[$gsl_stat_images]="$header_f2"
# Get image sub-folders (if exists) to create them on DOMAIN/ template
image_filename[$gsl_stat_images]=`basename "$header_f2"`
image_folders[$gsl_stat_images]=${header_f2/${image_filename[$gsl_stat_images]}/}
} }
@ -646,23 +726,30 @@ if ! [[ `grep "$gsl_mark_fcode:$header_f1" "$gsl_tmp_post"` ]];then
gsl_fcode_err=true gsl_fcode_err=true
fi fi
if ! [[ -f "$gsl_dir_domain_files/$header_f2" ]];then if ! [[ -f "$pwd_files/$header_f2" ]];then
gsl__logs_print -e -h \ gsl__logs_print -e -h \
"$gsl_marker_fcode" \ "$gsl_marker_fcode" \
"Not found: $header_f2" \ "Not found: $header_f2" \
"$gsl_dir_domain_precodes/$header_f2" "$pwd_files/$header_f2"
gsl_fcode_err=true gsl_fcode_err=true
fi fi
[[ $gsl_fcode_err ]] && return [[ $gsl_fcode_err ]] && return
# Register file to DB
printf '%s\n' \
"# Fcode_URI:$gsl_dir_domain_files/$header_f2" \
>> "$gsl_tmp_db"
# Stat # Stat
((gsl_stat_fcodes++)) ((gsl_stat_fcodes++))
# Register file to DB
printf '%s\n' \
"Fcode_$gsl_stat_fcodes=\"$gsl_dir_domain_files/$header_f2\"" \
>> "$gsl_tmp_db"
# register images in PWD/images to sync after no err check
fcode_header_f2[$gsl_stat_fcodes]="$header_f2"
# Get image sub-folders (if exists) to create them on DOMAIN/ template
fcode_filename[$gsl_stat_fcodes]=`basename "$header_f2"`
fcode_folders[$gsl_stat_fcodes]=${header_f2/${fcode_filename[$gsl_stat_fcodes]}/}
} }
@ -686,23 +773,30 @@ if ! [[ `grep "$gsl_mark_fbrut:$header_f1" "$gsl_tmp_post"` ]];then
gsl_fbrut_err=true gsl_fbrut_err=true
fi fi
if ! [[ -f "$gsl_dir_domain_files/$header_f2" ]];then if ! [[ -f "$pwd_files/$header_f2" ]];then
gsl__logs_print -e -h \ gsl__logs_print -e -h \
"$gsl_marker_fbrut" \ "$gsl_marker_fbrut" \
"Not found: $header_f2" \ "Not found: $header_f2" \
"$gsl_dir_domain_files/$header_f2" "$pwd_files/$header_f2"
gsl_fbrut_err=true gsl_fbrut_err=true
fi fi
[[ $gsl_fcode_err ]] && return [[ $gsl_fcode_err ]] && return
# Register file to DB
printf '%s\n' \
"# Fbrut_URI:$gsl_dir_domain_files/$header_f2" \
>> "$gsl_tmp_db"
# Stat # Stat
((gsl_stat_fbruts++)) ((gsl_stat_fbruts++))
# Register file to DB
printf '%s\n' \
"Fbrut_$gsl_stat_fbruts=\"$gsl_dir_domain_files/$header_f2\"" \
>> "$gsl_tmp_db"
# register images in PWD/images to sync after no err check
fbrut_header_f2[$gsl_stat_fbruts]="$header_f2"
# Get image sub-folders (if exists) to create them on DOMAIN/ template
fbrut_filename[$gsl_stat_fbruts]=`basename "$header_f2"`
fbrut_folders[$gsl_stat_fbruts]=${header_f2/${fbrut_filename[$gsl_stat_fbruts]}/}
} }