Ignore images beginning with a specific reference prefix
authorHugo Villeneuve <hugo@hugovil.com>
Thu, 30 Nov 2023 23:39:11 +0000 (18:39 -0500)
committerHugo Villeneuve <hugo@hugovil.com>
Fri, 1 Dec 2023 17:16:31 +0000 (12:16 -0500)
README
fgen.sh

diff --git a/README b/README
index 8ba2d25..7d9a39e 100644 (file)
--- a/README
+++ b/README
@@ -12,7 +12,11 @@ Règles à respecter:
 3. Pour les dossiers à ignorer, y insérer une dernière image préfixée de
    "groupe-ref".
 
-4. Pour dupliquer une image, la nommer en débutant par "dupX-Y" où
+4. Pour les images à ignorer, préfixer le nom de "ref", ou utiliser l'option
+   "-s" pour spécifier un ou des préfixes supplémentaires à ignorer:
+   fgen -s "Montage Table" ...
+
+5. Pour dupliquer une image, la nommer en débutant par "dupX-Y" où
    X est le frame ID départ et Y le frame ID de la fin.
 
 
@@ -26,6 +30,7 @@ A (dossier)
         2       (image)
        image-x (image)
        image-y (image)
+       ref-image1 (image ignorée)
        image-z (image)
 
     1 (dossier)
diff --git a/fgen.sh b/fgen.sh
index 62c636d..63957b8 100755 (executable)
--- a/fgen.sh
+++ b/fgen.sh
@@ -89,6 +89,26 @@ function get_frame_id()
     echo "${token}"
 }
 
+# Arg1: label
+function get_prefix_ref()
+{
+    local w
+    local token
+
+    for w in ${ref_layer_prefix}; do
+        token=$(echo "${1}" | grep -e "^${w}" || echo "")
+
+        if [ "${token}" != "" ]; then
+            # Ignore image.
+            echo "${token}"
+            return 0
+        fi
+    done
+
+    # Do not ignore image
+    echo ""
+}
+
 # Arg1: line
 function get_scene_id()
 {
@@ -250,10 +270,11 @@ print_usage()
     echo "  -f   ne regénère pas les trames, mais uniquement la séquence vidéo"
     echo "  -n   mode de test (dry-run)"
     echo "  -r   nombre de trames par seconde (FPS)"
+    echo "  -s   préfixe d'image à ignorer"
     echo "  -h   affiche ce message d'aide"
 }
 
-while getopts "dhfnr:" flag ;do
+while getopts "dhfnr:s:" flag ;do
     case ${flag} in
         d)
             debug="1"
@@ -267,6 +288,9 @@ while getopts "dhfnr:" flag ;do
         r)
             fps="${OPTARG}"
             ;;
+        s)
+            ref_layer_prefix="${ref_layer_prefix} ${OPTARG}"
+            ;;
        h)
            print_usage
             exit 0
@@ -373,6 +397,7 @@ if [ ${trames} -eq 1 ]; then
         log_dbg "  nom: ${label}"
         log_dbg "  pos: ${p}"
 
+        prefix_ref=$(get_prefix_ref "${label}")
         group_ref=$(get_group_ref "${group}")
         log_dbg "  group_ref: ${group_ref}"
 
@@ -399,6 +424,13 @@ if [ ${trames} -eq 1 ]; then
             continue
         fi
 
+        # Ignore images beginning with a specific reference prefix:
+        if [ x"${prefix_ref}" != x"" ]; then
+            # Ignore all images in prefix-ref:
+            log_dbg "  ignore (prefix-ref)"
+            continue
+        fi
+
         files="${files} -page ${p} ${src}[${scene}]"
 
         if [ x"${nf}" != x"" ]; then