blob: a77b2cf080906f6f178192645a644d1677c9c488 (
plain)
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
|
#!/bin/python3
import os
import sys
import subprocess
import signal
from threading import Thread
from conf import conf
import initialize
import phase
import solution
import kernel
from exceptions import MissingFile
from exceptions import KernelConfigFailed
import iteration
def step():
phs = phase.get()
if phs == 0:
try:
os.mkdir(conf.build_folder)
except FileExistsError:
pass
phase.set(1)
elif phs == 1:
phase.message(1)
initialize.kconfig_parser()
try:
initialize.gen_requred()
except MissingFile:
pass
iteration.reset()
phase.set(2)
elif phs == 2:
phase.message(2)
phase.set(3)
elif phs == 3:
phase.message(3)
solution.generate()
iteration.inc()
phase.set(4)
elif phs == 4:
phase.message(4)
phase.set(5)
elif phs == 5:
phase.message(5)
solution.apply()
phase.set(6)
elif phs == 6:
phase.message(6)
phase.set(7)
elif phs == 7:
phase.message(7)
kernel.config()
phase.set(8)
elif phs == 8:
phase.message(8)
phase.set(9)
elif phs == 9:
phase.message(9)
kernel.make()
phase.set(10)
elif phs == 10:
phase.message(10)
phase.set(2)
class mainThread(Thread):
def __init__(self, name):
Thread.__init__(self, name=name)
self.term = False
def run(self):
while not self.term:
step()
def loop_term():
global thr
thr.term = True
def sigterm_handler(_signo, _stack_frame):
loop_term()
def main_loop():
global thr
thr = mainThread("thred")
thr.start()
try:
thr.join()
except KeyboardInterrupt:
loop_term()
#################################################################################
if __name__ == '__main__':
signal.signal(signal.SIGTERM, sigterm_handler)
main_loop()
|