From c074062ad5afa6b9025baf1a1f8cd2afa6d01d95 Mon Sep 17 00:00:00 2001 From: Ing Date: Tue, 20 Jun 2023 01:32:24 +0800 Subject: [PATCH] mod update --- .../arpl/overlayfs/opt/arpl/lang/arpl.pot | 340 ++++++++------- .../arpl/overlayfs/opt/arpl/lang/zh_CN.mo | Bin 20866 -> 21347 bytes .../arpl/overlayfs/opt/arpl/lang/zh_CN.po | 328 +++++++------- files/board/arpl/overlayfs/opt/arpl/menu.sh | 408 +++++++++--------- 4 files changed, 568 insertions(+), 508 deletions(-) diff --git a/files/board/arpl/overlayfs/opt/arpl/lang/arpl.pot b/files/board/arpl/overlayfs/opt/arpl/lang/arpl.pot index 148613c5..c6d0a00f 100644 --- a/files/board/arpl/overlayfs/opt/arpl/lang/arpl.pot +++ b/files/board/arpl/overlayfs/opt/arpl/lang/arpl.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-06-15 22:36+0800\n" +"POT-Creation-Date: 2023-06-20 01:19+0800\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -30,7 +30,7 @@ msgid "DSM zImage changed" msgstr "" #: boot.sh:35 boot.sh:47 menu.sh:703 menu.sh:729 menu.sh:798 menu.sh:809 -#: menu.sh:838 menu.sh:851 menu.sh:858 menu.sh:1051 menu.sh:1149 +#: menu.sh:838 menu.sh:851 menu.sh:858 menu.sh:1063 menu.sh:1161 msgid "Error" msgstr "" @@ -77,35 +77,35 @@ msgstr "" msgid "Reboot to boot directly in DSM" msgstr "" -#: boot.sh:161 +#: boot.sh:162 msgid "Detected %s network cards, Waiting IP.(For reference only)" msgstr "" -#: boot.sh:168 init.sh:184 +#: boot.sh:169 init.sh:184 msgid "DOWN" msgstr "" -#: boot.sh:172 init.sh:188 +#: boot.sh:173 init.sh:188 msgid "ERROR" msgstr "" -#: boot.sh:178 +#: boot.sh:179 msgid "Access \\033[1;34mhttp://%s:5000\\033[0m to connect the DSM via web." msgstr "" -#: boot.sh:187 +#: boot.sh:188 msgid "Loading DSM kernel..." msgstr "" -#: boot.sh:191 +#: boot.sh:192 msgid "Warning, running kexec with --noefi param, strange things will happen!!" msgstr "" -#: boot.sh:196 +#: boot.sh:197 msgid "Booting..." msgstr "" -#: boot.sh:199 +#: boot.sh:200 msgid "" "[This interface will not be operational. Please use the http://find.synology." "com/ find DSM and connect.]" @@ -223,7 +223,7 @@ msgstr "" msgid "Reconfiguring Synoinfo, Addons and Modules" msgstr "" -#: menu.sh:209 menu.sh:328 menu.sh:461 menu.sh:593 menu.sh:1357 +#: menu.sh:209 menu.sh:328 menu.sh:461 menu.sh:593 menu.sh:1495 msgid "Choose a option" msgstr "" @@ -247,8 +247,8 @@ msgstr "" msgid "Download a external addon" msgstr "" -#: menu.sh:215 menu.sh:335 menu.sh:458 menu.sh:589 menu.sh:906 menu.sh:1363 -#: menu.sh:1630 +#: menu.sh:215 menu.sh:335 menu.sh:458 menu.sh:589 menu.sh:906 menu.sh:1502 +#: menu.sh:1650 msgid "Exit" msgstr "" @@ -317,7 +317,7 @@ msgid "File format not recognized!" msgstr "" #: menu.sh:316 menu.sh:346 menu.sh:361 menu.sh:372 menu.sh:385 menu.sh:391 -#: menu.sh:1610 +#: menu.sh:1630 msgid "Modules" msgstr "" @@ -458,7 +458,7 @@ msgstr "" msgid "Please enter a serial number " msgstr "" -#: menu.sh:512 menu.sh:550 menu.sh:1304 menu.sh:1581 +#: menu.sh:512 menu.sh:550 menu.sh:1316 menu.sh:1552 msgid "Alert" msgstr "" @@ -613,7 +613,7 @@ msgstr "" msgid "Addon %s not found!" msgstr "" -#: menu.sh:863 menu.sh:1648 +#: menu.sh:863 menu.sh:1668 msgid "Cleaning" msgstr "" @@ -630,7 +630,7 @@ msgid "Switch direct boot:" msgstr "" #: menu.sh:884 -msgid "boot IPs wait time':" +msgid "boot IPs wait time:" msgstr "" #: menu.sh:887 @@ -653,7 +653,7 @@ msgstr "" msgid "show pat download link" msgstr "" -#: menu.sh:894 menu.sh:987 menu.sh:1000 +#: menu.sh:894 menu.sh:994 menu.sh:1007 msgid "Allow downgrade installation" msgstr "" @@ -661,11 +661,11 @@ msgstr "" msgid "Format disk(s) # Without loader disk" msgstr "" -#: menu.sh:896 menu.sh:1056 menu.sh:1063 menu.sh:1069 menu.sh:1081 +#: menu.sh:896 menu.sh:1068 menu.sh:1075 menu.sh:1081 menu.sh:1093 msgid "Reset syno system password" msgstr "" -#: menu.sh:897 menu.sh:1090 menu.sh:1093 +#: menu.sh:897 menu.sh:1102 menu.sh:1105 msgid "Persistence of arpl modifications" msgstr "" @@ -681,15 +681,15 @@ msgstr "" msgid "Restore bootloader disk # test" msgstr "" -#: menu.sh:905 menu.sh:1213 menu.sh:1222 +#: menu.sh:905 menu.sh:1225 menu.sh:1234 msgid "Development tools" msgstr "" -#: menu.sh:908 menu.sh:1013 +#: menu.sh:908 menu.sh:1025 msgid "Advanced" msgstr "" -#: menu.sh:909 menu.sh:1633 +#: menu.sh:909 menu.sh:1653 msgid "Choose the option" msgstr "" @@ -697,322 +697,294 @@ msgstr "" msgid "Choose a waiting time(seconds)" msgstr "" -#: menu.sh:967 +#: menu.sh:974 msgid "\\nTotal of ports: %s\\n" msgstr "" -#: menu.sh:968 +#: menu.sh:975 msgid "" "\\nPorts with color \\Z1red\\Zn as DUMMY, color \\Z2\\Zbgreen\\Zn has drive " "connected." msgstr "" -#: menu.sh:969 +#: menu.sh:976 msgid "\\nRecommended value:" msgstr "" -#: menu.sh:970 +#: menu.sh:977 msgid "\\nDiskIdxMap:" msgstr "" -#: menu.sh:979 +#: menu.sh:986 msgid "*.pat download link" msgstr "" -#: menu.sh:984 +#: menu.sh:991 msgid "" "This feature will allow you to downgrade the installation by removing the " "VERSION file from the first partition of all disks.\\n" msgstr "" -#: menu.sh:985 +#: menu.sh:992 msgid "Therefore, please insert all disks before continuing.\\n" msgstr "" -#: menu.sh:986 menu.sh:1018 +#: menu.sh:993 menu.sh:1030 msgid "" "Warning:\\nThis operation is irreversible. Please backup important data. Do " "you want to continue?" msgstr "" -#: menu.sh:1001 +#: menu.sh:1008 msgid "Removing ..." msgstr "" -#: menu.sh:1002 +#: menu.sh:1009 msgid "Remove VERSION file for all disks completed." msgstr "" -#: menu.sh:1012 menu.sh:1017 menu.sh:1021 menu.sh:1032 +#: menu.sh:1024 menu.sh:1029 menu.sh:1033 menu.sh:1044 msgid "Format disk" msgstr "" -#: menu.sh:1022 +#: menu.sh:1034 msgid "" "Warning:\\nThe current hds is in raid, do you still want to format them?" msgstr "" -#: menu.sh:1033 +#: menu.sh:1045 msgid "Formatting ..." msgstr "" -#: menu.sh:1035 +#: menu.sh:1047 msgid "Formatting is complete." msgstr "" -#: menu.sh:1052 +#: menu.sh:1064 msgid "The installed Syno system not found in the currently inserted disks!" msgstr "" -#: menu.sh:1057 +#: menu.sh:1069 msgid "Choose a user name" msgstr "" -#: menu.sh:1064 +#: menu.sh:1076 msgid "Type a new password for user '%s'" msgstr "" -#: menu.sh:1069 +#: menu.sh:1081 msgid "Invalid password" msgstr "" -#: menu.sh:1082 +#: menu.sh:1094 msgid "Resetting ..." msgstr "" -#: menu.sh:1085 +#: menu.sh:1097 msgid "Password reset completed." msgstr "" -#: menu.sh:1091 menu.sh:1142 menu.sh:1195 +#: menu.sh:1103 menu.sh:1154 menu.sh:1207 msgid "" "Warning:\\nDo not terminate midway, otherwise it may cause damage to the " "arpl. Do you want to continue?" msgstr "" -#: menu.sh:1094 +#: menu.sh:1106 msgid "Persisting ..." msgstr "" -#: menu.sh:1103 +#: menu.sh:1115 msgid "Persisting is complete." msgstr "" -#: menu.sh:1108 menu.sh:1138 menu.sh:1171 +#: menu.sh:1120 menu.sh:1150 menu.sh:1183 menu.sh:1564 msgid "This feature is only available when accessed via web/ssh." msgstr "" -#: menu.sh:1112 +#: menu.sh:1124 msgid "" "Currently, only dts format files are supported. Please prepare and click to " "confirm uploading.\\n(saved in /mnt/p3/users/)" msgstr "" -#: menu.sh:1126 menu.sh:1131 +#: menu.sh:1138 menu.sh:1143 msgid "Custom dts file" msgstr "" -#: menu.sh:1127 +#: menu.sh:1139 msgid "Not a valid dts file, please try again!" msgstr "" -#: menu.sh:1132 +#: menu.sh:1144 msgid "A valid dts file, Automatically import at compile time." msgstr "" -#: menu.sh:1141 menu.sh:1144 +#: menu.sh:1153 menu.sh:1156 msgid "Backup bootloader disk" msgstr "" -#: menu.sh:1145 +#: menu.sh:1157 msgid "Backuping..." msgstr "" -#: menu.sh:1150 +#: menu.sh:1162 msgid "" "Failed to generate backup. There may be insufficient memory. Please clear " "the cache and try again!" msgstr "" -#: menu.sh:1157 +#: menu.sh:1169 msgid "Click on the address above to download." msgstr "" -#: menu.sh:1158 +#: menu.sh:1170 msgid "" "Please confirm the completion of the download before closing this window." msgstr "" -#: menu.sh:1159 +#: menu.sh:1171 msgid "backup.img.gz download link" msgstr "" -#: menu.sh:1165 +#: menu.sh:1177 msgid "backup is complete." msgstr "" -#: menu.sh:1174 menu.sh:1191 menu.sh:1194 menu.sh:1197 menu.sh:1205 +#: menu.sh:1186 menu.sh:1203 menu.sh:1206 menu.sh:1209 menu.sh:1217 msgid "Restore bootloader disk" msgstr "" -#: menu.sh:1175 +#: menu.sh:1187 msgid "" "Please upload the backup file.\\nCurrently, zip(github) and img.gz(backup) " "compressed file formats are supported." msgstr "" -#: menu.sh:1192 +#: menu.sh:1204 msgid "Not a valid .zip/.img.gz file, please try again!" msgstr "" -#: menu.sh:1198 +#: menu.sh:1210 msgid "Writing..." msgstr "" -#: menu.sh:1206 +#: menu.sh:1218 msgid "Restore bootloader disk with success to %s!\\nReboot?" msgstr "" -#: menu.sh:1214 +#: menu.sh:1226 msgid "" "This option only installs opkg package management, allowing you to install " "more tools for use and debugging. Do you want to continue?" msgstr "" -#: menu.sh:1223 +#: menu.sh:1235 msgid "opkg installing ..." msgstr "" -#: menu.sh:1225 +#: menu.sh:1237 msgid "" "opkg install is complete. Please reconnect to SSH/web, or execute 'source ~/." "bashrc'" msgstr "" -#: menu.sh:1235 menu.sh:1263 menu.sh:1270 +#: menu.sh:1247 menu.sh:1275 menu.sh:1282 msgid "Try recovery DSM" msgstr "" -#: menu.sh:1236 +#: menu.sh:1248 msgid "Trying to recovery a DSM installed system" msgstr "" -#: menu.sh:1257 +#: menu.sh:1269 msgid "Found a installation:\\nModel: %s\\nBuildnumber: %s" msgstr "" -#: menu.sh:1261 +#: menu.sh:1273 msgid "\\nSerial: %s" msgstr "" -#: menu.sh:1271 +#: menu.sh:1283 msgid "Unfortunately I couldn't mount the DSM partition!" msgstr "" -#: menu.sh:1279 +#: menu.sh:1291 msgid "Edit with caution" msgstr "" -#: menu.sh:1285 +#: menu.sh:1297 msgid "Invalid YAML format" msgstr "" -#: menu.sh:1305 +#: menu.sh:1317 msgid "Config changed, would you like to rebuild the loader?" msgstr "" -#: menu.sh:1317 menu.sh:1624 +#: menu.sh:1329 menu.sh:1644 msgid "Choose a language" msgstr "" -#: menu.sh:1330 +#: menu.sh:1342 msgid "Choose a layout" msgstr "" -#: menu.sh:1340 +#: menu.sh:1352 msgid "Choice a keymap" msgstr "" -#: menu.sh:1358 menu.sh:1368 menu.sh:1376 menu.sh:1382 menu.sh:1386 -#: menu.sh:1391 menu.sh:1397 menu.sh:1404 menu.sh:1413 menu.sh:1418 -#: menu.sh:1435 -msgid "Update arpl" +#: menu.sh:1369 menu.sh:1402 menu.sh:1453 menu.sh:1507 menu.sh:1515 +#: menu.sh:1523 menu.sh:1531 +msgid "Update %s" msgstr "" -#: menu.sh:1359 menu.sh:1443 menu.sh:1451 menu.sh:1457 menu.sh:1461 -#: menu.sh:1465 menu.sh:1469 menu.sh:1474 menu.sh:1485 -msgid "Update addons" -msgstr "" - -#: menu.sh:1360 menu.sh:1490 menu.sh:1498 menu.sh:1504 menu.sh:1508 -#: menu.sh:1512 menu.sh:1527 -msgid "Update modules" -msgstr "" - -#: menu.sh:1361 menu.sh:1532 menu.sh:1540 menu.sh:1546 menu.sh:1550 -#: menu.sh:1554 menu.sh:1558 menu.sh:1563 -msgid "Update LKMs" -msgstr "" - -#: menu.sh:1362 -msgid "Set proxy server" -msgstr "" - -#: menu.sh:1369 menu.sh:1444 menu.sh:1491 menu.sh:1533 +#: menu.sh:1372 msgid "Checking last version" msgstr "" -#: menu.sh:1377 menu.sh:1452 menu.sh:1499 menu.sh:1541 +#: menu.sh:1380 msgid "Error checking new version" msgstr "" -#: menu.sh:1383 menu.sh:1458 menu.sh:1505 menu.sh:1547 +#: menu.sh:1385 msgid "No new version. Actual version is %s\\nForce update?" msgstr "" -#: menu.sh:1387 -msgid "Downloading last version %s" +#: menu.sh:1389 +msgid "Downloading last version" msgstr "" -#: menu.sh:1392 -msgid "Error downloading update file" +#: menu.sh:1394 +msgid "Error downloading new version" msgstr "" -#: menu.sh:1398 +#: menu.sh:1404 menu.sh:1455 +msgid "Extracting last version" +msgstr "" + +#: menu.sh:1408 msgid "Error extracting update file" msgstr "" -#: menu.sh:1405 +#: menu.sh:1415 msgid "Checksum do not match!" msgstr "" -#: menu.sh:1414 +#: menu.sh:1424 msgid "" "The current version does not support upgrading to the latest update.zip. " "Please remake the bootloader disk!" msgstr "" -#: menu.sh:1419 +#: menu.sh:1429 msgid "Installing new files" msgstr "" -#: menu.sh:1436 +#: menu.sh:1446 msgid "Arpl updated with success to %s!\\nReboot?" msgstr "" -#: menu.sh:1462 menu.sh:1509 menu.sh:1551 -msgid "Downloading last version" -msgstr "" - -#: menu.sh:1466 -msgid "Error downloading new version" -msgstr "" - -#: menu.sh:1470 menu.sh:1559 -msgid "Extracting last version" -msgstr "" - -#: menu.sh:1475 +#: menu.sh:1461 msgid "Installing new addons" msgstr "" @@ -1020,74 +992,128 @@ msgstr "" msgid "Addons updated with success!" msgstr "" -#: menu.sh:1513 menu.sh:1555 -msgid "Error downloading last version" +#: menu.sh:1496 +msgid "Update arpl" msgstr "" -#: menu.sh:1528 -msgid "Modules updated with success!" +#: menu.sh:1497 +msgid "Update addons" msgstr "" -#: menu.sh:1564 -msgid "LKMs updated with success!" +#: menu.sh:1498 +msgid "Update modules" msgstr "" -#: menu.sh:1570 +#: menu.sh:1499 +msgid "Update LKMs" +msgstr "" + +#: menu.sh:1500 +msgid "Set proxy server" +msgstr "" + +#: menu.sh:1501 menu.sh:1590 menu.sh:1604 +msgid "Local upload" +msgstr "" + +#: menu.sh:1507 +msgid "arpl" +msgstr "" + +#: menu.sh:1515 +msgid "addons" +msgstr "" + +#: menu.sh:1523 +msgid "modules" +msgstr "" + +#: menu.sh:1531 +msgid "LKMs" +msgstr "" + +#: menu.sh:1541 msgid "Set Proxy Server" msgstr "" -#: menu.sh:1571 +#: menu.sh:1542 msgid "Please enter a proxy server url" msgstr "" -#: menu.sh:1582 +#: menu.sh:1553 msgid "Invalid proxy server url, continue?" msgstr "" -#: menu.sh:1605 -msgid "Choose a model" +#: menu.sh:1568 +msgid "" +"Please keep the attachment name consistent with the attachment name on " +"Github.\\n" msgstr "" -#: menu.sh:1607 -msgid "Choose a Build Number" +#: menu.sh:1569 +msgid "Upload update.zip will update arpl.\\n" msgstr "" -#: menu.sh:1609 -msgid "Addons" +#: menu.sh:1570 +msgid "Upload addons.zip will update Addons.\\n" msgstr "" -#: menu.sh:1611 -msgid "Cmdline menu" +#: menu.sh:1571 +msgid "Upload modules.zip will update Modules.\\n" msgstr "" -#: menu.sh:1612 -msgid "Synoinfo menu" +#: menu.sh:1572 +msgid "Upload rp-lkms.zip will update LKMs.\\n" msgstr "" -#: menu.sh:1615 -msgid "Advanced menu" -msgstr "" - -#: menu.sh:1618 -msgid "Build the loader" -msgstr "" - -#: menu.sh:1622 -msgid "Boot the loader" +#: menu.sh:1591 menu.sh:1605 +msgid "Not a valid file, please try again!" msgstr "" #: menu.sh:1625 -msgid "Choose a keymap" +msgid "Choose a model" msgstr "" #: menu.sh:1627 -msgid "Clean disk cache" +msgid "Choose a Build Number" msgstr "" #: menu.sh:1629 +msgid "Addons" +msgstr "" + +#: menu.sh:1631 +msgid "Cmdline menu" +msgstr "" + +#: menu.sh:1632 +msgid "Synoinfo menu" +msgstr "" + +#: menu.sh:1635 +msgid "Advanced menu" +msgstr "" + +#: menu.sh:1638 +msgid "Build the loader" +msgstr "" + +#: menu.sh:1642 +msgid "Boot the loader" +msgstr "" + +#: menu.sh:1645 +msgid "Choose a keymap" +msgstr "" + +#: menu.sh:1647 +msgid "Clean disk cache" +msgstr "" + +#: menu.sh:1649 msgid "Update menu" msgstr "" -#: menu.sh:1655 +#: menu.sh:1675 msgid "Call \\033[1;32mmenu.sh\\033[0m to return to menu" msgstr "" diff --git a/files/board/arpl/overlayfs/opt/arpl/lang/zh_CN.mo b/files/board/arpl/overlayfs/opt/arpl/lang/zh_CN.mo index 7c0cd9a088dcd0bdc8b01a55d5350c48cd692333..d8bc7e4ccad179040d316477d89144862cd11540 100644 GIT binary patch delta 6321 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 delta 5777 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 N@6Ae0_U=#J^l!MRpX>kt diff --git a/files/board/arpl/overlayfs/opt/arpl/lang/zh_CN.po b/files/board/arpl/overlayfs/opt/arpl/lang/zh_CN.po index 8473bad9..55998304 100644 --- a/files/board/arpl/overlayfs/opt/arpl/lang/zh_CN.po +++ b/files/board/arpl/overlayfs/opt/arpl/lang/zh_CN.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: arpl-i18n\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-06-15 22:36+0800\n" -"PO-Revision-Date: 2023-06-15 22:37+0800\n" +"POT-Creation-Date: 2023-06-20 01:19+0800\n" +"PO-Revision-Date: 2023-06-20 01:19+0800\n" "Last-Translator: ing \n" "Language-Team: Chinese (simplified) \n" "Language: zh_CN\n" @@ -29,7 +29,7 @@ msgid "DSM zImage changed" msgstr "DSM zImage 已更改" #: boot.sh:35 boot.sh:47 menu.sh:703 menu.sh:729 menu.sh:798 menu.sh:809 -#: menu.sh:838 menu.sh:851 menu.sh:858 menu.sh:1051 menu.sh:1149 +#: menu.sh:838 menu.sh:851 menu.sh:858 menu.sh:1063 menu.sh:1161 msgid "Error" msgstr "错误" @@ -76,35 +76,35 @@ msgstr "Cmdline:\\n" msgid "Reboot to boot directly in DSM" msgstr "重启并直接进入DSM引导" -#: boot.sh:161 +#: boot.sh:162 msgid "Detected %s network cards, Waiting IP.(For reference only)" msgstr "检测到 %s 个网卡, 获取 IP.(仅供参考)" -#: boot.sh:168 init.sh:184 +#: boot.sh:169 init.sh:184 msgid "DOWN" msgstr "卸载" -#: boot.sh:172 init.sh:188 +#: boot.sh:173 init.sh:188 msgid "ERROR" msgstr "错误" -#: boot.sh:178 +#: boot.sh:179 msgid "Access \\033[1;34mhttp://%s:5000\\033[0m to connect the DSM via web." msgstr "在浏览器中访问 \\033[1;34mhttp://%s:5000\\033[0m 链接 DSM." -#: boot.sh:187 +#: boot.sh:188 msgid "Loading DSM kernel..." msgstr "加载 DSM kernel..." -#: boot.sh:191 +#: boot.sh:192 msgid "Warning, running kexec with --noefi param, strange things will happen!!" msgstr "警告, 使用'--noefi'参数运行'kexec', 可能有不好的事情发生!!" -#: boot.sh:196 +#: boot.sh:197 msgid "Booting..." msgstr "引导中..." -#: boot.sh:199 +#: boot.sh:200 msgid "" "[This interface will not be operational. Please use the http://find.synology." "com/ find DSM and connect.]" @@ -222,7 +222,7 @@ msgstr "该版本仅支持 usb 启动, 请选择其他版本或者切换启动 msgid "Reconfiguring Synoinfo, Addons and Modules" msgstr "重新配置 Syninfo, 插件和模块" -#: menu.sh:209 menu.sh:328 menu.sh:461 menu.sh:593 menu.sh:1357 +#: menu.sh:209 menu.sh:328 menu.sh:461 menu.sh:593 menu.sh:1495 msgid "Choose a option" msgstr "设置" @@ -246,8 +246,8 @@ msgstr "显示所有可用插件" msgid "Download a external addon" msgstr "下载外部插件" -#: menu.sh:215 menu.sh:335 menu.sh:458 menu.sh:589 menu.sh:906 menu.sh:1363 -#: menu.sh:1630 +#: menu.sh:215 menu.sh:335 menu.sh:458 menu.sh:589 menu.sh:906 menu.sh:1502 +#: menu.sh:1650 msgid "Exit" msgstr "退出" @@ -316,7 +316,7 @@ msgid "File format not recognized!" msgstr "文件格式无法识别!" #: menu.sh:316 menu.sh:346 menu.sh:361 menu.sh:372 menu.sh:385 menu.sh:391 -#: menu.sh:1610 +#: menu.sh:1630 msgid "Modules" msgstr "模块" @@ -457,7 +457,7 @@ msgstr "选择要删除的参数" msgid "Please enter a serial number " msgstr "请输入SN " -#: menu.sh:512 menu.sh:550 menu.sh:1304 menu.sh:1581 +#: menu.sh:512 menu.sh:550 menu.sh:1316 menu.sh:1552 msgid "Alert" msgstr "警告" @@ -612,7 +612,7 @@ msgstr "拷贝文件: " msgid "Addon %s not found!" msgstr "插件 %s 未找到!" -#: menu.sh:863 menu.sh:1648 +#: menu.sh:863 menu.sh:1668 msgid "Cleaning" msgstr "清除中" @@ -652,7 +652,7 @@ msgstr "显示SATA(s) # 端口和驱动器" msgid "show pat download link" msgstr "当前pat下载链接" -#: menu.sh:894 menu.sh:987 menu.sh:1000 +#: menu.sh:894 menu.sh:994 menu.sh:1007 msgid "Allow downgrade installation" msgstr "允许降级安装" @@ -660,11 +660,11 @@ msgstr "允许降级安装" msgid "Format disk(s) # Without loader disk" msgstr "格式化磁盘(s) # 不含启动盘" -#: menu.sh:896 menu.sh:1056 menu.sh:1063 menu.sh:1069 menu.sh:1081 +#: menu.sh:896 menu.sh:1068 menu.sh:1075 menu.sh:1081 menu.sh:1093 msgid "Reset syno system password" msgstr "重置群晖系统密码" -#: menu.sh:897 menu.sh:1090 menu.sh:1093 +#: menu.sh:897 menu.sh:1102 menu.sh:1105 msgid "Persistence of arpl modifications" msgstr "持久化arpl的修改" @@ -680,15 +680,15 @@ msgstr "备份启动盘 # 测试" msgid "Restore bootloader disk # test" msgstr "恢复启动盘 # 测试" -#: menu.sh:905 menu.sh:1213 menu.sh:1222 +#: menu.sh:905 menu.sh:1225 menu.sh:1234 msgid "Development tools" msgstr "开发者工具" -#: menu.sh:908 menu.sh:1013 +#: menu.sh:908 menu.sh:1025 msgid "Advanced" msgstr "高级" -#: menu.sh:909 menu.sh:1633 +#: menu.sh:909 menu.sh:1653 msgid "Choose the option" msgstr "设置" @@ -696,322 +696,294 @@ msgstr "设置" msgid "Choose a waiting time(seconds)" msgstr "选择一个等待时间(秒)" -#: menu.sh:967 +#: menu.sh:974 msgid "\\nTotal of ports: %s\\n" msgstr "\\n端口总数: %s\\n" -#: menu.sh:968 +#: menu.sh:975 msgid "" "\\nPorts with color \\Z1red\\Zn as DUMMY, color \\Z2\\Zbgreen\\Zn has drive " "connected." msgstr "\\n\\Z1红色\\Zn 为模拟端口, \\Z2\\Zb绿色\\Zn 为已驱动的物理端口." -#: menu.sh:969 +#: menu.sh:976 msgid "\\nRecommended value:" msgstr "\\n建议值:" -#: menu.sh:970 +#: menu.sh:977 msgid "\\nDiskIdxMap:" msgstr "\\nDiskIdxMap:" -#: menu.sh:979 +#: menu.sh:986 msgid "*.pat download link" msgstr "*.pat 下载链接" -#: menu.sh:984 +#: menu.sh:991 msgid "" "This feature will allow you to downgrade the installation by removing the " "VERSION file from the first partition of all disks.\\n" msgstr "此功能通过删除所有磁盘的第一个分区的VERSION文件来允许你降级安装.\\n" -#: menu.sh:985 +#: menu.sh:992 msgid "Therefore, please insert all disks before continuing.\\n" msgstr "因此, 请插入所有磁盘后再进行操作.\\n" -#: menu.sh:986 menu.sh:1018 +#: menu.sh:993 menu.sh:1030 msgid "" "Warning:\\nThis operation is irreversible. Please backup important data. Do " "you want to continue?" msgstr "警告:\\n该操作不可逆, 请提前备份重要数据. 是否继续?" -#: menu.sh:1001 +#: menu.sh:1008 msgid "Removing ..." msgstr "删除中..." -#: menu.sh:1002 +#: menu.sh:1009 msgid "Remove VERSION file for all disks completed." msgstr "已移除所有磁盘的 VERSION 文件." -#: menu.sh:1012 menu.sh:1017 menu.sh:1021 menu.sh:1032 +#: menu.sh:1024 menu.sh:1029 menu.sh:1033 menu.sh:1044 msgid "Format disk" msgstr "格式化磁盘" -#: menu.sh:1022 +#: menu.sh:1034 msgid "" "Warning:\\nThe current hds is in raid, do you still want to format them?" msgstr "当前的硬盘处于raid中,是否仍要格式化?" -#: menu.sh:1033 +#: menu.sh:1045 msgid "Formatting ..." msgstr "格式化中..." -#: menu.sh:1035 +#: menu.sh:1047 msgid "Formatting is complete." msgstr "格式化完成." -#: menu.sh:1052 +#: menu.sh:1064 msgid "The installed Syno system not found in the currently inserted disks!" msgstr "未在当前插入的硬盘中找到已安装的syno系统!" -#: menu.sh:1057 +#: menu.sh:1069 msgid "Choose a user name" msgstr "选择一个用户" -#: menu.sh:1064 +#: menu.sh:1076 msgid "Type a new password for user '%s'" msgstr "输入用户 '%s' 的新密码" -#: menu.sh:1069 +#: menu.sh:1081 msgid "Invalid password" msgstr "无效密码" -#: menu.sh:1082 +#: menu.sh:1094 msgid "Resetting ..." msgstr "重置中" -#: menu.sh:1085 +#: menu.sh:1097 msgid "Password reset completed." msgstr "重置密码完成." -#: menu.sh:1091 menu.sh:1142 menu.sh:1195 +#: menu.sh:1103 menu.sh:1154 menu.sh:1207 msgid "" "Warning:\\nDo not terminate midway, otherwise it may cause damage to the " "arpl. Do you want to continue?" msgstr "警告:\\n请不要中途停止, 否则将导致arpl引导损毁, 是否继续?" -#: menu.sh:1094 +#: menu.sh:1106 msgid "Persisting ..." msgstr "持久化中..." -#: menu.sh:1103 +#: menu.sh:1115 msgid "Persisting is complete." msgstr "持久化完成." -#: menu.sh:1108 menu.sh:1138 menu.sh:1171 +#: menu.sh:1120 menu.sh:1150 menu.sh:1183 menu.sh:1564 msgid "This feature is only available when accessed via web/ssh." msgstr "此功能仅通过web/ssh访问时可用." -#: menu.sh:1112 +#: menu.sh:1124 msgid "" "Currently, only dts format files are supported. Please prepare and click to " "confirm uploading.\\n(saved in /mnt/p3/users/)" msgstr "目前, 只支持dts格式的文件, 请准备并点击确认上传.\\n(保存于 /mnt/p3/users/ 中)" -#: menu.sh:1126 menu.sh:1131 +#: menu.sh:1138 menu.sh:1143 msgid "Custom dts file" msgstr "自定义 dts 文件" -#: menu.sh:1127 +#: menu.sh:1139 msgid "Not a valid dts file, please try again!" msgstr "dts 文件无效, 请重试!" -#: menu.sh:1132 +#: menu.sh:1144 msgid "A valid dts file, Automatically import at compile time." msgstr "dts 文件有效, 将在编译时自动导入." -#: menu.sh:1141 menu.sh:1144 +#: menu.sh:1153 menu.sh:1156 msgid "Backup bootloader disk" msgstr "备份启动盘" -#: menu.sh:1145 +#: menu.sh:1157 msgid "Backuping..." msgstr "备份中..." -#: menu.sh:1150 +#: menu.sh:1162 msgid "" "Failed to generate backup. There may be insufficient memory. Please clear " "the cache and try again!" msgstr "生成备份失败, 可能内存不足, 请清除缓存重试!" -#: menu.sh:1157 +#: menu.sh:1169 msgid "Click on the address above to download." msgstr "点击上面的地址下载." -#: menu.sh:1158 +#: menu.sh:1170 msgid "" "Please confirm the completion of the download before closing this window." msgstr "请确认下载完成再关闭此窗口." -#: menu.sh:1159 +#: menu.sh:1171 msgid "backup.img.gz download link" msgstr "backup.img.gz 下载链接" -#: menu.sh:1165 +#: menu.sh:1177 msgid "backup is complete." msgstr "备份完成." -#: menu.sh:1174 menu.sh:1191 menu.sh:1194 menu.sh:1197 menu.sh:1205 +#: menu.sh:1186 menu.sh:1203 menu.sh:1206 menu.sh:1209 menu.sh:1217 msgid "Restore bootloader disk" msgstr "恢复启动盘" -#: menu.sh:1175 +#: menu.sh:1187 msgid "" "Please upload the backup file.\\nCurrently, zip(github) and img.gz(backup) " "compressed file formats are supported." msgstr "请上传备份的文件\\n当前支持 zip(github) 和 img.gz(backup) 格式." -#: menu.sh:1192 +#: menu.sh:1204 msgid "Not a valid .zip/.img.gz file, please try again!" msgstr "不是有效的.zip/.img.gz文件, 请重试!" -#: menu.sh:1198 +#: menu.sh:1210 msgid "Writing..." msgstr "写入中..." -#: menu.sh:1206 +#: menu.sh:1218 msgid "Restore bootloader disk with success to %s!\\nReboot?" msgstr "成功恢复启动盘到 %s!\\n重启?" -#: menu.sh:1214 +#: menu.sh:1226 msgid "" "This option only installs opkg package management, allowing you to install " "more tools for use and debugging. Do you want to continue?" msgstr "该选项仅安装 opkg 包管理工具, 使你能够安装更多的工具以供使用和调试, 是否继续?" -#: menu.sh:1223 +#: menu.sh:1235 msgid "opkg installing ..." msgstr "opkg 安装中 ..." -#: menu.sh:1225 +#: menu.sh:1237 msgid "" "opkg install is complete. Please reconnect to SSH/web, or execute 'source ~/." "bashrc'" msgstr "opkg 安装完成. 请重新链接 SSH/web, 或者执行 'source ~/.bashrc'" -#: menu.sh:1235 menu.sh:1263 menu.sh:1270 +#: menu.sh:1247 menu.sh:1275 menu.sh:1282 msgid "Try recovery DSM" msgstr "尝试恢复DSM系统" -#: menu.sh:1236 +#: menu.sh:1248 msgid "Trying to recovery a DSM installed system" msgstr "尝试恢复已安装的DSM系统中" -#: menu.sh:1257 +#: menu.sh:1269 msgid "Found a installation:\\nModel: %s\\nBuildnumber: %s" msgstr "找到已安装:\\n型号: %s\\n版本: %s" -#: menu.sh:1261 +#: menu.sh:1273 msgid "\\nSerial: %s" msgstr "\\nSN: %s" -#: menu.sh:1271 +#: menu.sh:1283 msgid "Unfortunately I couldn't mount the DSM partition!" msgstr "很遗憾, 我无法挂载DSM分区!" -#: menu.sh:1279 +#: menu.sh:1291 msgid "Edit with caution" msgstr "请谨慎编辑" -#: menu.sh:1285 +#: menu.sh:1297 msgid "Invalid YAML format" msgstr "无效的YAML格式" -#: menu.sh:1305 +#: menu.sh:1317 msgid "Config changed, would you like to rebuild the loader?" msgstr "配置已更改, 是否重新编译引导?" -#: menu.sh:1317 menu.sh:1624 +#: menu.sh:1329 menu.sh:1644 msgid "Choose a language" msgstr "选择语言" -#: menu.sh:1330 +#: menu.sh:1342 msgid "Choose a layout" msgstr "选择布局" -#: menu.sh:1340 +#: menu.sh:1352 msgid "Choice a keymap" msgstr "选择键盘" -#: menu.sh:1358 menu.sh:1368 menu.sh:1376 menu.sh:1382 menu.sh:1386 -#: menu.sh:1391 menu.sh:1397 menu.sh:1404 menu.sh:1413 menu.sh:1418 -#: menu.sh:1435 -msgid "Update arpl" -msgstr "更新arpl" +#: menu.sh:1369 menu.sh:1402 menu.sh:1453 menu.sh:1507 menu.sh:1515 +#: menu.sh:1523 menu.sh:1531 +msgid "Update %s" +msgstr "更新 %s" -#: menu.sh:1359 menu.sh:1443 menu.sh:1451 menu.sh:1457 menu.sh:1461 -#: menu.sh:1465 menu.sh:1469 menu.sh:1474 menu.sh:1485 -msgid "Update addons" -msgstr "更新插件" - -#: menu.sh:1360 menu.sh:1490 menu.sh:1498 menu.sh:1504 menu.sh:1508 -#: menu.sh:1512 menu.sh:1527 -msgid "Update modules" -msgstr "更新模块" - -#: menu.sh:1361 menu.sh:1532 menu.sh:1540 menu.sh:1546 menu.sh:1550 -#: menu.sh:1554 menu.sh:1558 menu.sh:1563 -msgid "Update LKMs" -msgstr "更新LKMs" - -#: menu.sh:1362 -msgid "Set proxy server" -msgstr "设置代理" - -#: menu.sh:1369 menu.sh:1444 menu.sh:1491 menu.sh:1533 +#: menu.sh:1372 msgid "Checking last version" msgstr "检测新版本中" -#: menu.sh:1377 menu.sh:1452 menu.sh:1499 menu.sh:1541 +#: menu.sh:1380 msgid "Error checking new version" msgstr "检测新版本错误" -#: menu.sh:1383 menu.sh:1458 menu.sh:1505 menu.sh:1547 +#: menu.sh:1385 msgid "No new version. Actual version is %s\\nForce update?" msgstr "没有新版本. 实际版本为 %s\\n强制更新?" -#: menu.sh:1387 -msgid "Downloading last version %s" -msgstr "下载新版本 %s 中" +#: menu.sh:1389 +msgid "Downloading last version" +msgstr "下载新版本中" -#: menu.sh:1392 -msgid "Error downloading update file" +#: menu.sh:1394 +msgid "Error downloading new version" msgstr "下载新版本错误" -#: menu.sh:1398 +#: menu.sh:1404 menu.sh:1455 +msgid "Extracting last version" +msgstr "解压新版本" + +#: menu.sh:1408 msgid "Error extracting update file" msgstr "更新文件解压错误" -#: menu.sh:1405 +#: menu.sh:1415 msgid "Checksum do not match!" msgstr "Checksum不匹配!" -#: menu.sh:1414 +#: menu.sh:1424 msgid "" "The current version does not support upgrading to the latest update.zip. " "Please remake the bootloader disk!" msgstr "当前版本不支持最新的update.zip升级, 请重新制作引导盘!" -#: menu.sh:1419 +#: menu.sh:1429 msgid "Installing new files" msgstr "安装更新中" -#: menu.sh:1436 +#: menu.sh:1446 msgid "Arpl updated with success to %s!\\nReboot?" msgstr "Arpl更新成功 %s!\\n重启?" -#: menu.sh:1462 menu.sh:1509 menu.sh:1551 -msgid "Downloading last version" -msgstr "下载新版本中" - -#: menu.sh:1466 -msgid "Error downloading new version" -msgstr "下载新版本错误" - -#: menu.sh:1470 menu.sh:1559 -msgid "Extracting last version" -msgstr "解压新版本" - -#: menu.sh:1475 +#: menu.sh:1461 msgid "Installing new addons" msgstr "安装新插件中" @@ -1019,74 +991,128 @@ msgstr "安装新插件中" msgid "Addons updated with success!" msgstr "插件更新成功!" -#: menu.sh:1513 menu.sh:1555 -msgid "Error downloading last version" -msgstr "下载新版本错误" +#: menu.sh:1496 +msgid "Update arpl" +msgstr "更新arpl" -#: menu.sh:1528 -msgid "Modules updated with success!" -msgstr "模块更新成功!" +#: menu.sh:1497 +msgid "Update addons" +msgstr "更新插件" -#: menu.sh:1564 -msgid "LKMs updated with success!" -msgstr "LKMs更新成功!" +#: menu.sh:1498 +msgid "Update modules" +msgstr "更新模块" -#: menu.sh:1570 +#: menu.sh:1499 +msgid "Update LKMs" +msgstr "更新LKMs" + +#: menu.sh:1500 +msgid "Set proxy server" +msgstr "设置代理" + +#: menu.sh:1501 menu.sh:1590 menu.sh:1604 +msgid "Local upload" +msgstr "本地上传" + +#: menu.sh:1507 +msgid "arpl" +msgstr "arpl" + +#: menu.sh:1515 +msgid "addons" +msgstr "插件" + +#: menu.sh:1523 +msgid "modules" +msgstr "模块" + +#: menu.sh:1531 +msgid "LKMs" +msgstr "LKMs" + +#: menu.sh:1541 msgid "Set Proxy Server" msgstr "设置代理" -#: menu.sh:1571 +#: menu.sh:1542 msgid "Please enter a proxy server url" msgstr "请输入代理服务器url" -#: menu.sh:1582 +#: menu.sh:1553 msgid "Invalid proxy server url, continue?" msgstr "无效的代理服务器url,是否继续?" -#: menu.sh:1605 +#: menu.sh:1568 +msgid "" +"Please keep the attachment name consistent with the attachment name on " +"Github.\\n" +msgstr "请保持附件名称与 github 上附件名称一致.\\n" + +#: menu.sh:1569 +msgid "Upload update.zip will update arpl.\\n" +msgstr "上传 update.zip 将更新 arpl.\\n" + +#: menu.sh:1570 +msgid "Upload addons.zip will update Addons.\\n" +msgstr "上传 addons.zip 将更新 插件.\\n" + +#: menu.sh:1571 +msgid "Upload modules.zip will update Modules.\\n" +msgstr "上传 modules.zip 将更新 模块.\\n" + +#: menu.sh:1572 +msgid "Upload rp-lkms.zip will update LKMs.\\n" +msgstr "上传 rp-lkms.zip 将更新 LKMs.\\n" + +#: menu.sh:1591 menu.sh:1605 +msgid "Not a valid file, please try again!" +msgstr "不是有效的文件, 请重试!" + +#: menu.sh:1625 msgid "Choose a model" msgstr "选择型号" -#: menu.sh:1607 +#: menu.sh:1627 msgid "Choose a Build Number" msgstr "选择版本" -#: menu.sh:1609 +#: menu.sh:1629 msgid "Addons" msgstr "插件" -#: menu.sh:1611 +#: menu.sh:1631 msgid "Cmdline menu" msgstr "设置Cmdline" -#: menu.sh:1612 +#: menu.sh:1632 msgid "Synoinfo menu" msgstr "设置Synoinfo" -#: menu.sh:1615 +#: menu.sh:1635 msgid "Advanced menu" msgstr "高级设置" -#: menu.sh:1618 +#: menu.sh:1638 msgid "Build the loader" msgstr "编译引导" -#: menu.sh:1622 +#: menu.sh:1642 msgid "Boot the loader" msgstr "启动" -#: menu.sh:1625 +#: menu.sh:1645 msgid "Choose a keymap" msgstr "选择键盘" -#: menu.sh:1627 +#: menu.sh:1647 msgid "Clean disk cache" msgstr "清除磁盘缓存" -#: menu.sh:1629 +#: menu.sh:1649 msgid "Update menu" msgstr "更新" -#: menu.sh:1655 +#: menu.sh:1675 msgid "Call \\033[1;32mmenu.sh\\033[0m to return to menu" msgstr "执行 \\033[1;32mmenu.sh\\033[0m 重新进入设置菜单" diff --git a/files/board/arpl/overlayfs/opt/arpl/menu.sh b/files/board/arpl/overlayfs/opt/arpl/menu.sh index bcaa13cb..81f453a9 100755 --- a/files/board/arpl/overlayfs/opt/arpl/menu.sh +++ b/files/board/arpl/overlayfs/opt/arpl/menu.sh @@ -1122,13 +1122,13 @@ function advancedMenu() { fi dialog --backtitle "`backtitle`" --colors --aspect 18 \ --msgbox "$(TEXT "Currently, only dts format files are supported. Please prepare and click to confirm uploading.\n(saved in /mnt/p3/users/)")" 0 0 - TMP_PATH=/tmp/users - rm -rf ${TMP_PATH} - mkdir -p ${TMP_PATH} - pushd ${TMP_PATH} + TMP_UP_PATH=/tmp/users + rm -rf ${TMP_UP_PATH} + mkdir -p ${TMP_UP_PATH} + pushd ${TMP_UP_PATH} rz -be for F in `ls -A`; do - USER_FILE=${TMP_PATH}/${F} + USER_FILE=${TMP_UP_PATH}/${F} dtc -q -I dts -O dtb ${F} > test.dtb RET=$? break @@ -1187,19 +1187,19 @@ function advancedMenu() { --yesno "$(TEXT "Please upload the backup file.\nCurrently, zip(github) and img.gz(backup) compressed file formats are supported.")" 0 0 [ $? -ne 0 ] && return IFTOOL="" - TMP_PATH=/tmp/users - rm -rf ${TMP_PATH} - mkdir -p ${TMP_PATH} - pushd ${TMP_PATH} + TMP_UP_PATH=/tmp/users + rm -rf ${TMP_UP_PATH} + mkdir -p ${TMP_UP_PATH} + pushd ${TMP_UP_PATH} rz -be for F in `ls -A`; do USER_FILE="${F}" - [ "${F##*.}" = "zip" -a `unzip -l "${TMP_PATH}/${USER_FILE}" | grep -c "\.img$"` -eq 1 ] && IFTOOL="zip" + [ "${F##*.}" = "zip" -a `unzip -l "${TMP_UP_PATH}/${USER_FILE}" | grep -c "\.img$"` -eq 1 ] && IFTOOL="zip" [ "${F##*.}" = "gz" -a "${F#*.}" = "img.gz" ] && IFTOOL="gzip" break done popd - if [ -z "${IFTOOL}" -o -z "${TMP_PATH}/${USER_FILE}" ]; then + if [ -z "${IFTOOL}" -o -z "${TMP_UP_PATH}/${USER_FILE}" ]; then dialog --backtitle "`backtitle`" --title "$(TEXT "Restore bootloader disk")" --aspect 18 \ --msgbox "`printf "$(TEXT "Not a valid .zip/.img.gz file, please try again!")" "${USER_FILE}"`" 0 0 else @@ -1210,9 +1210,9 @@ function advancedMenu() { --infobox "$(TEXT "Writing...")" 0 0 umount /mnt/p1 /mnt/p2 /mnt/p3 if [ "${IFTOOL}" = "zip" ]; then - unzip -p "${TMP_PATH}/${USER_FILE}" | dd of="${LOADER_DISK}" bs=1M conv=fsync + unzip -p "${TMP_UP_PATH}/${USER_FILE}" | dd of="${LOADER_DISK}" bs=1M conv=fsync elif [ "${IFTOOL}" = "gzip" ]; then - gzip -dc "${TMP_PATH}/${USER_FILE}" | dd of="${LOADER_DISK}" bs=1M conv=fsync + gzip -dc "${TMP_UP_PATH}/${USER_FILE}" | dd of="${LOADER_DISK}" bs=1M conv=fsync fi dialog --backtitle "`backtitle`" --title "$(TEXT "Restore bootloader disk")" --aspect 18 \ --yesno "`printf "$(TEXT "Restore bootloader disk with success to %s!\nReboot?")" "${USER_FILE}"`" 0 0 @@ -1360,6 +1360,132 @@ function keymapMenu() { loadkeys /usr/share/keymaps/i386/${LAYOUT}/${KEYMAP}.map.gz } +# 1 - ext name +# 2 - current version +# 3 - repo url +# 4 - attachment name +function downloadExts() { + PROXY="`readConfigKey "proxy" "${USER_CONFIG_FILE}"`"; [ -n "${PROXY}" ] && [[ "${PROXY: -1}" != "/" ]] && PROXY="${PROXY}/" + T="`printf "$(TEXT "Update %s")" "${1}"`" + + dialog --backtitle "`backtitle`" --title "${T}" --aspect 18 \ + --infobox "$(TEXT "Checking last version")" 0 0 + # TAG=`curl -skL "${PROXY}https://api.github.com/repos/wjz304/arpl-addons/releases/latest" | grep "tag_name" | awk '{print substr($2, 2, length($2)-3)}'` + # In the absence of authentication, the default API access count for GitHub is 60 per hour, so removing the use of api.github.com + LATESTURL="`curl -skL -w %{url_effective} -o /dev/null "${PROXY}${3}/releases/latest"`" + TAG="${LATESTURL##*/}" + [ "${TAG:0:1}" = "v" ] && TAG="${TAG:1}" + if [ -z "${TAG}" ]; then + dialog --backtitle "`backtitle`" --title "${T}" --aspect 18 \ + --msgbox "$(TEXT "Error checking new version")" 0 0 + return 1 + fi + if [ "${2}" = "${TAG}" ]; then + dialog --backtitle "`backtitle`" --title "${T}" --aspect 18 \ + --yesno "`printf "$(TEXT "No new version. Actual version is %s\nForce update?")" "${2}"`" 0 0 + [ $? -ne 0 ] && return 1 + fi + dialog --backtitle "`backtitle`" --title "${T}" --aspect 18 \ + --infobox "$(TEXT "Downloading last version")" 0 0 + rm -f "/tmp/${4}.zip" + STATUS=`curl -kL -w "%{http_code}" "${PROXY}${3}/releases/download/${TAG}/${4}.zip" -o "/tmp/${4}.zip"` + if [ $? -ne 0 -o ${STATUS} -ne 200 ]; then + dialog --backtitle "`backtitle`" --title "${T}" --aspect 18 \ + --msgbox "$(TEXT "Error downloading new version")" 0 0 + return 1 + fi + return 0 +} + +# 1 - ext name +function updateArpl() { + T="`printf "$(TEXT "Update %s")" "${1}"`" + dialog --backtitle "`backtitle`" --title "${T}" --aspect 18 \ + --infobox "$(TEXT "Extracting last version")" 0 0 + unzip -oq /tmp/update.zip -d /tmp + if [ $? -ne 0 ]; then + dialog --backtitle "`backtitle`" --title "${T}" --aspect 18 \ + --msgbox "$(TEXT "Error extracting update file")" 0 0 + continue + fi + # Check checksums + (cd /tmp && sha256sum --status -c sha256sum) + if [ $? -ne 0 ]; then + dialog --backtitle "`backtitle`" --title "${T}" --aspect 18 \ + --msgbox "$(TEXT "Checksum do not match!")" 0 0 + continue + fi + # Check conditions + if [ -f "/tmp/update-check.sh" ]; then + chmod +x /tmp/update-check.sh + /tmp/update-check.sh + if [ $? -ne 0 ]; then + dialog --backtitle "`backtitle`" --title "${T}" --aspect 18 \ + --msgbox "$(TEXT "The current version does not support upgrading to the latest update.zip. Please remake the bootloader disk!")" 0 0 + continue + fi + fi + dialog --backtitle "`backtitle`" --title "${T}" --aspect 18 \ + --infobox "$(TEXT "Installing new files")" 0 0 + # Process update-list.yml + while read F; do + [ -f "${F}" ] && rm -f "${F}" + [ -d "${F}" ] && rm -Rf "${F}" + done < <(readConfigArray "remove" "/tmp/update-list.yml") + while IFS=': ' read KEY VALUE; do + if [ "${KEY: -1}" = "/" ]; then + rm -Rf "${VALUE}" + mkdir -p "${VALUE}" + tar -zxf "/tmp/`basename "${KEY}"`.tgz" -C "${VALUE}" + else + mkdir -p "`dirname "${VALUE}"`" + mv "/tmp/`basename "${KEY}"`" "${VALUE}" + fi + done < <(readConfigMap "replace" "/tmp/update-list.yml") + dialog --backtitle "`backtitle`" --title "${T}" --aspect 18 \ + --yesno "`printf "$(TEXT "Arpl updated with success to %s!\nReboot?")" "${TAG}"`" 0 0 + [ $? -ne 0 ] && continue + arpl-reboot.sh config +} + +# 1 - ext name +function updateExts() { + T="`printf "$(TEXT "Update %s")" "${1}"`" + dialog --backtitle "`backtitle`" --title "${T}" --aspect 18 \ + --infobox "$(TEXT "Extracting last version")" 0 0 + if [ "${1}" = "addons" ]; then + rm -rf /tmp/addons + mkdir -p /tmp/addons + unzip /tmp/addons.zip -d /tmp/addons >/dev/null 2>&1 + dialog --backtitle "`backtitle`" --title "${T}" --aspect 18 \ + --infobox "$(TEXT "Installing new addons")" 0 0 + rm -Rf "${ADDONS_PATH}/"* + [ -f /tmp/addons/VERSION ] && cp -f /tmp/addons/VERSION ${ADDONS_PATH}/ + for PKG in `ls /tmp/addons/*.addon`; do + ADDON=`basename ${PKG} | sed 's|.addon||'` + rm -rf "${ADDONS_PATH}/${ADDON}" + mkdir -p "${ADDONS_PATH}/${ADDON}" + tar -xaf "${PKG}" -C "${ADDONS_PATH}/${ADDON}" >/dev/null 2>&1 + done + elif [ "${1}" = "modules" ]; then + rm "${MODULES_PATH}/"* + unzip /tmp/modules.zip -d "${MODULES_PATH}" >/dev/null 2>&1 + # Rebuild modules if model/buildnumber is selected + if [ -n "${PLATFORM}" -a -n "${KVER}" ]; then + writeConfigKey "modules" "{}" "${USER_CONFIG_FILE}" + while read ID DESC; do + writeConfigKey "modules.${ID}" "" "${USER_CONFIG_FILE}" + done < <(getAllModules "${PLATFORM}" "${KVER}") + fi + elif [ "${1}" = "LKMs" ]; then + rm -rf "${LKM_PATH}/"* + unzip /tmp/rp-lkms.zip -d "${LKM_PATH}" >/dev/null 2>&1 + fi + DIRTY=1 + dialog --backtitle "`backtitle`" --title "${T}" --aspect 18 \ + --msgbox "$(TEXT "Addons updated with success!")" 0 0 +} + ############################################################################### function updateMenu() { PLATFORM="`readModelKey "${MODEL}" "platform"`" @@ -1372,208 +1498,41 @@ function updateMenu() { m "$(TEXT "Update modules")" \ l "$(TEXT "Update LKMs")" \ p "$(TEXT "Set proxy server")" \ + u "$(TEXT "Local upload")" \ e "$(TEXT "Exit")" \ 2>${TMP_PATH}/resp [ $? -ne 0 ] && return case "`<${TMP_PATH}/resp`" in a) - dialog --backtitle "`backtitle`" --title "$(TEXT "Update arpl")" --aspect 18 \ - --infobox "$(TEXT "Checking last version")" 0 0 - # TAG="`curl -skL "${PROXY}https://api.github.com/repos/wjz304/arpl-i18n/releases/latest" | grep "tag_name" | awk '{print substr($2, 2, length($2)-3)}'`" - # In the absence of authentication, the default API access count for GitHub is 60 per hour, so removing the use of api.github.com - LATESTURL="`curl -skL -w %{url_effective} -o /dev/null "${PROXY}https://github.com/wjz304/arpl-i18n/releases/latest"`" - TAG="${LATESTURL##*/}" - [ "${TAG:0:1}" = "v" ] && TAG="${TAG:1}" - if [ -z "${TAG}" ]; then - dialog --backtitle "`backtitle`" --title "$(TEXT "Update arpl")" --aspect 18 \ - --msgbox "$(TEXT "Error checking new version")" 0 0 - continue - fi - ACTUALVERSION="${ARPL_VERSION}" - if [ "${ACTUALVERSION}" = "${TAG}" ]; then - dialog --backtitle "`backtitle`" --title "$(TEXT "Update arpl")" --aspect 18 \ - --yesno "`printf "$(TEXT "No new version. Actual version is %s\nForce update?")" "${ACTUALVERSION}"`" 0 0 - [ $? -ne 0 ] && continue - fi - dialog --backtitle "`backtitle`" --title "$(TEXT "Update arpl")" --aspect 18 \ - --infobox "`printf "$(TEXT "Downloading last version %s")" "${TAG}"`" 0 0 - # Download update file - STATUS=`curl -kL -w "%{http_code}" "${PROXY}https://github.com/wjz304/arpl-i18n/releases/download/${TAG}/update.zip" -o "/tmp/update.zip"` - if [ $? -ne 0 -o ${STATUS} -ne 200 ]; then - dialog --backtitle "`backtitle`" --title "$(TEXT "Update arpl")" --aspect 18 \ - --msgbox "$(TEXT "Error downloading update file")" 0 0 - continue - fi - unzip -oq /tmp/update.zip -d /tmp - if [ $? -ne 0 ]; then - dialog --backtitle "`backtitle`" --title "$(TEXT "Update arpl")" --aspect 18 \ - --msgbox "$(TEXT "Error extracting update file")" 0 0 - continue - fi - # Check checksums - (cd /tmp && sha256sum --status -c sha256sum) - if [ $? -ne 0 ]; then - dialog --backtitle "`backtitle`" --title "$(TEXT "Update arpl")" --aspect 18 \ - --msgbox "$(TEXT "Checksum do not match!")" 0 0 - continue - fi - # Check conditions - if [ -f "/tmp/update-check.sh" ]; then - chmod +x /tmp/update-check.sh - /tmp/update-check.sh - if [ $? -ne 0 ]; then - dialog --backtitle "`backtitle`" --title "$(TEXT "Update arpl")" --aspect 18 \ - --msgbox "$(TEXT "The current version does not support upgrading to the latest update.zip. Please remake the bootloader disk!")" 0 0 - continue - fi - fi - dialog --backtitle "`backtitle`" --title "$(TEXT "Update arpl")" --aspect 18 \ - --infobox "$(TEXT "Installing new files")" 0 0 - # Process update-list.yml - while read F; do - [ -f "${F}" ] && rm -f "${F}" - [ -d "${F}" ] && rm -Rf "${F}" - done < <(readConfigArray "remove" "/tmp/update-list.yml") - while IFS=': ' read KEY VALUE; do - if [ "${KEY: -1}" = "/" ]; then - rm -Rf "${VALUE}" - mkdir -p "${VALUE}" - tar -zxf "/tmp/`basename "${KEY}"`.tgz" -C "${VALUE}" - else - mkdir -p "`dirname "${VALUE}"`" - mv "/tmp/`basename "${KEY}"`" "${VALUE}" - fi - done < <(readConfigMap "replace" "/tmp/update-list.yml") - dialog --backtitle "`backtitle`" --title "$(TEXT "Update arpl")" --aspect 18 \ - --yesno "`printf "$(TEXT "Arpl updated with success to %s!\nReboot?")" "${TAG}"`" 0 0 + T="`printf "$(TEXT "Update %s")" "$(TEXT "arpl")"`" + CURVER="${ARPL_VERSION:-0}" + downloadExts "arpl" ${CURVER} "https://github.com/wjz304/arpl-i18n" "update" [ $? -ne 0 ] && continue - arpl-reboot.sh config - exit + updateArpl "arpl" ;; d) - dialog --backtitle "`backtitle`" --title "$(TEXT "Update addons")" --aspect 18 \ - --infobox "$(TEXT "Checking last version")" 0 0 - # TAG=`curl -skL "${PROXY}https://api.github.com/repos/wjz304/arpl-addons/releases/latest" | grep "tag_name" | awk '{print substr($2, 2, length($2)-3)}'` - # In the absence of authentication, the default API access count for GitHub is 60 per hour, so removing the use of api.github.com - LATESTURL="`curl -skL -w %{url_effective} -o /dev/null "${PROXY}https://github.com/wjz304/arpl-addons/releases/latest"`" - TAG="${LATESTURL##*/}" - [ "${TAG:0:1}" = "v" ] && TAG="${TAG:1}" - if [ -z "${TAG}" ]; then - dialog --backtitle "`backtitle`" --title "$(TEXT "Update addons")" --aspect 18 \ - --msgbox "$(TEXT "Error checking new version")" 0 0 - continue - fi - ACTUALVERSION="`cat "/mnt/p3/addons/VERSION" 2>/dev/null`" - if [ "${ACTUALVERSION}" = "${TAG}" ]; then - dialog --backtitle "`backtitle`" --title "$(TEXT "Update addons")" --aspect 18 \ - --yesno "`printf "$(TEXT "No new version. Actual version is %s\nForce update?")" "${ACTUALVERSION}"`" 0 0 - [ $? -ne 0 ] && continue - fi - dialog --backtitle "`backtitle`" --title "$(TEXT "Update addons")" --aspect 18 \ - --infobox "$(TEXT "Downloading last version")" 0 0 - STATUS=`curl -kL -w "%{http_code}" "${PROXY}https://github.com/wjz304/arpl-addons/releases/download/${TAG}/addons.zip" -o "/tmp/addons.zip"` - if [ $? -ne 0 -o ${STATUS} -ne 200 ]; then - dialog --backtitle "`backtitle`" --title "$(TEXT "Update addons")" --aspect 18 \ - --msgbox "$(TEXT "Error downloading new version")" 0 0 - continue - fi - dialog --backtitle "`backtitle`" --title "$(TEXT "Update addons")" --aspect 18 \ - --infobox "$(TEXT "Extracting last version")" 0 0 - rm -rf /tmp/addons - mkdir -p /tmp/addons - unzip /tmp/addons.zip -d /tmp/addons >/dev/null 2>&1 - dialog --backtitle "`backtitle`" --title "$(TEXT "Update addons")" --aspect 18 \ - --infobox "$(TEXT "Installing new addons")" 0 0 - rm -Rf "${ADDONS_PATH}/"* - [ -f /tmp/addons/VERSION ] && cp -f /tmp/addons/VERSION ${ADDONS_PATH}/ - for PKG in `ls /tmp/addons/*.addon`; do - ADDON=`basename ${PKG} | sed 's|.addon||'` - rm -rf "${ADDONS_PATH}/${ADDON}" - mkdir -p "${ADDONS_PATH}/${ADDON}" - tar -xaf "${PKG}" -C "${ADDONS_PATH}/${ADDON}" >/dev/null 2>&1 - done - DIRTY=1 - dialog --backtitle "`backtitle`" --title "$(TEXT "Update addons")" --aspect 18 \ - --msgbox "$(TEXT "Addons updated with success!")" 0 0 + T="`printf "$(TEXT "Update %s")" "$(TEXT "addons")"`" + CURVER="`cat "/mnt/p3/addons/VERSION" 2>/dev/null`" + downloadExts "addons" "${CURVER:-0}" "https://github.com/wjz304/arpl-addons" "addons" + [ $? -ne 0 ] && continue + updateExts "addons" ;; m) - dialog --backtitle "`backtitle`" --title "$(TEXT "Update modules")" --aspect 18 \ - --infobox "$(TEXT "Checking last version")" 0 0 - # TAG=`curl -skL "${PROXY}https://api.github.com/repos/wjz304/arpl-modules/releases/latest" | grep "tag_name" | awk '{print substr($2, 2, length($2)-3)}'` - # In the absence of authentication, the default API access count for GitHub is 60 per hour, so removing the use of api.github.com - LATESTURL="`curl -skL -w %{url_effective} -o /dev/null "${PROXY}https://github.com/wjz304/arpl-modules/releases/latest"`" - TAG="${LATESTURL##*/}" - [ "${TAG:0:1}" = "v" ] && TAG="${TAG:1}" - if [ -z "${TAG}" ]; then - dialog --backtitle "`backtitle`" --title "$(TEXT "Update modules")" --aspect 18 \ - --msgbox "$(TEXT "Error checking new version")" 0 0 - continue - fi - ACTUALVERSION="`cat "/mnt/p3/modules/VERSION" 2>/dev/null`" - if [ "${ACTUALVERSION}" = "${TAG}" ]; then - dialog --backtitle "`backtitle`" --title "$(TEXT "Update modules")" --aspect 18 \ - --yesno "`printf "$(TEXT "No new version. Actual version is %s\nForce update?")" "${ACTUALVERSION}"`" 0 0 - [ $? -ne 0 ] && continue - fi - dialog --backtitle "`backtitle`" --title "$(TEXT "Update modules")" --aspect 18 \ - --infobox "$(TEXT "Downloading last version")" 0 0 - STATUS=`curl -kL -w "%{http_code}" "${PROXY}https://github.com/wjz304/arpl-modules/releases/download/${TAG}/modules.zip" -o "/tmp/modules.zip"` - if [ $? -ne 0 -o ${STATUS} -ne 200 ]; then - dialog --backtitle "`backtitle`" --title "$(TEXT "Update modules")" --aspect 18 \ - --msgbox "$(TEXT "Error downloading last version")" 0 0 - continue - fi - rm "${MODULES_PATH}/"* - unzip /tmp/modules.zip -d "${MODULES_PATH}" >/dev/null 2>&1 - - # Rebuild modules if model/buildnumber is selected - if [ -n "${PLATFORM}" -a -n "${KVER}" ]; then - writeConfigKey "modules" "{}" "${USER_CONFIG_FILE}" - while read ID DESC; do - writeConfigKey "modules.${ID}" "" "${USER_CONFIG_FILE}" - done < <(getAllModules "${PLATFORM}" "${KVER}") - fi - DIRTY=1 - dialog --backtitle "`backtitle`" --title "$(TEXT "Update modules")" --aspect 18 \ - --msgbox "$(TEXT "Modules updated with success!")" 0 0 + T="`printf "$(TEXT "Update %s")" "$(TEXT "modules")"`" + CURVER="`cat "/mnt/p3/modules/VERSION" 2>/dev/null`" + downloadExts "modules" "${CURVER:-0}" "https://github.com/wjz304/arpl-modules" "modules" + [ $? -ne 0 ] && continue + updateExts "modules" ;; l) - dialog --backtitle "`backtitle`" --title "$(TEXT "Update LKMs")" --aspect 18 \ - --infobox "$(TEXT "Checking last version")" 0 0 - # TAG=`curl -skL "${PROXY}https://api.github.com/repos/wjz304/redpill-lkm/releases/latest" | grep "tag_name" | awk '{print substr($2, 2, length($2)-3)}'` - # In the absence of authentication, the default API access count for GitHub is 60 per hour, so removing the use of api.github.com - LATESTURL="`curl -skL -w %{url_effective} -o /dev/null "${PROXY}https://github.com/wjz304/redpill-lkm/releases/latest"`" - TAG="${LATESTURL##*/}" - [ "${TAG:0:1}" = "v" ] && TAG="${TAG:1}" - if [ -z "${TAG}" ]; then - dialog --backtitle "`backtitle`" --title "$(TEXT "Update LKMs")" --aspect 18 \ - --msgbox "$(TEXT "Error checking new version")" 0 0 - continue - fi - ACTUALVERSION="`cat "/mnt/p3/lkms/VERSION" 2>/dev/null`" - if [ "${ACTUALVERSION}" = "${TAG}" ]; then - dialog --backtitle "`backtitle`" --title "$(TEXT "Update LKMs")" --aspect 18 \ - --yesno "`printf "$(TEXT "No new version. Actual version is %s\nForce update?")" "${ACTUALVERSION}"`" 0 0 - [ $? -ne 0 ] && continue - fi - dialog --backtitle "`backtitle`" --title "$(TEXT "Update LKMs")" --aspect 18 \ - --infobox "$(TEXT "Downloading last version")" 0 0 - STATUS=`curl -kL -w "%{http_code}" "${PROXY}https://github.com/wjz304/redpill-lkm/releases/download/${TAG}/rp-lkms.zip" -o "/tmp/rp-lkms.zip"` - if [ $? -ne 0 -o ${STATUS} -ne 200 ]; then - dialog --backtitle "`backtitle`" --title "$(TEXT "Update LKMs")" --aspect 18 \ - --msgbox "$(TEXT "Error downloading last version")" 0 0 - continue - fi - dialog --backtitle "`backtitle`" --title "$(TEXT "Update LKMs")" --aspect 18 \ - --infobox "$(TEXT "Extracting last version")" 0 0 - rm -rf "${LKM_PATH}/"* - unzip /tmp/rp-lkms.zip -d "${LKM_PATH}" >/dev/null 2>&1 - DIRTY=1 - dialog --backtitle "`backtitle`" --title "$(TEXT "Update LKMs")" --aspect 18 \ - --msgbox "$(TEXT "LKMs updated with success!")" 0 0 + T="`printf "$(TEXT "Update %s")" "$(TEXT "LKMs")"`" + CURVER="`cat "/mnt/p3/lkms/VERSION" 2>/dev/null`" + downloadExts "LKMs" "${CURVER:-0}" "https://github.com/wjz304/redpill-lkm" "rp-lkms" + [ $? -ne 0 ] && continue + updateExts "LKMs" ;; p) @@ -1598,6 +1557,55 @@ function updateMenu() { done [ ${RET} -eq 0 ] && writeConfigKey "proxy" "${PROXY}" "${USER_CONFIG_FILE}" ;; + + u) + if ! tty | grep -q "/dev/pts"; then + dialog --backtitle "`backtitle`" --colors --aspect 18 \ + --msgbox "$(TEXT "This feature is only available when accessed via web/ssh.")" 0 0 + return + fi + MSG="" + MSG+="$(TEXT "Please keep the attachment name consistent with the attachment name on Github.\n")" + MSG+="$(TEXT "Upload update.zip will update arpl.\n")" + MSG+="$(TEXT "Upload addons.zip will update Addons.\n")" + MSG+="$(TEXT "Upload modules.zip will update Modules.\n")" + MSG+="$(TEXT "Upload rp-lkms.zip will update LKMs.\n")" + dialog --backtitle "`backtitle`" --colors --aspect 18 \ + --msgbox "${MSG}" 0 0 + EXTS=("update.zip" "addons.zip" "modules.zip" "rp-lkms.zip") + TMP_UP_PATH=/tmp/users + USER_FILE="" + rm -rf ${TMP_UP_PATH} + mkdir -p ${TMP_UP_PATH} + pushd ${TMP_UP_PATH} + rz -be + for F in `ls -A`; do + for I in ${EXTS[@]}; do + [[ "${I}" == "${F}" ]] && USER_FILE=${F} + done + break + done + popd + if [ -z "${USER_FILE}" ]; then + dialog --backtitle "`backtitle`" --title "$(TEXT "Local upload")" --aspect 18 \ + --msgbox "$(TEXT "Not a valid file, please try again!")" 0 0 + else + rm /tmp/${USER_FILE} + mv ${TMP_UP_PATH}/${USER_FILE} /tmp/${USER_FILE} + if [ "${USER_FILE}" = "update.zip" ]; then + updateArpl "arpl" + elif [ "${USER_FILE}" = "addons.zip" ]; then + updateExts "addons" + elif [ "${USER_FILE}" = "modules.zip" ]; then + updateExts "modules" + elif [ "${USER_FILE}" = "rp-lkms.zip" ]; then + updateExts "LKMs" + else + dialog --backtitle "`backtitle`" --title "$(TEXT "Local upload")" --aspect 18 \ + --msgbox "$(TEXT "Not a valid file, please try again!")" 0 0 + fi + fi + ;; e) return ;; esac done