File tree Expand file tree Collapse file tree 1 file changed +40
-0
lines changed
Expand file tree Collapse file tree 1 file changed +40
-0
lines changed Original file line number Diff line number Diff line change 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
You can’t perform that action at this time.
0 commit comments