-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathbuild.sh
107 lines (93 loc) · 2.5 KB
/
build.sh
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
# By: Youssef ELMOUMEN @ ELTE -2022
projectName=$1
clear
if [ -z $projectName ]; then
echo "Please input the project name"
exit 1
fi
if [ -f $projectName ]; then
rm $projectName
fi
# concat projectName with .prj
prjName=$projectName".prj"
srcfile=$projectName".icl"
if [ ! -f $prjName ]; then
./bin/cpm project $projectName create
fi
if [ -f $srcfile ] && [ `cat $srcfile | wc -l` == 0 ]; then
echo "" >> $srcfile
echo "import StdEnv" >> $srcfile
echo "" >> $srcfile
echo "Start = \"Hello World\"" >> $srcfile
fi
log=$(./bin/cpm project $prjName build)
log=$(echo "$log" | sed '/Analyzing/d')
log=$(echo "$log" | sed '/Bring up to date/d')
log=$(echo "$log" | sed '/Warning:/d')
log=$(echo "$log" | sed '/Generating/d')
log=$(echo "$log" | sed '/Compiling/d')
log=$(echo "$log" | sed '/Linking/d')
log=$(echo "$log" | sed '/First found at/d')
log=$(echo "$log" | sed '/Also found at/d')
if [ -f $projectName ]; then
echo '-----------------'
echo -e "\033[32m✅Build success\033[0m"
echo -e "\033[32m----------------------------------------\033[0m"
echo -e "\033[32m$log\033[0m"
./$projectName
echo
echo
else
# show Something went wrong please check the log in red
echo -e "\033[31m❌Build failed\033[0m"
echo -e "\033[31m----------------------------------------\033[0m"
echo -e "\033[31m$log\033[0m"
fi
# write a batch version of that script
# Path: build.bat
# @echo off
# setlocal
# set projectName=%1
# if "%projectName%"=="" (
# echo Please input the project name
# exit /b 1
# )
# if exist %projectName% (
# del %projectName%
# )
# set prjName=%projectName%.prj
# set srcfile=%projectName%.icl
# if not exist %prjName% (
# bin\cpm project %projectName% create
# )
# if exist %srcfile% (
# if not %srcfile%==0 (
# echo. >> %srcfile%
# echo Start = "Hello World" >> %srcfile%
# )
# )
# set log=%~dp0bin\cpm project %prjName% build
# set log=%log:"=%"
# set log=%log:~0,-1%
# set log=%log:Analyzing=%
# set log=%log:Bring up to date=%
# set log=%log:Warning:=%
# set log=%log:Generating=%
# set log=%log:Compiling=%
# set log=%log:Linking=%
# set log=%log:First found at=%
# set log=%log:Also found at=%
# if exist %projectName% (
# echo -----------------
# echo ✅Build success
# echo ----------------------------------------
# echo %log%
# %projectName%
# echo.
# echo.
# ) else (
# echo ❌Build failed
# echo ----------------------------------------
# echo %log%
# )
# endlocal