Add CLI option for global frames and disable by default
[fgen.git] / fgen.sh
diff --git a/fgen.sh b/fgen.sh
index 62c636d..2eb48cc 100755 (executable)
--- a/fgen.sh
+++ b/fgen.sh
@@ -18,6 +18,7 @@ fps=8
 debug=0
 trames=1
 dry_run=0
+global=0
 
 SED=sed
 
@@ -89,6 +90,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()
 {
@@ -248,12 +269,14 @@ print_usage()
     echo "Options:"
     echo "  -d   affiche les informations de debug"
     echo "  -f   ne regénère pas les trames, mais uniquement la séquence vidéo"
+    echo "  -g   génère les fichiers globaux"
     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 "dhfgnr:s:" flag ;do
     case ${flag} in
         d)
             debug="1"
@@ -261,12 +284,18 @@ while getopts "dhfnr:" flag ;do
         f)
             trames=0
             ;;
+        g)
+            global=1
+            ;;
         n)
             dry_run=1
             ;;
         r)
             fps="${OPTARG}"
             ;;
+        s)
+            ref_layer_prefix="${ref_layer_prefix} ${OPTARG}"
+            ;;
        h)
            print_usage
             exit 0
@@ -373,6 +402,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 +429,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
@@ -453,4 +490,6 @@ fi
 # Special case for last group...
 generate_video
 
-generate_global
+if [ x"${global}" = x"1" ]; then
+    generate_global
+fi