diff --git a/CHANGELOG.md b/CHANGELOG.md index ef538ec..8a910ae 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,15 @@ GSL changes from releases. You can send an issue : - repo: https://git.a-lec.org/echolib/gsl/-/issues - 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] ### Added: - gawk dependance diff --git a/control b/control index 28648b4..5c9445d 100644 --- a/control +++ b/control @@ -1,5 +1,5 @@ Package: egsl -Version: 0.1.9 +Version: 0.1.10 Section: custom Priority: optional Architecture: all diff --git a/help/comment_ecrire-article.md b/help/comment_ecrire-article.md index 5c57329..1d81fc0 100644 --- a/help/comment_ecrire-article.md +++ b/help/comment_ecrire-article.md @@ -1,6 +1,6 @@ # 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é) ``` @@ -8,10 +8,15 @@ cd MON-DOSSIER-ARTICLES gsl setdir ``` -Vous pouvez créer un article daté du jour avec les METAS obligatoires -intégrées (à renseigner après) depuis la ligne de commande. +"setdir" permet de choisir parmi les domaines configurés. Cette 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 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. ``` -# Créer une page nommée index (deviendra /index.html) +# Créer une page nommée index # deviendra /index.html gsl new page index # 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 -(), ou avec votre éditeur de texte favoris. le micro logiciel nano -est utilisé par défaut par GSL pour toute édition (article, -configuration du domaine, auteurs...) +# Éditez votre article dans le terminal +Vous pouvez éditer dans le terminal vos articles en utilisant +l'autocompletion (touche ), ou avec votre éditeur de texte favoris. +le micro logiciel nano est utilisé par défaut par GSL pour toute édition +(article, configuration du domaine, auteurs...) ``` gsl edit "mes vacances.gsl" @@ -110,7 +116,7 @@ azerty français (disposition par défaut) - Gras: ```*...*``` - Italique: ```\...\``` -- Code en ligne: "`...`" (altgr + 7) +- Code en ligne: `...` (altgr + 7) - Très gras: ```¤...¤``` (altgr + $) - Barré: ```~...~``` (altgr + 2) - Personnalisé: ```×...×``` (altgr + shift + ;) diff --git a/usr/local/bin/gsl b/usr/local/bin/gsl index c338bb3..f1888ba 100755 --- a/usr/local/bin/gsl +++ b/usr/local/bin/gsl @@ -1,5 +1,5 @@ #!/bin/bash -# Version: 0.1.9 +# Version: 0.1.10 # file: gsl # Folder: /usr/local/bin # By echolib (XMPP: im@echolib.re) diff --git a/var/lib/gsl/CHANGELOG.md b/var/lib/gsl/CHANGELOG.md index ef538ec..8a910ae 100644 --- a/var/lib/gsl/CHANGELOG.md +++ b/var/lib/gsl/CHANGELOG.md @@ -4,6 +4,15 @@ GSL changes from releases. You can send an issue : - repo: https://git.a-lec.org/echolib/gsl/-/issues - 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] ### Added: - gawk dependance diff --git a/var/lib/gsl/help/comment_ecrire-article.md b/var/lib/gsl/help/comment_ecrire-article.md index 5c57329..1d81fc0 100644 --- a/var/lib/gsl/help/comment_ecrire-article.md +++ b/var/lib/gsl/help/comment_ecrire-article.md @@ -1,6 +1,6 @@ # 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é) ``` @@ -8,10 +8,15 @@ cd MON-DOSSIER-ARTICLES gsl setdir ``` -Vous pouvez créer un article daté du jour avec les METAS obligatoires -intégrées (à renseigner après) depuis la ligne de commande. +"setdir" permet de choisir parmi les domaines configurés. Cette 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 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. ``` -# Créer une page nommée index (deviendra /index.html) +# Créer une page nommée index # deviendra /index.html gsl new page index # 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 -(), ou avec votre éditeur de texte favoris. le micro logiciel nano -est utilisé par défaut par GSL pour toute édition (article, -configuration du domaine, auteurs...) +# Éditez votre article dans le terminal +Vous pouvez éditer dans le terminal vos articles en utilisant +l'autocompletion (touche ), ou avec votre éditeur de texte favoris. +le micro logiciel nano est utilisé par défaut par GSL pour toute édition +(article, configuration du domaine, auteurs...) ``` gsl edit "mes vacances.gsl" @@ -110,7 +116,7 @@ azerty français (disposition par défaut) - Gras: ```*...*``` - Italique: ```\...\``` -- Code en ligne: "`...`" (altgr + 7) +- Code en ligne: `...` (altgr + 7) - Très gras: ```¤...¤``` (altgr + $) - Barré: ```~...~``` (altgr + 2) - Personnalisé: ```×...×``` (altgr + shift + ;) diff --git a/var/lib/gsl/scripts/gsl__domain_manager b/var/lib/gsl/scripts/gsl__domain_manager index ce2eb6e..42aefd1 100644 --- a/var/lib/gsl/scripts/gsl__domain_manager +++ b/var/lib/gsl/scripts/gsl__domain_manager @@ -54,10 +54,14 @@ fi #====================================================================== setdir__OPTIONS() { domain__check setdir -[[ "$domain_name" ]] \ - && echo "# Domain registred for this folder: $domain_name" \ - && exit +if [[ "$domain_name" ]];then + mkdir -p "images" + 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` cat -n "$gsl_file_db_domains" 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"` touch "gsl.$domain_set" +mkdir -p "images" +mkdir -p "files" gsl setdir exit } @@ -134,6 +140,11 @@ gsl_file_domain_authors="$gsl_dir_domain/authors.db" gsl_file_domain_conf="$gsl_dir_domain/$domain_name.conf" 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_files="$gsl_dir_domain/files" gsl_dir_domain_images="$gsl_dir_domain/images" diff --git a/var/lib/gsl/scripts/gsl__log_manager b/var/lib/gsl/scripts/gsl__log_manager index 2bf9507..03acffe 100644 --- a/var/lib/gsl/scripts/gsl__log_manager +++ b/var/lib/gsl/scripts/gsl__log_manager @@ -104,6 +104,7 @@ case "$2" in -E) log_f2="Stopping" ;; -A) log_f2="Article" ;; -srv) log_f2="Server" ;; + -rsc) log_f2="Rsync" ;; -st) log_f2="Stats" ;; -R) log_f2="Removed" ;; -D) log_f2="Database" ;; diff --git a/var/lib/gsl/scripts/gsl__post_checkers b/var/lib/gsl/scripts/gsl__post_checkers index 9981444..e3a7246 100644 --- a/var/lib/gsl/scripts/gsl__post_checkers +++ b/var/lib/gsl/scripts/gsl__post_checkers @@ -319,6 +319,72 @@ DB__set_status chk rm -f "$gsl_tmp_post" \ "$gsl_tmp_head" \ "$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 fi -if ! [[ -f "$gsl_dir_domain_files/$header_f2" ]];then +if ! [[ -f "$pwd_files/$header_f2" ]];then gsl__logs_print -e -h \ "$gsl_marker_flink" \ "Not found: $header_f2" \ - "$gsl_dir_domain_docs/$header_f2" + "$pwd_files/$header_f2" gsl_flink_err=true fi [[ $gsl_flink_err ]] && return -# Register file to DB -printf '%s\n' \ - "# Flink_URI:$gsl_dir_domain_fles/$header_f2" \ - >> "$gsl_tmp_db" - # Stat ((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 fi -if ! [[ -f "$gsl_dir_domain_images/$header_f2" ]];then +if ! [[ -f "$pwd_images/$header_f2" ]];then gsl__logs_print -e -h \ "$gsl_marker_image" \ "Not found: $header_f2" \ - "$gsl_dir_domain_images/$header_f2" + "$pwd_images/$header_f2" gsl_image_err=true fi [[ $gsl_image_err ]] && return -# Register file to DB -printf '%s\n' \ - "# Image_URI:$gsl_dir_domain_images/$header_f2" \ - >> "$gsl_tmp_db" - # Stat ((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 fi -if ! [[ -f "$gsl_dir_domain_files/$header_f2" ]];then +if ! [[ -f "$pwd_files/$header_f2" ]];then gsl__logs_print -e -h \ "$gsl_marker_fcode" \ "Not found: $header_f2" \ - "$gsl_dir_domain_precodes/$header_f2" + "$pwd_files/$header_f2" gsl_fcode_err=true fi [[ $gsl_fcode_err ]] && return -# Register file to DB -printf '%s\n' \ - "# Fcode_URI:$gsl_dir_domain_files/$header_f2" \ - >> "$gsl_tmp_db" - # Stat ((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 fi -if ! [[ -f "$gsl_dir_domain_files/$header_f2" ]];then +if ! [[ -f "$pwd_files/$header_f2" ]];then gsl__logs_print -e -h \ "$gsl_marker_fbrut" \ "Not found: $header_f2" \ - "$gsl_dir_domain_files/$header_f2" + "$pwd_files/$header_f2" gsl_fbrut_err=true fi [[ $gsl_fcode_err ]] && return -# Register file to DB -printf '%s\n' \ - "# Fbrut_URI:$gsl_dir_domain_files/$header_f2" \ - >> "$gsl_tmp_db" - # Stat ((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]}/} }