@1e0zj/dsh-plugin-mall 0.4.7 → 0.4.12
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +4 -3
- package/package.json +1 -1
- package/src/cli.js +924 -65
- package/src/client.js +24 -2
- package/src/index.js +593 -30
- package/src/restart-protocol.js +258 -0
package/src/client.js
CHANGED
|
@@ -29,6 +29,7 @@ window.__ModuleLoader__.load({
|
|
|
29
29
|
".mkt_btnSm{padding:3px 10px;font-size:12px}",
|
|
30
30
|
".mkt_error{color:var(--dsw-alias-state-error-primary);font-size:12px;line-height:18px}",
|
|
31
31
|
".mkt_notice{border-left:3px solid var(--dsw-alias-state-error-primary);background:var(--dsw-alias-bg-layer-2);color:var(--dsw-alias-state-error-primary);padding:7px 10px;font-size:12px;line-height:18px;overflow-wrap:anywhere}",
|
|
32
|
+
".mkt_noticeInfo{border-left-color:var(--dsw-alias-state-accent-primary);color:inherit}",
|
|
32
33
|
".mkt_list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;align-items:stretch;min-width:0}",
|
|
33
34
|
"@media (max-width:820px){.mkt_list{grid-template-columns:minmax(0,1fr)}}",
|
|
34
35
|
".mkt_listHead{grid-column:1/-1;font-size:12px;color:var(--dsw-alias-label-tertiary)}",
|
|
@@ -395,6 +396,13 @@ window.__ModuleLoader__.load({
|
|
|
395
396
|
return h("div", { className: "mkt_notice", role: "alert" }, props.message);
|
|
396
397
|
}
|
|
397
398
|
|
|
399
|
+
// 状态性提示(区别于 ErrorNotice 的 role=alert):「重启已调度」这类
|
|
400
|
+
// 成功路径的进展信息,页面自动重连后随刷新自然消失。
|
|
401
|
+
function StatusNotice(props) {
|
|
402
|
+
if (!props.message) return null;
|
|
403
|
+
return h("div", { className: "mkt_notice mkt_noticeInfo", role: "status" }, props.message);
|
|
404
|
+
}
|
|
405
|
+
|
|
398
406
|
function RestartDialog(props) {
|
|
399
407
|
useEffect(function () {
|
|
400
408
|
function onKeyDown(event) {
|
|
@@ -764,6 +772,9 @@ window.__ModuleLoader__.load({
|
|
|
764
772
|
var _restarting = useState(false);
|
|
765
773
|
var restarting = _restarting[0];
|
|
766
774
|
var setRestarting = _restarting[1];
|
|
775
|
+
var _restartNote = useState(null);
|
|
776
|
+
var restartNote = _restartNote[0];
|
|
777
|
+
var setRestartNote = _restartNote[1];
|
|
767
778
|
var _restartConfirm = useState(false);
|
|
768
779
|
var restartConfirm = _restartConfirm[0];
|
|
769
780
|
var setRestartConfirm = _restartConfirm[1];
|
|
@@ -1026,10 +1037,18 @@ window.__ModuleLoader__.load({
|
|
|
1026
1037
|
clearRestartPing();
|
|
1027
1038
|
setRestarting(true);
|
|
1028
1039
|
setError(null);
|
|
1040
|
+
setRestartNote(null);
|
|
1029
1041
|
var requestedAt = Date.now();
|
|
1030
1042
|
var previousHostStartedAt = Number(hostStartedAt);
|
|
1031
|
-
|
|
1043
|
+
var scheduledLogPath = null;
|
|
1044
|
+
call("restart", {}).then(function (value) {
|
|
1032
1045
|
if (restartControlRef.current.mounted !== true) return;
|
|
1046
|
+
// 响应语义是「已调度交接」而不是「重启成功」:新宿主何时接管
|
|
1047
|
+
// 由下面的轮询判断。这里只把输出会出现在哪里告诉用户。
|
|
1048
|
+
scheduledLogPath = value && value.logPath ? String(value.logPath) : null;
|
|
1049
|
+
setRestartNote(value && value.mode === "visible"
|
|
1050
|
+
? "重启已调度——dsh 正在新的控制台窗口中启动,窗口里 Ctrl+C 可停止;输出同时写入 " + scheduledLogPath
|
|
1051
|
+
: "重启已调度,输出与日志:" + (scheduledLogPath || "<home>/guard/ 下"));
|
|
1033
1052
|
var tries = 0;
|
|
1034
1053
|
var ping = setInterval(function () {
|
|
1035
1054
|
if (restartControlRef.current.mounted !== true) {
|
|
@@ -1040,7 +1059,8 @@ window.__ModuleLoader__.load({
|
|
|
1040
1059
|
if (tries > 40) {
|
|
1041
1060
|
clearRestartPing();
|
|
1042
1061
|
setRestarting(false);
|
|
1043
|
-
reportError("restart", "2 分钟内未检测到 dsh 重启完成,请手动检查 dsh 状态后刷新页面。"
|
|
1062
|
+
reportError("restart", "2 分钟内未检测到 dsh 重启完成,请手动检查 dsh 状态后刷新页面。"
|
|
1063
|
+
+ (scheduledLogPath ? "输出与日志:" + scheduledLogPath : ""));
|
|
1044
1064
|
return;
|
|
1045
1065
|
}
|
|
1046
1066
|
// Prefer identity change over wall-clock ordering: NTP may move the
|
|
@@ -1063,6 +1083,7 @@ window.__ModuleLoader__.load({
|
|
|
1063
1083
|
if (restartControlRef.current.mounted !== true) return;
|
|
1064
1084
|
clearRestartPing();
|
|
1065
1085
|
setRestarting(false);
|
|
1086
|
+
setRestartNote(null);
|
|
1066
1087
|
reportError("restart", e);
|
|
1067
1088
|
});
|
|
1068
1089
|
}, [call, clearRestartPing, hostStartedAt, reportError]);
|
|
@@ -1128,6 +1149,7 @@ window.__ModuleLoader__.load({
|
|
|
1128
1149
|
"只看已验证插件")
|
|
1129
1150
|
),
|
|
1130
1151
|
h(ErrorNotice, { message: error && (error.scope === "search" || error.scope === "restart") ? error.message : null }),
|
|
1152
|
+
restarting ? h(StatusNotice, { message: restartNote }) : null,
|
|
1131
1153
|
h(InstalledPanel, {
|
|
1132
1154
|
installed: installed,
|
|
1133
1155
|
removing: removing,
|