Skip to content

Commit 968d5be

Browse files
authored
Merge pull request #311 from klutvott123/compile-script
Compile script
2 parents 423b026 + f17ea5d commit 968d5be

File tree

4 files changed

+50
-12
lines changed

4 files changed

+50
-12
lines changed

bin/build.sh

Lines changed: 16 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -16,20 +16,31 @@ if [ ${#MANIFEST[@]} -eq 0 ]; then
1616
exit 1
1717
fi
1818

19+
SCRIPTS_LUA=obj/SCRIPTS/BF/COMPILE/scripts.lua
20+
21+
echo 'local scripts = {' >> $SCRIPTS_LUA
22+
for f in ${MANIFEST[@]};
23+
do
24+
echo ' ''"'${f/\obj/}'",' >> $SCRIPTS_LUA
25+
done
26+
echo '}' >> $SCRIPTS_LUA
27+
echo 'return scripts[...]' >> $SCRIPTS_LUA
28+
29+
MANIFEST+=($SCRIPTS_LUA);
30+
1931
for f in ${MANIFEST[@]};
2032
do
2133
SRC_NAME=$f
22-
OBJ_NAME=$(dirname ${f})/$(basename ${f} .lua).luac
23-
echo -e "Compiling file \e[1m${SRC_NAME}\e[21m..."
24-
luac -s -o ${OBJ_NAME} ${SRC_NAME}
34+
echo -e "Testing file \e[1m${SRC_NAME}\e[21m..."
35+
luac -p ${SRC_NAME}
2536
_fail=$?
2637
if [[ $_fail -ne 0 ]]; then
2738
LAST_FAILURE=$_fail
28-
echo -e "\e[1m\e[39m[\e[31mBUILD FAILED\e[39m]\e[21m Compilation error in file ${SRC_NAME}\e[1m"
39+
echo -e "\e[1m\e[39m[\e[31mBUILD FAILED\e[39m]\e[21m Error in file ${SRC_NAME}\e[1m"
2940
fi
3041
done
3142

3243
if [[ $LAST_FAILURE -eq 0 ]]; then
33-
echo -e "\e[1m\e[39m[\e[32mTEST SUCCESSFUL\e[39m]\e[21m All lua files built successfully!"
44+
echo -e "\e[1m\e[39m[\e[32mTEST SUCCESSFUL\e[39m]\e[21m"
3445
fi
3546
exit $LAST_FAILURE

src/SCRIPTS/BF/COMPILE/compile.lua

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
local i = 1
2+
3+
local function compile()
4+
local script = assert(loadScript("COMPILE/scripts.lua"))(i)
5+
collectgarbage()
6+
i = i + 1
7+
if script then
8+
lcd.clear()
9+
lcd.drawText(2, 2, "Compiling...", SMLSIZE)
10+
lcd.drawText(2, 22, script, SMLSIZE)
11+
assert(loadScript(script, 'c'))
12+
collectgarbage()
13+
return 0
14+
end
15+
local file = io.open("COMPILE/scripts_compiled.lua", 'w')
16+
io.write(file, "return true")
17+
io.close(file)
18+
return 1
19+
end
20+
21+
return compile
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
return false

src/SCRIPTS/TOOLS/bf.lua

Lines changed: 12 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,17 @@ chdir("/SCRIPTS/BF")
33

44
apiVersion = 0
55

6-
protocol = assert(loadScript("protocols.lua"))()
7-
radio = assert(loadScript("radios.lua"))()
6+
local run = nil
7+
local scriptsCompiled = assert(loadScript("COMPILE/scripts_compiled.lua"))()
88

9-
assert(loadScript(protocol.transport))()
10-
assert(loadScript("MSP/common.lua"))()
9+
if scriptsCompiled then
10+
protocol = assert(loadScript("protocols.lua"))()
11+
radio = assert(loadScript("radios.lua"))()
12+
assert(loadScript(protocol.transport))()
13+
assert(loadScript("MSP/common.lua"))()
14+
run = assert(loadScript("ui.lua"))()
15+
else
16+
run = assert(loadScript("COMPILE/compile.lua"))()
17+
end
1118

12-
local run_ui = assert(loadScript("ui.lua"))()
13-
14-
return { run=run_ui }
19+
return { run=run }

0 commit comments

Comments
 (0)