-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathinit.ks
More file actions
161 lines (136 loc) · 3.59 KB
/
init.ks
File metadata and controls
161 lines (136 loc) · 3.59 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
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
@LAZYGLOBAL OFF.
GLOBAL vDEB IS FALSE.
GLOBAL TIMES IS LEXICON().
GLOBAL stageTime IS diffTime@:BIND("STAGE").
GLOBAL CRAFT_FILE_RUN IS "craft.ks".
GLOBAL SHIP_FILE IS "ship.ks".
GLOBAL RESUME_FN IS "resume.ks".
GLOBAL DISK_PREFIX IS "".
GLOBAL DISK_LOCAL IS "".
sysUpdate(SHIP:NAME).
FOR f IN LIST(
"lib_common.ks", // #include lib_common
"lib_runmode.ks", // #include lib_runmode
"lib_navigation.ks", // #include lib_navigation
"lib_warp.ks" // #include lib_warp
) { runScript(f,debug()). }
debugOff().
// debugOn().
killWarp().
setTime("STAGE").
loadScript("boot_init.ks",debug(),"b.ks").
loadScript("update.ks",debug(),"u.ks").
loadScript("clean.ks",debug(),"c.ks").
loadScript("ship_steer_sun.ks",debug(),"s.ks").
loadScript("ship_node.ks",debug(),"n.ks").
loadScript("ship_node_rcs.ks",debug(),"nr.ks").
SWITCH TO DISK_LOCAL.
CORE:DOEVENT("Open Terminal").
FUNCTION debugOn {
SET vDEB TO TRUE.
}
FUNCTION debugOff {
SET vDEB TO FALSE.
}
FUNCTION debug {
RETURN vDEB.
}
FUNCTION setTime {
PARAMETER n, t IS TIME:SECONDS.
SET TIMES[n] TO t.
}
FUNCTION diffTime {
PARAMETER n.
RETURN TIME:SECONDS - TIMES[n].
}
FUNCTION loadScript {
PARAMETER fn, loud IS debug(), fnn IS fn, repl IS FALSE.
IF repl { delScript(fnn,loud). }
LOCAL lfp IS DISK_LOCAL + ":/" + fnn.
IF EXISTS(lfp) { RETURN lfp. }
LOCAL afp IS "Archive:/" + fn.
IF EXISTS(afp) {
LOCAL afs IS VOLUME(0):OPEN(fn):SIZE.
IF loud { pOut("cpf: " + afp + " (" + afs + " bytes)"). }
COPYPATH(afp,lfp).
IF loud { pOut("cpt: " + lfp). }
RETURN lfp.
} ELSE {
IF loud { pOut(afp + " not found"). }
RETURN "".
}
}
FUNCTION runScript {
PARAMETER fn, loud IS debug(), fnn IS fn, repl IS FALSE.
LOCAL lpf IS loadScript(fn,loud,fnn,repl).
IF lpf <> "" {
IF loud { pOut("run: " + lpf). }
RUNONCEPATH(lpf).
RETURN TRUE.
}
RETURN FALSE.
}
FUNCTION delScript {
PARAMETER fn, loud IS debug().
LOCAL lfp IS DISK_LOCAL + ":/" + fn.
IF EXISTS(lfp) {
IF loud { pOut("del: " + lfp). }
DELETEPATH(lfp).
}
}
FUNCTION delResume {
delScript(RESUME_FN,debug()).
}
FUNCTION store {
PARAMETER t, fn IS RESUME_FN.
delScript(fn,debug()).
LOG t TO DISK_LOCAL + ":/" + fn.
}
FUNCTION append {
PARAMETER t, fn IS RESUME_FN.
LOG t TO (DISK_LOCAL + ":/" + fn).
}
FUNCTION resume {
PARAMETER fn IS RESUME_FN.
LOCAL lfp IS DISK_LOCAL + ":/" + fn.
IF EXISTS(lfp) { RUNPATH(lfp). }
}
FUNCTION findPath {
PARAMETER fn.
LOCAL lfp IS DISK_LOCAL + ":/" + fn.
IF EXISTS(lfp) { RETURN lfp. }
RETURN "".
}
FUNCTION sysUpdate {
PARAMETER sn.
IF NOT sn { RETURN. }
SET SHIP:NAME TO sn.
// SET DISK_PREFIX TO SHIP:NAME.
SET DISK_PREFIX TO "".
SET DISK_LOCAL TO DISK_PREFIX + "1".
SET DISK_LOCAL TO DISK_LOCAL:REPLACE("-",""):REPLACE("/",""):REPLACE("\",""):REPLACE("_","").
SET CORE:VOLUME:NAME TO DISK_LOCAL.
}
FUNCTION runCraft {
setTime("MST").
IF MISSIONTIME > 0 { setTime("MST",TIME:SECONDS - MISSIONTIME). }
ELSE { WHEN MISSIONTIME > 0 THEN { setTime("MST",TIME:SECONDS - MISSIONTIME). } }
IF NOT findPath(CRAFT_FILE_RUN) {
LOCAL cn IS "craft_" + SHIP:NAME + ".ks".
if NOT loadScript(cn,debug(),CRAFT_FILE_RUN) { RETURN "". }
edit CRAFT_FILE_RUN.
pOut("AG1 to continue after edit").
GLOBAL flagCraftEdit IS FALSE.
ON AG1 { SET flagCraftEdit TO TRUE. }
WAIT UNTIL flagCraftEdit.
}
LOCAL RESULT TO runScript(CRAFT_FILE_RUN,debug()).
IF SHIP_FILE { SET RESULT TO runScript(SHIP_FILE,debug()). }
RETURN RESULT.
}
FUNCTION cleanCraft {
delScript(CRAFT_FILE_RUN).
LOG "" TO CRAFT_FILE_RUN.
delScript("autoruns.ks").
LOG "" TO "autoruns.ks".
}