# s1 修改样式

# 选择基础样式
HDD_BAY="RACK_24_Bay"
SSD_BAY="1X8"

FILE_JS="/usr/syno/synoman/webman/modules/StorageManager/storage_panel.js"
FILE_GZ="${FILE_JS}.gz"
_UNIQUE=$(/bin/get_key_value /etc.defaults/synoinfo.conf unique)

HDD_BAY_LIST=(RACK_0_Bay RACK_2_Bay RACK_4_Bay RACK_8_Bay RACK_10_Bay RACK_12_Bay RACK_12_Bay_2 RACK_16_Bay RACK_20_Bay RACK_24_Bay RACK_60_Bay
  TOWER_1_Bay TOWER_2_Bay TOWER_4_Bay TOWER_4_Bay_J TOWER_4_Bay_S TOWER_5_Bay TOWER_6_Bay TOWER_8_Bay TOWER_12_Bay)

if [ "${HDD_BAY}" = "-r" ]; then
  if [ -f "${FILE_GZ}.bak" ]; then
    rm -f "${FILE_JS}" "${FILE_GZ}"
    cp -f "${FILE_GZ}.bak" "${FILE_GZ}"
    gzip -dc "${FILE_GZ}" >"${FILE_JS}"
    chmod a+r "${FILE_JS}" "${FILE_GZ}"
  fi
  exit
fi

if ! echo "${HDD_BAY_LIST[@]}" | grep -wq "${HDD_BAY}"; then
  echo "parameter 1 error"
  exit
fi

if [ -z "$(echo ${SSD_BAY} | sed -n '/^[0-9]\{1,2\}X[0-9]\{1,2\}$/p')" ]; then
  echo "parameter 2 error"
  exit
fi

[ ! -f "${FILE_GZ}.bak" ] && cp -f "${FILE_GZ}" "${FILE_GZ}.bak" && chmod a+r "${FILE_GZ}.bak"

rm -f "${FILE_JS}"
gzip -dc "${FILE_GZ}.bak" >"${FILE_JS}"

OLD="driveShape:\"Mdot2-shape\",major:\"row\",rowDir:\"UD\",colDir:\"LR\",driveSection:\[{top:14,left:18,rowCnt:1,colCnt:2,xGap:6,yGap:6}\]},"
NEW="driveShape:\"Mdot2-shape\",major:\"row\",rowDir:\"UD\",colDir:\"LR\",driveSection:\[{top:14,left:18,rowCnt:${SSD_BAY%%X*},colCnt:${SSD_BAY##*X},xGap:6,yGap:6}\]},"
sed -i "s/\"${_UNIQUE}\",//g; s/,\"${_UNIQUE}\"//g; s/${HDD_BAY}:\[\"/${HDD_BAY}:\[\"${_UNIQUE}\",\"/g; s/M2X1:\[\"/M2X1:\[\"${_UNIQUE}\",\"/g; s/${OLD}/${NEW}/g" "${FILE_JS}"


# s2 提取样式参数
# 提取值
file_content=$(cat "${FILE_JS}")
result=$(echo "$file_content" | grep -oP "${HDD_BAY}:\s*{[^}]+}" | head -n 1)
value=$(echo "$result" | grep -oP '{[^}]+}')
echo "$value" > HDD_BAY


# s3 修改样式参数
################################################
# vi HDD_BAY
# 此时修改js
# 路径/usr/syno/synoman/webman/modules/StorageManager/HDD_BAY
# imgWidth: 150
# imgHeight: 100 
# 每增加一个硬盘，数值增加26
# driveDirection: "horizontal" #横向  # 纵向"vertical"
# rowCnt: 4
# colCnt: 1
# 自行修改对应样式的图片，保存为原名字，png格式
# 替换bg
# 路径/usr/syno/synoman/webman/modules/StorageManager/images
################################################

# s4 写入样式参数
# 写回文件

new_content=$(cat "HDD_BAY")
matched_content=$(echo "$result" | grep -oP '{[^}]+}')
replaced_content="${file_content//$matched_content/$new_content}" 
echo "$replaced_content" > "${FILE_JS}"
rm HDD_BAY


# s5 重新打包文件
gzip -c "${FILE_JS}" >"${FILE_GZ}"
chmod a+r "${FILE_JS}" "${FILE_GZ}"

# 刷新页面查看效果


