From d1019ad6b397f438d68005d51de1669d7d470e5c Mon Sep 17 00:00:00 2001
From: Mario Fetka <mario.fetka@gmail.com>
Date: Thu, 28 Mar 2013 14:38:45 +0100
Subject: [PATCH] add the possibility to add extra options to the extract
 process for ex passwort; overwrite; ....

---
 lib/builder-targets.sh |  4 +++-
 lib/builder-utils.sh   | 15 ++++++++-------
 2 files changed, 11 insertions(+), 8 deletions(-)

diff --git a/lib/builder-targets.sh b/lib/builder-targets.sh
index c01deca..317bc70 100644
--- a/lib/builder-targets.sh
+++ b/lib/builder-targets.sh
@@ -202,9 +202,11 @@ builder_create() {
     DL_EXTRACT_PATH[$i]=${INST_DIR}/CLIENT_DATA/${DL_ARCH[$i]}/${DL_EXTRACT_TO[$i]}
     local format=${DL_EXTRACT_FORMAT[$i]}
     if [ -z "$format" ] ; then format="cp"; fi
+    local option=${DL_EXTRACT_OPTION[$i]}
+    if [ -z "$option" ] ; then option=""; fi
     
     mkdir -p ${DL_EXTRACT_PATH[$i]}
-    process_file $format ${DL_DIST_FILE[$i]} ${DL_EXTRACT_PATH[$i]}
+    process_file $format ${DL_DIST_FILE[$i]} ${DL_EXTRACT_PATH[$i]} $option
   done
   
   # create winst variables
diff --git a/lib/builder-utils.sh b/lib/builder-utils.sh
index 9ffcb66..4db4adc 100644
--- a/lib/builder-utils.sh
+++ b/lib/builder-utils.sh
@@ -55,25 +55,26 @@ function  process_file() {
   local format=$1
   local src=$2
   local dst=$3
+  local option=$4
   
   log_debug "Compression format: $format"
   
   if [ "$format" = "cp" ]; then
     cp $src $dst
     elif [ "$format" = "7zip" ]; then
-    $CMD_7z x -y -o$dst $src
+    $CMD_7z x -y $option -o$dst $src
     elif [ "$format" = "unzip" ]; then
-    $CMD_unzip  -o $src -d $dst
+    $CMD_unzip $option -o $src -d $dst
     elif [ "$format" = "unrar" ]; then
-    $CMD_unrar x -y $src $dst
+    $CMD_unrar x -y $option $src $dst
     elif [ "$format" = "lha" ]; then
-    $CMD_lha x -w=$dst $src
+    $CMD_lha x $option -w=$dst $src
     elif [ "$format" = "targz" ]; then
-    $CMD_tar xzvf $src -C $dst
+    $CMD_tar xzvf $option $src -C $dst
     elif [ "$format" = "tarbz2" ]; then
-    $CMD_tar xjvf $src -C $dst
+    $CMD_tar xjvf $option $src -C $dst
     elif [ "$format" = "cab" ]; then
-    $CMD_cabextract -d $dst $src
+    $CMD_cabextract $option -d $dst $src
   else
     fatal_error "Unknown compression format: $format"
   fi