1+ #! /usr/bin/env bash
2+
3+ set -euo pipefail
4+
5+ PROJECT_NAME=" OmegaCode"
6+
7+ ROOT_DIR=" $( pwd) "
8+
9+ CONSOLE_UI_DIR=" $ROOT_DIR /console/console-ui"
10+ CONSOLE_PANEL_DIR=" $ROOT_DIR /console/console-panel"
11+ MCP_SERVER_DIR=" $ROOT_DIR /mcp-server"
12+
13+ BUILD_DIR=" $ROOT_DIR /build"
14+ BUNDLE_DIR=" $BUILD_DIR /release_bundle"
15+
16+ RUST_TARGET=" ${RUST_TARGET:- } "
17+
18+ echo " =================================="
19+ echo " Build Started"
20+ echo " =================================="
21+
22+ rm -rf " $BUILD_DIR "
23+ mkdir -p " $BUNDLE_DIR "
24+
25+ echo " [UI] Building"
26+
27+ pushd " $CONSOLE_UI_DIR "
28+
29+ npm ci
30+ npm run build
31+
32+ if [ ! -d dist ]; then
33+ echo " dist directory not found"
34+ exit 1
35+ fi
36+
37+ popd
38+
39+ echo " [JAVA] Building"
40+
41+ pushd " $CONSOLE_PANEL_DIR "
42+
43+ mvn -B clean package
44+
45+ PANEL_JAR=$( find target -type f -name " *.jar" \
46+ ! -name " *sources.jar" \
47+ ! -name " *javadoc.jar" \
48+ | head -n 1)
49+
50+ if [ ! -f " $PANEL_JAR " ]; then
51+ echo " Jar not found"
52+ exit 1
53+ fi
54+
55+ popd
56+
57+ echo " [RUST] Building"
58+
59+ if [ -n " $RUST_TARGET " ]; then
60+
61+ cargo build \
62+ --release \
63+ --target " $RUST_TARGET "
64+
65+ RELEASE_DIR=" $ROOT_DIR /target/$RUST_TARGET /release"
66+
67+ else
68+
69+ cargo build --release
70+
71+ RELEASE_DIR=" $ROOT_DIR /target/release"
72+
73+ fi
74+
75+ EXECUTABLE=" $RELEASE_DIR /OmegaCode"
76+
77+ if [ -f " $EXECUTABLE .exe" ]; then
78+ EXECUTABLE=" $EXECUTABLE .exe"
79+ fi
80+
81+ if [ ! -f " $EXECUTABLE " ]; then
82+ echo " OmegaCode executable not found"
83+ exit 1
84+ fi
85+
86+ echo " [BUNDLE]"
87+
88+ mkdir -p " $BUNDLE_DIR /ui"
89+
90+ cp " $EXECUTABLE " \
91+ " $BUNDLE_DIR /"
92+
93+ cp " $PANEL_JAR " \
94+ " $BUNDLE_DIR /console_panel.jar"
95+
96+ cp -R " $CONSOLE_UI_DIR /dist/" * \
97+ " $BUNDLE_DIR /ui/"
98+
99+ cp -R " $MCP_SERVER_DIR " \
100+ " $BUNDLE_DIR /"
101+
102+ mkdir -p " $BUNDLE_DIR /sbom"
103+
104+ if command -v cargo-cyclonedx > /dev/null 2>&1 ; then
105+ cargo cyclonedx \
106+ --format json \
107+ --output-file " $BUNDLE_DIR /sbom/rust-bom.json" || true
108+ fi
109+
110+ echo " Build Finished"
111+
112+ find " $BUNDLE_DIR "
0 commit comments