2929# /var/packages/StorageManager/target/ui/storage_panel.js
3030
3131
32- scriptver=" v3.6.129 "
32+ scriptver=" v3.6.130 "
3333script=Synology_HDD_db
3434repo=" 007revad/Synology_HDD_db"
3535scriptname=syno_hdd_db
@@ -1015,13 +1015,13 @@ fixdrivemodel(){
10151015 hdmodel=${hdmodel# " FUJISTU " } # Remove "FUJISTU " from start of model name
10161016
10171017 # Remove any leading spaces
1018- var =$( echo " $var " | sed -e ' s/^[[:space:]]*//' )
1018+ hdmodel =$( echo " $hdmodel " | sed -e ' s/^[[:space:]]*//' )
10191019 elif [[ $1 =~ ^' APPLE HDD ' .* ]]; then
10201020 # Old drive brands
10211021 hdmodel=${hdmodel# " APPLE HDD " } # Remove "APPLE HDD " from start of model name
10221022
10231023 # Remove any leading spaces
1024- var =$( echo " $var " | sed -e ' s/^[[:space:]]*//' )
1024+ hdmodel =$( echo " $hdmodel " | sed -e ' s/^[[:space:]]*//' )
10251025 fi
10261026}
10271027
@@ -1605,9 +1605,12 @@ editcount(){
16051605
16061606
16071607editdb7 (){
1608+ local hdmodel_sed
1609+ hdmodel_sed=" ${hdmodel// \" / \\\" } " # escape " for sed/JSON
1610+ hdmodel_sed=" ${hdmodel_sed// \/ / \\ / } " # escape / for sed
1611+
16081612 if [[ $1 == " append" ]]; then # model not in db file
1609- # if sed -i "s/}}}/}},\"$hdmodel\":{$fwstrng$default/" "$2"; then # append
1610- if sed -i " s/}}}/}},\" ${hdmodel// \/ / \\ / } \" :{$fwstrng$default /" " $2 " ; then # append
1613+ if sed -i " s/}}}/}},\" ${hdmodel_sed} \" :{$fwstrng$default /" " $2 " ; then # append
16111614 if jq -e --arg hdmodel " $hdmodel " --arg fwrev " $fwrev " \
16121615 ' .disk_compatbility_info[$hdmodel] | has($fwrev)' " $2 " > /dev/null; then
16131616 echo -e " Added ${Yellow} $hdmodel ($fwrev )${Off} to ${Cyan} $( basename -- " $2 " ) ${Off} "
@@ -1621,8 +1624,7 @@ editdb7(){
16211624 fi
16221625
16231626 elif [[ $1 == " insert" ]]; then # model and default exists
1624- # if sed -i "s/\"$hdmodel\":{/\"$hdmodel\":{$fwstrng/" "$2"; then # insert firmware
1625- if sed -i " s/\" ${hdmodel// \/ / \\ / } \" :{/\" ${hdmodel// \/ / \\ / } \" :{$fwstrng /" " $2 " ; then # insert firmware
1627+ if sed -i " s/\" ${hdmodel_sed} \" :{/\" ${hdmodel_sed} \" :{$fwstrng /" " $2 " ; then # insert firmware
16261628 if jq -e --arg hdmodel " $hdmodel " --arg fwrev " $fwrev " \
16271629 ' .disk_compatbility_info[$hdmodel] | has($fwrev)' " $2 " > /dev/null; then
16281630 echo -e " Updated ${Yellow} $hdmodel ($fwrev )${Off} in ${Cyan} $( basename -- " $2 " ) ${Off} "
@@ -1636,9 +1638,7 @@ editdb7(){
16361638 fi
16371639
16381640 elif [[ $1 == " empty" ]]; then # db file only contains {}
1639- # if sed -i "s/{}/{\"$hdmodel\":{$fwstrng${default}}/" "$2"; then # empty
1640- # if sed -i "s/{}/{\"${hdmodel//\//\\/}\":{$fwstrng${default}}/" "$2"; then # empty
1641- if sed -i " s/{}/{\" ${hdmodel// \/ / \\ / } \" :{$fwstrng ${default} /" " $2 " ; then # empty
1641+ if sed -i " s/{}/{\" ${hdmodel_sed} \" :{$fwstrng ${default} /" " $2 " ; then # empty
16421642 if jq -e --arg hdmodel " $hdmodel " --arg fwrev " $fwrev " \
16431643 ' .disk_compatbility_info[$hdmodel] | has($fwrev)' " $2 " > /dev/null; then
16441644 echo -e " Added ${Yellow} $hdmodel ($fwrev )${Off} to ${Cyan} $( basename -- " $2 " ) ${Off} "
@@ -1733,14 +1733,19 @@ updatedb(){
17331733 fi
17341734 elif [[ $dbtype -eq " 6" ]]; then
17351735 # db type 6 used up to DSM 7.0.1
1736+ local hdmodel_sed
1737+ hdmodel_sed=" ${hdmodel// \" / \\\" } " # escape " for sed/JSON
1738+ hdmodel_sed=" ${hdmodel_sed// \/ / \\ / } " # escape / for sed
1739+
17361740 if grep -q " $hdmodel " " $2 " ; then
17371741 echo -e " ${Yellow} $hdmodel ${Off} already exists in ${Cyan} $( basename -- " $2 " ) ${Off} " >&2
17381742 else
17391743 # example:
17401744 # {"model":"WD60EFRX-68MYMN1","firmware":"82.00A82","rec_intvl":[1]},
17411745 # Don't need to add firmware version?
17421746 # string="{\"model\":\"${hdmodel}\",\"firmware\":\"${fwrev}\",\"rec_intvl\":\[1\]},"
1743- string=" {\" model\" :\" ${hdmodel} \" ,\" firmware\" :\"\" ,\" rec_intvl\" :\[1\]},"
1747+ # string="{\"model\":\"${hdmodel}\",\"firmware\":\"\",\"rec_intvl\":\[1\]},"
1748+ string=" {\" model\" :\" ${hdmodel_sed} \" ,\" firmware\" :\"\" ,\" rec_intvl\" :\[1\]},"
17441749 # {"success":1,"list":[
17451750 startstring=" {\" success\" :1,\" list\" :\["
17461751 # example:
0 commit comments