- Re-enable ROM listing,
- Fix statistics, - Improve job control: only fork job which required extract/compress processing.
This commit is contained in:
parent
386c71c071
commit
dcc023872f
408
nds2rm
408
nds2rm
@ -5,9 +5,9 @@
|
|||||||
# (C) 2009 Arnaud G. Gibert
|
# (C) 2009 Arnaud G. Gibert
|
||||||
#-----------------------------------------------------------------------------------------------------------------------------------
|
#-----------------------------------------------------------------------------------------------------------------------------------
|
||||||
# $RCSfile: nds2rm,v $
|
# $RCSfile: nds2rm,v $
|
||||||
# $Revision: 1.6 $
|
# $Revision: 1.7 $
|
||||||
# $Name: $
|
# $Name: $
|
||||||
# $Date: 2009/03/25 08:46:41 $
|
# $Date: 2009/03/26 09:16:35 $
|
||||||
# $Author: agibert $
|
# $Author: agibert $
|
||||||
#-----------------------------------------------------------------------------------------------------------------------------------
|
#-----------------------------------------------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
@ -173,8 +173,6 @@ function dat_load()
|
|||||||
dat_fp[${idx}]="????"
|
dat_fp[${idx}]="????"
|
||||||
dat_status[${idx}]="?"
|
dat_status[${idx}]="?"
|
||||||
dat_dup[${idx}]="0"
|
dat_dup[${idx}]="0"
|
||||||
dat_filename[${idx}]=""
|
|
||||||
dat_pid[${idx}]="0"
|
|
||||||
|
|
||||||
loaded_cnt=$((${loaded_cnt} + 1))
|
loaded_cnt=$((${loaded_cnt} + 1))
|
||||||
fi
|
fi
|
||||||
@ -198,6 +196,7 @@ function job_init()
|
|||||||
job_dir[${job_id}]="${TMP_DIR}/nds2rom-$$-${job_id}"
|
job_dir[${job_id}]="${TMP_DIR}/nds2rom-$$-${job_id}"
|
||||||
|
|
||||||
mkdir "${job_dir[${job_id}]}"
|
mkdir "${job_dir[${job_id}]}"
|
||||||
|
> "${job_dir[${job_id}]}/${STATS_FILE}"
|
||||||
|
|
||||||
job_id=$((${job_id} + 1))
|
job_id=$((${job_id} + 1))
|
||||||
done
|
done
|
||||||
@ -278,7 +277,7 @@ function crc_lookup()
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
# Dump Rom List
|
# Verbose Print
|
||||||
#-----------------------------------------------------------------------------------------------------------------------------------
|
#-----------------------------------------------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
function print_verbose()
|
function print_verbose()
|
||||||
@ -472,11 +471,6 @@ function arc_build()
|
|||||||
|
|
||||||
print_verbose "zipping ${rom} into ${file_name}"
|
print_verbose "zipping ${rom} into ${file_name}"
|
||||||
|
|
||||||
# zip -m9 "${file_name}" "${rom}" >/dev/null 2>&1 &
|
|
||||||
|
|
||||||
# job_pid[${job_id}]=$!
|
|
||||||
# dat_pid[${idx}]=$!
|
|
||||||
|
|
||||||
zip -m9 "${NDS_ROMS_OUT}/${file_name}" "${rom}" >/dev/null 2>&1
|
zip -m9 "${NDS_ROMS_OUT}/${file_name}" "${rom}" >/dev/null 2>&1
|
||||||
else
|
else
|
||||||
print_verbose "removing ${rom}"
|
print_verbose "removing ${rom}"
|
||||||
@ -502,8 +496,8 @@ function arc_rename()
|
|||||||
|
|
||||||
if [[ "${mode}" == "correct" ]]
|
if [[ "${mode}" == "correct" ]]
|
||||||
then
|
then
|
||||||
if [[ ${action} != "keep_status" ]]
|
# if [[ ${action} != "keep_status" ]]
|
||||||
then
|
# then
|
||||||
if [[ ${in_place} == "yes" ]]
|
if [[ ${in_place} == "yes" ]]
|
||||||
then
|
then
|
||||||
print_verbose "moving ${file} to ${file_name}"
|
print_verbose "moving ${file} to ${file_name}"
|
||||||
@ -514,7 +508,7 @@ function arc_rename()
|
|||||||
|
|
||||||
cp "${NDS_ROMS_IN}/${file}" "${NDS_ROMS_OUT}/${file_name}"
|
cp "${NDS_ROMS_IN}/${file}" "${NDS_ROMS_OUT}/${file_name}"
|
||||||
fi
|
fi
|
||||||
fi
|
# fi
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -615,13 +609,50 @@ function tmp_mv()
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
# Test and Correct Mode
|
# Identify Arc
|
||||||
#-----------------------------------------------------------------------------------------------------------------------------------
|
#-----------------------------------------------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
function arc_test_correct()
|
function arc_ident()
|
||||||
|
{
|
||||||
|
arc_type_ptr=${1}
|
||||||
|
extract_ptr=${2}
|
||||||
|
file=${3}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# Type of archive ?
|
||||||
|
|
||||||
|
if [[ ${file} =~ ${RNFH_REGEX} ]]
|
||||||
|
then
|
||||||
|
eval ${arc_type_ptr}="rx3"
|
||||||
|
else
|
||||||
|
eval ${arc_type_ptr}="unknown"
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
# Extract ROM if needed
|
||||||
|
|
||||||
|
if [[ ( "${arc_type}" != "rx3" ) || ( "${rebuild}" == "yes" ) ]]
|
||||||
|
then
|
||||||
|
eval ${extract_ptr}="yes"
|
||||||
|
else
|
||||||
|
eval ${extract_ptr}="no"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# Proceed Arc
|
||||||
|
#-----------------------------------------------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
function arc_proceed()
|
||||||
{
|
{
|
||||||
file=${1}
|
file=${1}
|
||||||
found_cnt=${2}
|
arc_type=${2}
|
||||||
|
extract=${3}
|
||||||
|
found_cnt=${4}
|
||||||
|
|
||||||
|
|
||||||
set ${file:0:4}
|
set ${file:0:4}
|
||||||
@ -636,19 +667,10 @@ function arc_test_correct()
|
|||||||
lang=${dat_lang[${idx}]}
|
lang=${dat_lang[${idx}]}
|
||||||
crc=${dat_crc[${idx}]}
|
crc=${dat_crc[${idx}]}
|
||||||
|
|
||||||
# Type of archive ?
|
|
||||||
|
|
||||||
if [[ ${file} =~ ${RNFH_REGEX} ]]
|
|
||||||
then
|
|
||||||
arc_type="rx3"
|
|
||||||
else
|
|
||||||
arc_type="unknown"
|
|
||||||
fi
|
|
||||||
|
|
||||||
|
|
||||||
# Extract ROM if needed
|
# Extract ROM if needed
|
||||||
|
|
||||||
if [[ ( "${arc_type}" != "rx3" ) || ( "${rebuild}" == "yes" ) ]]
|
if [[ "${extract}" == "yes" ]]
|
||||||
then
|
then
|
||||||
rom="${id} - ${title} (${reg}:${lang}).nds"
|
rom="${id} - ${title} (${reg}:${lang}).nds"
|
||||||
|
|
||||||
@ -740,22 +762,20 @@ function arc_test_correct()
|
|||||||
status=${status2}
|
status=${status2}
|
||||||
fi
|
fi
|
||||||
|
|
||||||
renum_cnt=$((${renum_cnt} + 1))
|
|
||||||
renumed="yes"
|
renumed="yes"
|
||||||
fi
|
fi
|
||||||
else
|
fi
|
||||||
|
|
||||||
# Rename ROM if needed
|
# Rename ROM if needed
|
||||||
|
|
||||||
if [[ ( "${arc_type}" != "rx3" ) || ( "${rebuild}" == "yes" ) ]]
|
if [[ ( "${renumed}" != "yes") && ( ( "${arc_type}" != "rx3" ) || ( "${rebuild}" == "yes" ) ) ]]
|
||||||
then
|
then
|
||||||
rom2="${id} - ${title} (${reg}:${lang}) [${status}].nds"
|
rom2="${id} - ${title} (${reg}:${lang}) [${status}].nds"
|
||||||
|
|
||||||
print_verbose "moving ${rom} to ${rom2}"
|
print_verbose "moving ${rom} to ${rom2}"
|
||||||
|
|
||||||
mv "${rom}" "${rom2}"
|
mv "${rom}" "${rom2}"
|
||||||
rom=${rom2}
|
rom=${rom2}
|
||||||
fi
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
||||||
@ -779,10 +799,147 @@ function arc_test_correct()
|
|||||||
|
|
||||||
# Updates Stats
|
# Updates Stats
|
||||||
|
|
||||||
echo "${renumed}" "${action}" "${status}" >"${STATS_FILE}"
|
echo "${renumed}" "${action}" "${status}" >>"${STATS_FILE}"
|
||||||
|
}
|
||||||
|
|
||||||
#stats_update "${action}" "${mode}"
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# Manage Archives
|
||||||
|
#-----------------------------------------------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
function arc_mng()
|
||||||
|
{
|
||||||
|
# Initialize Job Control
|
||||||
|
job_init
|
||||||
|
|
||||||
|
echo "processing rom repository..."
|
||||||
|
|
||||||
|
IFS=' '
|
||||||
|
found_cnt=0
|
||||||
|
|
||||||
|
tmp_file=$(mktemp)
|
||||||
|
|
||||||
|
ls ${NDS_ROMS_IN} > ${tmp_file}
|
||||||
|
|
||||||
|
while read file
|
||||||
|
do
|
||||||
|
arc_ident "arc_type" "extract" "${file}"
|
||||||
|
|
||||||
|
if [[ "${extract}" == "no" ]]
|
||||||
|
then
|
||||||
|
arc_proceed "${file}" "${arc_type}" "${extract}" "${found_cnt}"
|
||||||
|
else
|
||||||
|
job_switch "${job_id}"
|
||||||
|
|
||||||
|
arc_proceed "${file}" "${arc_type}" "${extract}" "${found_cnt}" &
|
||||||
|
|
||||||
|
job_pid[${job_id}]=$!
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
# Update stats
|
||||||
|
found_cnt=$((${found_cnt} + 1))
|
||||||
|
|
||||||
|
printf "found: %4d" ${found_cnt}
|
||||||
|
|
||||||
|
if [[ "${verbose}" == "yes" ]]
|
||||||
|
then
|
||||||
|
echo
|
||||||
|
else
|
||||||
|
printf "\r"
|
||||||
|
fi
|
||||||
|
|
||||||
|
done < ${tmp_file}
|
||||||
|
|
||||||
|
\rm -f ${tmp_file}
|
||||||
|
|
||||||
|
# Wait all Jobs
|
||||||
|
|
||||||
|
wait
|
||||||
|
|
||||||
|
# Collect Stats"
|
||||||
|
cd "${TMP_DIR}"
|
||||||
|
|
||||||
|
cat *"/${STATS_FILE}" >> "${STATS_FILE}"
|
||||||
|
|
||||||
|
# DeInitialize Job Control
|
||||||
|
job_deinit
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# Manage Arc Suffix
|
||||||
|
#-----------------------------------------------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
function suffix_mng()
|
||||||
|
{
|
||||||
|
echo "managing duplicate archives..."
|
||||||
|
|
||||||
|
IFS=' '
|
||||||
|
found_cnt=0
|
||||||
|
ok_cnt=0
|
||||||
|
ko_cnt=0
|
||||||
|
dup_cnt=0
|
||||||
|
idx_old=0
|
||||||
|
|
||||||
|
tmp_file=$(mktemp)
|
||||||
|
|
||||||
|
ls ${NDS_ROMS_OUT} > ${tmp_file}
|
||||||
|
|
||||||
|
while read file
|
||||||
|
do
|
||||||
|
set ${file:0:4}
|
||||||
|
|
||||||
|
id=$1
|
||||||
|
idx=${id/*(0)/}
|
||||||
|
|
||||||
|
status=${file/* \[/}; status=${status/\] \{*/}
|
||||||
|
crc=${file/*\] \{/}; crc=${crc/\} \<*/}
|
||||||
|
fp=${file/*\} \</}; fp=${fp/\>-*/}
|
||||||
|
|
||||||
|
dat_dup[${idx}]="${dup_id}"
|
||||||
|
|
||||||
|
if [[ ${idx} != ${idx_old} ]]
|
||||||
|
then
|
||||||
|
idx_old=${idx}
|
||||||
|
dup_id=0
|
||||||
|
file_name="${file/) \[*/}) [${status}] {${crc}} <${fp}>.zip"
|
||||||
|
|
||||||
|
dat_fp[${idx}]="${fp}"
|
||||||
|
dat_status[${idx}]="${status}"
|
||||||
|
|
||||||
|
if [[ "${status}" == "OK" ]]
|
||||||
|
then
|
||||||
|
ok_cnt=$((${ok_cnt} + 1))
|
||||||
|
else
|
||||||
|
ko_cnt=$((${ko_cnt} + 1))
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
dup_id=$((${dup_id} + 1))
|
||||||
|
file_name="${file/) \[*/}) [${status}] {${crc}} <${fp}>-${dup_id}.zip"
|
||||||
|
|
||||||
|
dup_cnt=$((${dup_cnt} + 1))
|
||||||
|
fi
|
||||||
|
|
||||||
|
print_verbose "moving ${file} to ${file_name}"
|
||||||
|
arc_mv "${NDS_ROMS_OUT}/${file_name}" "${NDS_ROMS_OUT}/${file}" "${mode}"
|
||||||
|
|
||||||
|
found_cnt=$((${found_cnt} + 1))
|
||||||
|
printf "found: %4d" ${found_cnt}
|
||||||
|
|
||||||
|
if [[ "${verbose}" == "yes" ]]
|
||||||
|
then
|
||||||
|
echo
|
||||||
|
else
|
||||||
|
printf "\r"
|
||||||
|
fi
|
||||||
|
done < ${tmp_file}
|
||||||
|
|
||||||
|
\rm -f ${tmp_file}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -800,6 +957,11 @@ function stats_update()
|
|||||||
mode=${4}
|
mode=${4}
|
||||||
|
|
||||||
|
|
||||||
|
if [[ "${renumed}" == "yes" ]]
|
||||||
|
then
|
||||||
|
renum_cnt=$((${renum_cnt} + 1))
|
||||||
|
fi
|
||||||
|
|
||||||
case ${action} in
|
case ${action} in
|
||||||
("set_status")
|
("set_status")
|
||||||
if [[ ${status} == "OK" ]]
|
if [[ ${status} == "OK" ]]
|
||||||
@ -877,6 +1039,8 @@ function stats_proceed()
|
|||||||
|
|
||||||
function stats_print()
|
function stats_print()
|
||||||
{
|
{
|
||||||
|
echo " "
|
||||||
|
echo
|
||||||
printf "%4d roms set to OK\n" ${ss_ok_cnt}
|
printf "%4d roms set to OK\n" ${ss_ok_cnt}
|
||||||
printf "%4d roms changed to OK\n" ${cs_ok_cnt}
|
printf "%4d roms changed to OK\n" ${cs_ok_cnt}
|
||||||
printf "%4d roms kept to OK\n" ${ks_ok_cnt}
|
printf "%4d roms kept to OK\n" ${ks_ok_cnt}
|
||||||
@ -897,147 +1061,6 @@ function stats_print()
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
# Manage Archives
|
|
||||||
#-----------------------------------------------------------------------------------------------------------------------------------
|
|
||||||
|
|
||||||
function arc_mng()
|
|
||||||
{
|
|
||||||
# Initialize Job Control
|
|
||||||
job_init
|
|
||||||
|
|
||||||
echo "processing rom repository..."
|
|
||||||
|
|
||||||
IFS=' '
|
|
||||||
found_cnt=0
|
|
||||||
|
|
||||||
tmp_file=$(mktemp)
|
|
||||||
|
|
||||||
ls ${NDS_ROMS_IN} > ${tmp_file}
|
|
||||||
|
|
||||||
while read file
|
|
||||||
do
|
|
||||||
job_switch "${job_id}"
|
|
||||||
|
|
||||||
arc_test_correct "${file}" "${found_cnt}" &
|
|
||||||
|
|
||||||
job_pid[${job_id}]=$!
|
|
||||||
|
|
||||||
# Update stats
|
|
||||||
|
|
||||||
# stats_update "${action}" "${mode}"
|
|
||||||
found_cnt=$((${found_cnt} + 1))
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# printf "found: %4d OK: %4d KO: %4d renumbered: %4d duplicated: %4d missing: %4d" ${found_cnt} ${ok_cnt} ${ko_cnt} ${renum_cnt} ${dup_cnt} ${missing_cnt}
|
|
||||||
printf "found: %4d" ${found_cnt}
|
|
||||||
|
|
||||||
if [[ "${verbose}" == "yes" ]]
|
|
||||||
then
|
|
||||||
echo
|
|
||||||
else
|
|
||||||
printf "\r"
|
|
||||||
fi
|
|
||||||
|
|
||||||
done < ${tmp_file}
|
|
||||||
|
|
||||||
\rm -f ${tmp_file}
|
|
||||||
|
|
||||||
wait
|
|
||||||
|
|
||||||
if [[ "${verbose}" != "yes" ]]
|
|
||||||
then
|
|
||||||
echo " "
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# Collect Stats"
|
|
||||||
cd "${TMP_DIR}"
|
|
||||||
|
|
||||||
cat *"/${STATS_FILE}" > "${STATS_FILE}"
|
|
||||||
|
|
||||||
# DeInitialize Job Control
|
|
||||||
job_deinit
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# Manage Arc Suffix
|
|
||||||
#-----------------------------------------------------------------------------------------------------------------------------------
|
|
||||||
|
|
||||||
function suffix_mng()
|
|
||||||
{
|
|
||||||
echo "managing duplicate archives..."
|
|
||||||
|
|
||||||
IFS=' '
|
|
||||||
found_cnt=0
|
|
||||||
ok_cnt=0
|
|
||||||
ko_cnt=0
|
|
||||||
dup_cnt=0
|
|
||||||
idx_old=0
|
|
||||||
|
|
||||||
tmp_file=$(mktemp)
|
|
||||||
|
|
||||||
ls ${NDS_ROMS_OUT} > ${tmp_file}
|
|
||||||
|
|
||||||
while read file
|
|
||||||
do
|
|
||||||
set ${file:0:4}
|
|
||||||
|
|
||||||
id=$1
|
|
||||||
idx=${id/*(0)/}
|
|
||||||
|
|
||||||
status=${file/* \[/}; status=${status/\] \{*/}
|
|
||||||
crc_fp=${file/*\] \{/{}; crc_fp=${crc_fp/-*/}
|
|
||||||
|
|
||||||
if [[ ${idx} != ${idx_old} ]]
|
|
||||||
then
|
|
||||||
idx_old=${idx}
|
|
||||||
dup_id=0
|
|
||||||
file_name="${file/) \[*/}) [${status}] ${crc_fp}.zip"
|
|
||||||
|
|
||||||
if [[ "${status}" == "OK" ]]
|
|
||||||
then
|
|
||||||
ok_cnt=$((${ok_cnt} + 1))
|
|
||||||
else
|
|
||||||
ko_cnt=$((${ko_cnt} + 1))
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
dup_id=$((${dup_id} + 1))
|
|
||||||
file_name="${file/) \[*/}) [${status}] ${crc_fp}-${dup_id}.zip"
|
|
||||||
|
|
||||||
dup_cnt=$((${dup_cnt} + 1))
|
|
||||||
fi
|
|
||||||
|
|
||||||
print_verbose "moving ${file} to ${file_name}"
|
|
||||||
arc_mv "${NDS_ROMS_OUT}/${file_name}" "${NDS_ROMS_OUT}/${file}" "${mode}"
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
found_cnt=$((${found_cnt} + 1))
|
|
||||||
printf "found: %4d" ${found_cnt}
|
|
||||||
|
|
||||||
if [[ "${verbose}" == "yes" ]]
|
|
||||||
then
|
|
||||||
echo
|
|
||||||
else
|
|
||||||
printf "\r"
|
|
||||||
fi
|
|
||||||
done < ${tmp_file}
|
|
||||||
|
|
||||||
\rm -f ${tmp_file}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# DSROM Mode
|
# DSROM Mode
|
||||||
#-----------------------------------------------------------------------------------------------------------------------------------
|
#-----------------------------------------------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
@ -1111,20 +1134,21 @@ function test_correct_mode()
|
|||||||
# Dump ROMs List
|
# Dump ROMs List
|
||||||
#-----------------------------------------------------------------------------------------------------------------------------------
|
#-----------------------------------------------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
# if [[ ${lok} == "yes" ]]
|
if [[ ${lok} == "yes" ]]
|
||||||
# then
|
then
|
||||||
# ok_dump
|
ok_dump
|
||||||
# fi
|
fi
|
||||||
#
|
|
||||||
# if [[ ${lko} == "yes" ]]
|
if [[ ${lko} == "yes" ]]
|
||||||
# then
|
then
|
||||||
# ko_dump
|
ko_dump
|
||||||
# fi
|
fi
|
||||||
#
|
|
||||||
# if [[ ${lmiss} == "yes" ]]
|
if [[ ${lmiss} == "yes" ]]
|
||||||
# then
|
then
|
||||||
# missing_dump
|
missing_dump
|
||||||
# fi
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# Collect and Proceed Stats
|
# Collect and Proceed Stats
|
||||||
|
Loading…
Reference in New Issue
Block a user