Add mod state in console
This commit is contained in:
+24
-199
@@ -3,63 +3,33 @@
|
||||
# ============================================================
|
||||
# Lobby Systems - Fabric Build Script
|
||||
# Linux / macOS
|
||||
#
|
||||
# Features:
|
||||
# - Read version from gradle.properties
|
||||
# - Check Java 25
|
||||
# - Download Gradle 9.5.1 automatically if needed
|
||||
# - Clean build
|
||||
# - Ask for Git commit + push ONLY after BUILD SUCCESS
|
||||
# ============================================================
|
||||
|
||||
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||
cd "$SCRIPT_DIR" || exit 1
|
||||
|
||||
BUILD_ONLY=0
|
||||
if [[ "${1:-}" == "--build-only" ]]; then
|
||||
BUILD_ONLY=1
|
||||
fi
|
||||
|
||||
GRADLE_PROPERTIES="$SCRIPT_DIR/gradle.properties"
|
||||
|
||||
LOCAL_GRADLE_DIR="$SCRIPT_DIR/.gradle-local"
|
||||
|
||||
GRADLE_VERSION="9.5.1"
|
||||
GRADLE_HOME="$LOCAL_GRADLE_DIR/gradle-$GRADLE_VERSION"
|
||||
GRADLE_BIN="$GRADLE_HOME/bin/gradle"
|
||||
|
||||
# ============================================================
|
||||
# Helper functions
|
||||
# ============================================================
|
||||
|
||||
info() {
|
||||
echo "[INFO] $1"
|
||||
}
|
||||
|
||||
ok() {
|
||||
echo "[OK] $1"
|
||||
}
|
||||
|
||||
warn() {
|
||||
echo "[WARN] $1"
|
||||
}
|
||||
|
||||
error() {
|
||||
echo "[ERROR] $1"
|
||||
}
|
||||
|
||||
separator() {
|
||||
echo "============================================"
|
||||
}
|
||||
info() { echo "[INFO] $1"; }
|
||||
ok() { echo "[OK] $1"; }
|
||||
warn() { echo "[WARN] $1"; }
|
||||
error() { echo "[ERROR] $1"; }
|
||||
separator() { echo "============================================"; }
|
||||
|
||||
read_property() {
|
||||
local key="$1"
|
||||
|
||||
grep -E "^${key}=" "$GRADLE_PROPERTIES" \
|
||||
| head -n 1 \
|
||||
| cut -d'=' -f2- \
|
||||
| tr -d '\r'
|
||||
grep -E "^${key}=" "$GRADLE_PROPERTIES" | head -n 1 | cut -d'=' -f2- | tr -d '\r'
|
||||
}
|
||||
|
||||
# ============================================================
|
||||
# Read gradle.properties
|
||||
# ============================================================
|
||||
|
||||
if [[ ! -f "$GRADLE_PROPERTIES" ]]; then
|
||||
error "gradle.properties tidak ditemukan."
|
||||
exit 1
|
||||
@@ -69,17 +39,9 @@ MOD_VERSION="$(read_property "mod_version")"
|
||||
MINECRAFT_VERSION="$(read_property "minecraft_version")"
|
||||
MAVEN_GROUP="$(read_property "maven_group")"
|
||||
|
||||
if [[ -z "$MOD_VERSION" ]]; then
|
||||
MOD_VERSION="unknown"
|
||||
fi
|
||||
|
||||
if [[ -z "$MINECRAFT_VERSION" ]]; then
|
||||
MINECRAFT_VERSION="26.2"
|
||||
fi
|
||||
|
||||
if [[ -z "$MAVEN_GROUP" ]]; then
|
||||
MAVEN_GROUP="id.dartokloning"
|
||||
fi
|
||||
[[ -z "$MOD_VERSION" ]] && MOD_VERSION="unknown"
|
||||
[[ -z "$MINECRAFT_VERSION" ]] && MINECRAFT_VERSION="26.2"
|
||||
[[ -z "$MAVEN_GROUP" ]] && MAVEN_GROUP="id.dartokloning"
|
||||
|
||||
separator
|
||||
echo " Lobby Systems - Fabric $MINECRAFT_VERSION Build"
|
||||
@@ -88,10 +50,6 @@ echo " Namespace: id.dartokloning.lobbysystems"
|
||||
echo " Mod ID: dartokloning"
|
||||
separator
|
||||
|
||||
# ============================================================
|
||||
# Check Java
|
||||
# ============================================================
|
||||
|
||||
if ! command -v java >/dev/null 2>&1; then
|
||||
error "Java tidak ditemukan di PATH."
|
||||
echo "Install JDK 25 lalu jalankan script lagi."
|
||||
@@ -99,13 +57,10 @@ if ! command -v java >/dev/null 2>&1; then
|
||||
fi
|
||||
|
||||
JAVA_PATH="$(command -v java)"
|
||||
|
||||
info "Java executable: $JAVA_PATH"
|
||||
|
||||
JAVA_VERSION_OUTPUT="$(java --version 2>&1 | head -n 1)"
|
||||
|
||||
JAVA_VERSION="$(echo "$JAVA_VERSION_OUTPUT" | awk '{print $2}')"
|
||||
|
||||
JAVA_MAJOR="$(echo "$JAVA_VERSION" | cut -d'.' -f1)"
|
||||
|
||||
if [[ "$JAVA_MAJOR" != "25" ]]; then
|
||||
@@ -117,45 +72,24 @@ fi
|
||||
|
||||
ok "Java 25 terdeteksi."
|
||||
|
||||
# ============================================================
|
||||
# Prepare Gradle
|
||||
# ============================================================
|
||||
|
||||
if [[ ! -x "$GRADLE_BIN" ]]; then
|
||||
|
||||
info "Gradle $GRADLE_VERSION belum tersedia."
|
||||
info "Mengunduh distribusi resmi..."
|
||||
|
||||
mkdir -p "$LOCAL_GRADLE_DIR"
|
||||
|
||||
GRADLE_ZIP="$LOCAL_GRADLE_DIR/gradle-$GRADLE_VERSION-bin.zip"
|
||||
|
||||
GRADLE_URL="https://services.gradle.org/distributions/gradle-$GRADLE_VERSION-bin.zip"
|
||||
|
||||
if command -v curl >/dev/null 2>&1; then
|
||||
|
||||
curl \
|
||||
-L \
|
||||
--fail \
|
||||
--progress-bar \
|
||||
"$GRADLE_URL" \
|
||||
-o "$GRADLE_ZIP"
|
||||
|
||||
curl -L --fail --progress-bar "$GRADLE_URL" -o "$GRADLE_ZIP"
|
||||
DOWNLOAD_RESULT=$?
|
||||
|
||||
elif command -v wget >/dev/null 2>&1; then
|
||||
|
||||
wget \
|
||||
"$GRADLE_URL" \
|
||||
-O "$GRADLE_ZIP"
|
||||
|
||||
wget "$GRADLE_URL" -O "$GRADLE_ZIP"
|
||||
DOWNLOAD_RESULT=$?
|
||||
|
||||
else
|
||||
|
||||
error "curl atau wget tidak ditemukan."
|
||||
exit 1
|
||||
|
||||
fi
|
||||
|
||||
if [[ $DOWNLOAD_RESULT -ne 0 ]]; then
|
||||
@@ -170,12 +104,7 @@ if [[ ! -x "$GRADLE_BIN" ]]; then
|
||||
exit 1
|
||||
fi
|
||||
|
||||
unzip \
|
||||
-q \
|
||||
-o \
|
||||
"$GRADLE_ZIP" \
|
||||
-d "$LOCAL_GRADLE_DIR"
|
||||
|
||||
unzip -q -o "$GRADLE_ZIP" -d "$LOCAL_GRADLE_DIR"
|
||||
EXTRACT_RESULT=$?
|
||||
|
||||
if [[ $EXTRACT_RESULT -ne 0 ]]; then
|
||||
@@ -194,40 +123,23 @@ fi
|
||||
|
||||
ok "Gradle $GRADLE_VERSION tersedia."
|
||||
|
||||
# ============================================================
|
||||
# Build
|
||||
# ============================================================
|
||||
|
||||
info "Menjalankan clean build Lobby Systems v$MOD_VERSION..."
|
||||
|
||||
echo
|
||||
|
||||
"$GRADLE_BIN" clean build --no-daemon
|
||||
|
||||
BUILD_RESULT=$?
|
||||
|
||||
# ============================================================
|
||||
# BUILD FAILED
|
||||
# ============================================================
|
||||
|
||||
if [[ $BUILD_RESULT -ne 0 ]]; then
|
||||
|
||||
echo
|
||||
separator
|
||||
echo " BUILD FAILED"
|
||||
separator
|
||||
echo
|
||||
|
||||
error "Build gagal dengan exit code $BUILD_RESULT."
|
||||
info "Git Integration tidak dijalankan."
|
||||
|
||||
exit "$BUILD_RESULT"
|
||||
fi
|
||||
|
||||
# ============================================================
|
||||
# BUILD SUCCESS
|
||||
# ============================================================
|
||||
|
||||
echo
|
||||
separator
|
||||
echo " BUILD SUCCESS"
|
||||
@@ -236,210 +148,123 @@ separator
|
||||
JAR_PATH="$SCRIPT_DIR/build/libs/lobby-systems-$MOD_VERSION.jar"
|
||||
|
||||
if [[ -f "$JAR_PATH" ]]; then
|
||||
|
||||
echo "JAR:"
|
||||
echo "$JAR_PATH"
|
||||
|
||||
else
|
||||
|
||||
warn "Build berhasil, tetapi JAR utama tidak ditemukan pada:"
|
||||
echo "$JAR_PATH"
|
||||
|
||||
fi
|
||||
|
||||
# ============================================================
|
||||
# Ask whether to use Git
|
||||
# ============================================================
|
||||
# release.sh memakai mode ini supaya build tidak menampilkan prompt Git dua kali.
|
||||
if [[ $BUILD_ONLY -eq 1 ]]; then
|
||||
exit 0
|
||||
fi
|
||||
|
||||
echo
|
||||
|
||||
read -r -p "Commit dan push perubahan ke Git/Gitea? [Y/N]: " GIT_CONFIRM
|
||||
|
||||
case "$GIT_CONFIRM" in
|
||||
|
||||
y|Y|yes|YES|Yes)
|
||||
;;
|
||||
|
||||
y|Y|yes|YES|Yes) ;;
|
||||
*)
|
||||
echo
|
||||
info "Git commit/push dilewati."
|
||||
|
||||
echo
|
||||
separator
|
||||
echo " Lobby Systems v$MOD_VERSION selesai."
|
||||
separator
|
||||
|
||||
exit 0
|
||||
;;
|
||||
esac
|
||||
|
||||
# ============================================================
|
||||
# Git Integration
|
||||
# ============================================================
|
||||
|
||||
echo
|
||||
separator
|
||||
echo " Git Integration"
|
||||
separator
|
||||
|
||||
# ------------------------------------------------------------
|
||||
# Check Git
|
||||
# ------------------------------------------------------------
|
||||
|
||||
if ! command -v git >/dev/null 2>&1; then
|
||||
|
||||
error "Git tidak ditemukan di PATH."
|
||||
info "Build tetap berhasil."
|
||||
|
||||
exit 0
|
||||
fi
|
||||
|
||||
# ------------------------------------------------------------
|
||||
# Check repository
|
||||
# ------------------------------------------------------------
|
||||
|
||||
if ! git rev-parse --is-inside-work-tree >/dev/null 2>&1; then
|
||||
|
||||
error "Folder ini belum menjadi Git repository."
|
||||
|
||||
echo
|
||||
echo "Jalankan terlebih dahulu:"
|
||||
echo
|
||||
echo " git init"
|
||||
echo " git branch -M main"
|
||||
echo " git remote add origin <URL-GITEA>"
|
||||
echo
|
||||
|
||||
exit 0
|
||||
fi
|
||||
|
||||
# ------------------------------------------------------------
|
||||
# Check source changes
|
||||
# ------------------------------------------------------------
|
||||
|
||||
info "Memeriksa perubahan Git..."
|
||||
|
||||
CHANGES="$(git status --porcelain)"
|
||||
|
||||
if [[ -n "$CHANGES" ]]; then
|
||||
|
||||
echo
|
||||
echo "Perubahan ditemukan:"
|
||||
echo
|
||||
|
||||
git status --short
|
||||
|
||||
echo
|
||||
|
||||
read -r -p \
|
||||
"Commit message [Lobby Systems v$MOD_VERSION build]: " \
|
||||
COMMIT_MESSAGE
|
||||
read -r -p "Commit message [Lobby Systems v$MOD_VERSION build]: " COMMIT_MESSAGE
|
||||
|
||||
if [[ -z "$COMMIT_MESSAGE" ]]; then
|
||||
|
||||
TIMESTAMP="$(date '+%Y-%m-%d %H:%M:%S')"
|
||||
|
||||
COMMIT_MESSAGE="Lobby Systems v$MOD_VERSION build - $TIMESTAMP"
|
||||
|
||||
fi
|
||||
|
||||
# --------------------------------------------------------
|
||||
# Git Add
|
||||
# --------------------------------------------------------
|
||||
|
||||
info "Menambahkan perubahan ke staging..."
|
||||
|
||||
if ! git add -A; then
|
||||
|
||||
error "git add gagal."
|
||||
exit 2
|
||||
|
||||
fi
|
||||
|
||||
# --------------------------------------------------------
|
||||
# Git Commit
|
||||
# --------------------------------------------------------
|
||||
|
||||
info "Membuat commit..."
|
||||
|
||||
if ! git commit -m "$COMMIT_MESSAGE"; then
|
||||
|
||||
error "git commit gagal."
|
||||
exit 2
|
||||
|
||||
fi
|
||||
|
||||
else
|
||||
|
||||
info "Tidak ada perubahan source yang perlu di-commit."
|
||||
info "Akan mencoba push commit yang sudah ada."
|
||||
|
||||
fi
|
||||
|
||||
# ============================================================
|
||||
# Determine current branch
|
||||
# ============================================================
|
||||
|
||||
CURRENT_BRANCH="$(git branch --show-current)"
|
||||
|
||||
if [[ -z "$CURRENT_BRANCH" ]]; then
|
||||
|
||||
error "Tidak dapat menentukan branch Git aktif."
|
||||
exit 2
|
||||
|
||||
fi
|
||||
|
||||
info "Branch aktif: $CURRENT_BRANCH"
|
||||
|
||||
# ============================================================
|
||||
# Check origin
|
||||
# ============================================================
|
||||
|
||||
if ! git remote get-url origin >/dev/null 2>&1; then
|
||||
|
||||
error "Remote Git 'origin' belum dikonfigurasi."
|
||||
|
||||
echo
|
||||
echo "Tambahkan remote Gitea dengan:"
|
||||
echo
|
||||
echo " git remote add origin <URL-GITEA>"
|
||||
echo
|
||||
|
||||
info "Commit lokal tetap tersimpan."
|
||||
|
||||
exit 2
|
||||
fi
|
||||
|
||||
REMOTE_URL="$(git remote get-url origin)"
|
||||
|
||||
info "Remote origin: $REMOTE_URL"
|
||||
|
||||
# ============================================================
|
||||
# Git Push
|
||||
# ============================================================
|
||||
|
||||
info "Push ke origin/$CURRENT_BRANCH..."
|
||||
|
||||
if ! git push origin "$CURRENT_BRANCH"; then
|
||||
|
||||
echo
|
||||
error "Git push gagal."
|
||||
info "Commit lokal tetap tersimpan."
|
||||
|
||||
exit 2
|
||||
|
||||
fi
|
||||
|
||||
# ============================================================
|
||||
# Complete
|
||||
# ============================================================
|
||||
|
||||
echo
|
||||
ok "Push ke Git/Gitea berhasil."
|
||||
|
||||
echo
|
||||
separator
|
||||
echo " Lobby Systems v$MOD_VERSION selesai."
|
||||
separator
|
||||
|
||||
exit 0
|
||||
exit 0
|
||||
|
||||
Reference in New Issue
Block a user