Skip to content

Commit 71828c2

Browse files
Create universal_cd.sh
1 parent 9fe5796 commit 71828c2

File tree

1 file changed

+40
-0
lines changed

1 file changed

+40
-0
lines changed

universal_cd.sh

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
#!/bin/bash
2+
# Universal CD Build & Deployment Tool
3+
4+
SOURCE=$1
5+
OUTPUT=$2
6+
7+
if [[ -z "$SOURCE" ]]; then
8+
echo "Usage: $0 <source-code-dir> <output-name>"
9+
exit 1
10+
fi
11+
12+
detect_language() {
13+
if ls $SOURCE/*.c >/dev/null 2>&1; then echo "c"
14+
elif ls $SOURCE/*.cpp >/dev/null 2>&1; then echo "cpp"
15+
elif ls $SOURCE/*.rs >/dev/null 2>&1; then echo "rust"
16+
elif ls $SOURCE/*.go >/dev/null 2>&1; then echo "go"
17+
elif ls $SOURCE/*.py >/dev/null 2>&1; then echo "python"
18+
elif ls $SOURCE/*.js >/dev/null 2>&1; then echo "node"
19+
elif ls $SOURCE/*.java >/dev/null 2>&1; then echo "java"
20+
elif ls $SOURCE/pubspec.yaml >/dev/null 2>&1; then echo "flutter"
21+
elif ls $SOURCE/package.json >/dev/null 2>&1; then echo "node"
22+
else echo "unknown"
23+
fi
24+
}
25+
26+
LANG=$(detect_language)
27+
28+
echo "Detected language: $LANG"
29+
30+
case $LANG in
31+
c) gcc $SOURCE/*.c -o $OUTPUT ;;
32+
cpp) g++ $SOURCE/*.cpp -o $OUTPUT ;;
33+
rust) cargo build --release --manifest-path $SOURCE/Cargo.toml ;;
34+
go) go build -o $OUTPUT $SOURCE ;;
35+
python) pyinstaller --onefile $SOURCE/*.py -n $OUTPUT ;;
36+
node) npm --prefix $SOURCE install && npm --prefix $SOURCE run build ;;
37+
java) javac $SOURCE/*.java -d build && jar cf $OUTPUT.jar -C build . ;;
38+
flutter) flutter build apk --release --target $SOURCE/lib/main.dart ;;
39+
*) echo "Unknown source type. Manual build required." ;;
40+
esac

0 commit comments

Comments
 (0)