#!/bin/bash
# rar
# find . -name "*.rar" -printf "%f\n" > file_list.tmp
# 7z
# find . -name "*.7z" -printf "%f\n" > file_list.tmp
sed -i -e 's/^/"/g' -e 's/$/"/g' file_list.tmp
mkdir origin/ converted/
function run_convert(){
    mkdir tmp1/
    f_in=$@
    # rar
    # f_out=$(echo ${f_in} | sed 's/\.rar/\.zip/g')
    # 7z
    # f_out=$(echo ${f_in} | sed 's/\.rar/\.zip/g')
    # rar 无密码
    # unrar x "${f_in}" tmp1
    # rar 有密码
    # password="password"
    # unrar x -p${password} "${f_in}" tmp1
    # 7z 无密码
    # 7z x -otmp1 "${f_in}"
    # 7z 有密码
    # password="password"
    # 7z x -otmp1 -p${password} "${f_in}"
    mkdir tmp2/
    find tmp1/ -name "*.png" -exec mv {} tmp2/ \;
    find tmp1/ -name "*.jpg" -exec mv {} tmp2/ \;
    find tmp1/ -name "*.jpeg" -exec mv {} tmp2/ \;
    find tmp1/ -name "*.gif" -exec mv {} tmp2/ \;
    cd tmp2/
    zip -r "../converted/${f_out}" *
    cd ../
    rm -r tmp1 tmp2
    mv "${f_in}" origin/
}
export -f run_convert
xargs -a file_list.tmp -n 1 bash -c 'run_convert "$@"' _
rm file_list.tmp