Update the sh
This commit is contained in:
@@ -0,0 +1,117 @@
|
||||
#!/usr/bin/env bash
|
||||
#
|
||||
# build-to-moh.sh
|
||||
# يبني تطبيق Fchaty وينشئ نسخة باسم "to-moh" على سطح المكتب
|
||||
# هذه النسخة جاهزة للإرسال لرفيقك محمد
|
||||
#
|
||||
# الاستخدام:
|
||||
# chmod +x scripts/build-to-moh.sh
|
||||
# ./scripts/build-to-moh.sh
|
||||
#
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
REPOSITORY_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
|
||||
PROJECT_DIR="$REPOSITORY_DIR/FchatyApp"
|
||||
BUILD_DIR="$PROJECT_DIR/.build"
|
||||
PRODUCT_NAME="FchatyApp"
|
||||
ICON_PATH="$PROJECT_DIR/Resources/Fchaty.icns"
|
||||
|
||||
# النسخة على سطح المكتب
|
||||
DESKTOP_DIR="$HOME/Desktop"
|
||||
OUTPUT_APP="$DESKTOP_DIR/to-moh.app"
|
||||
OUTPUT_ZIP="$DESKTOP_DIR/to-moh.zip"
|
||||
|
||||
STAGING_DIR="$(mktemp -d "${TMPDIR:-/tmp}/fchaty-to-moh.XXXXXX")"
|
||||
STAGING_APP="$STAGING_DIR/to-moh.app"
|
||||
|
||||
cleanup() {
|
||||
rm -rf "$STAGING_DIR"
|
||||
}
|
||||
trap cleanup EXIT
|
||||
|
||||
# ─── التحقق من المتطلبات ─────────────────────────────────────────────────────
|
||||
|
||||
if [[ ! -f "$PROJECT_DIR/Package.swift" ]]; then
|
||||
echo "ERROR: FchatyApp package not found: $PROJECT_DIR" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [[ ! -f "$ICON_PATH" ]]; then
|
||||
echo "ERROR: Application icon not found: $ICON_PATH" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# ─── البناء ───────────────────────────────────────────────────────────────────
|
||||
|
||||
echo "========================================"
|
||||
echo " بناء نسخة to-moh من Fchaty"
|
||||
echo "========================================"
|
||||
echo ""
|
||||
|
||||
echo "[1/5] تنظيف الـ build القديم..."
|
||||
rm -rf "$BUILD_DIR"
|
||||
|
||||
echo "[2/5] تشغيل الاختبارات..."
|
||||
swift test --package-path "$PROJECT_DIR"
|
||||
|
||||
echo "[3/5] بناء النسخة النهائية (release)..."
|
||||
swift build --configuration release --package-path "$PROJECT_DIR"
|
||||
|
||||
EXECUTABLE_PATH="$PROJECT_DIR/.build/release/$PRODUCT_NAME"
|
||||
if [[ ! -x "$EXECUTABLE_PATH" ]]; then
|
||||
echo "ERROR: Release executable not found: $EXECUTABLE_PATH" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "[4/5] إنشاء app bundle باسم to-moh..."
|
||||
mkdir -p "$STAGING_APP/Contents/MacOS" "$STAGING_APP/Contents/Resources"
|
||||
|
||||
# نسخ Info.plist مع تعديل اسم العرض
|
||||
cp "$PROJECT_DIR/Info.plist" "$STAGING_APP/Contents/Info.plist"
|
||||
# تغيير اسم العرض (اختياري — يبقى الاسم الداخلي Fchaty لكن الأيقونة والملف باسم to-moh)
|
||||
|
||||
cp "$EXECUTABLE_PATH" "$STAGING_APP/Contents/MacOS/$PRODUCT_NAME"
|
||||
cp "$ICON_PATH" "$STAGING_APP/Contents/Resources/Fchaty.icns"
|
||||
|
||||
# التوقيع (ad-hoc — كافي للاستخدام الشخصي)
|
||||
codesign --force --sign - --timestamp=none --entitlements "$PROJECT_DIR/FchatyApp.entitlements" "$STAGING_APP"
|
||||
|
||||
# ─── النسخ لسطح المكتب ───────────────────────────────────────────────────────
|
||||
|
||||
echo "[5/5] نقل النسخة لسطح المكتب..."
|
||||
|
||||
# حذف نسخة قديمة إذا موجودة
|
||||
if [[ -e "$OUTPUT_APP" ]]; then
|
||||
rm -rf "$OUTPUT_APP"
|
||||
fi
|
||||
if [[ -e "$OUTPUT_ZIP" ]]; then
|
||||
rm -f "$OUTPUT_ZIP"
|
||||
fi
|
||||
|
||||
mv "$STAGING_APP" "$OUTPUT_APP"
|
||||
|
||||
# إنشاء ملف zip جاهز للإرسال
|
||||
echo "إنشاء ملف zip للإرسال..."
|
||||
cd "$DESKTOP_DIR"
|
||||
zip -r -q "to-moh.zip" "to-moh.app"
|
||||
|
||||
echo ""
|
||||
echo "========================================"
|
||||
echo " تم بنجاح!"
|
||||
echo "========================================"
|
||||
echo ""
|
||||
echo "الملفات على سطح المكتب:"
|
||||
echo " - to-moh.app (التطبيق — يمكنك تجربته)"
|
||||
echo " - to-moh.zip (مضغوط — أرسله لمحمد)"
|
||||
echo ""
|
||||
echo "ملاحظات مهمة:"
|
||||
echo " - محمد لازم يفك الضغط ويحط التطبيق بمجلد Applications"
|
||||
echo " - أول مرة يفتحه رح يطلعله تحذير أمان"
|
||||
echo " - يروح على System Settings → Privacy & Security → يسمح بالتطبيق"
|
||||
echo " - أو يضغط كليك يمين على التطبيق → Open"
|
||||
echo ""
|
||||
echo "النسخة التي تشغلها أنت:"
|
||||
echo " شغّل: ./scripts/run-macos-app.sh"
|
||||
echo " هذا يثبت النسخة بـ /Applications/Fchaty.app"
|
||||
echo ""
|
||||
Reference in New Issue
Block a user