-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathlib_runmode.ks
More file actions
112 lines (100 loc) · 2.83 KB
/
Copy pathlib_runmode.ks
File metadata and controls
112 lines (100 loc) · 2.83 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
@LAZYGLOBAL OFF. // #include init
GLOBAL RM_FN IS "rm.ks".
GLOBAL RM_RM IS -1.
GLOBAL RM_AM IS -1.
GLOBAL RM_COUNT IS 0.
setTime("RM").
setTime("RM_COUNT").
GLOBAL modeTime IS diffTime@:BIND("RM").
resume(RM_FN).
FOR f IN LIST(
"lib_common.ks" // #include lib_common
) { runScript(f,debug()). }
ON AG9 {
PRINT "INPUT: " + RM_COUNT + " (tempWARP CONTROL)".
warpTemp(NOT warpAllowTemp()).
warpStatus(FALSE).
RETURN TRUE.
}
ON AG10 {
IF TIME:SECONDS > TIMES["RM_COUNT"] {
SET RM_COUNT TO 0.
setTime("RM_COUNT", TIME:SECONDS + 10).
PRINT "INPUT: " + RM_COUNT + " (timeout)".
RETURN TRUE.
}
SET RM_COUNT TO RM_COUNT + 1.
setTime("RM_COUNT", TIME:SECONDS + 10).
IF RM_COUNT = 1 { PRINT "SET CODE: " + RM_COUNT + " (WARP CONTROL) CURRENT: " + warpAllow().
} ELSE IF RM_COUNT = 2 { PRINT "SET CODE: " + RM_COUNT + " (UPDATE + REBOOT)".
} ELSE IF RM_COUNT = 3 { PRINT "SET CODE: " + RM_COUNT + " (SS MODE + REBOOT)".
} ELSE IF RM_COUNT = 4 { PRINT "SET CODE: " + RM_COUNT + " (CLEAN + REBOOT)".
} ELSE { SET RM_COUNT TO 0. PRINT "SET CODE: " + RM_COUNT + " (NO ACTION)". }
RETURN TRUE.
}
ON ABORT {
IF RM_COUNT = 0 {
PRINT "INPUT: ABORT".
IF RM_AM > 0 { pOut("Abort to mode: " + RM_AM,FALSE). runMode(RM_AM, 0, FALSE). }
} ELSE IF RM_COUNT = 1 {
PRINT "INPUT: " + RM_COUNT + " (WARP CONTROL)".
warpStatus(NOT warpAllow()).
} ELSE IF RM_COUNT = 2 {
PRINT "INPUT: " + RM_COUNT + " (UPDATE + REBOOT)".
runScript("u.ks",TRUE).
REBOOT.
} ELSE IF RM_COUNT = 3 {
PRINT "INPUT: " + RM_COUNT + " (SS MODE + REBOOT)".
runScript("c.ks",TRUE).
runScript("u.ks",TRUE).
store("runScript(" + CHAR(34) + "s.ks" + CHAR(34) + "," + debug() + ").","autorun.ks").
warpStatus(FALSE).
rcsOff().
sasOn().
REBOOT.
} ELSE IF RM_COUNT = 4 {
PRINT "INPUT: " + RM_COUNT + " (CLEAN + REBOOT)".
runScript("c.ks",TRUE).
rcsOff().
sasOn().
CORE:VOLUME:DELETE("/boot").
SET CORE:BOOTFILENAME TO "".
REBOOT.
}
SET RM_COUNT TO 0.
setTime("RM_COUNT", TIME:SECONDS).
RETURN TRUE.
}
FUNCTION pMode {
LOCAL s IS "Run mode: " + RM_RM.
IF RM_AM > 0 { SET s TO s + ", Abort mode: " + RM_AM. }
pOut(s).
}
FUNCTION logModes {
store("SET RM_RM TO " + RM_RM + ".", RM_FN).
IF RM_AM > 0 { append("SET RM_AM TO " + RM_AM + ".", RM_FN). }
append("pMode().", RM_FN).
}
FUNCTION runMode {
PARAMETER rm IS -1, am IS -1, p IS TRUE.
IF rm >= 0 {
IF am >= 0 { SET RM_AM TO am. }
SET RM_RM TO rm.
setTime("RM").
logModes().
if p { pMode(). }
}
RETURN RM_RM.
}
FUNCTION abortMode {
PARAMETER am IS -1.
IF am >= 0 { SET RM_AM TO am. logModes(). }
RETURN RM_AM.
}
FUNCTION resetMode {
SET RM_RM TO -1.
SET RM_AM TO -1.
store("SET RM_RM TO " + RM_RM + ".", RM_FN).
append("SET RM_AM TO " + RM_AM + ".", RM_FN).
append("pMode().", RM_FN).
}