финал
This commit is contained in:
Executable
+121
@@ -0,0 +1,121 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
set -e
|
||||
|
||||
APP_NAME="SpotXInstaller"
|
||||
RID="linux-x64"
|
||||
|
||||
ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
|
||||
|
||||
PUBLISH="$ROOT/bin/Release/net10.0/$RID/publish"
|
||||
APPDIR="$ROOT/bin/Release/net10.0/$RID/AppDir"
|
||||
OUTPUT="$ROOT/bin/Release/net10.0/$APP_NAME-x86_64.AppImage"
|
||||
|
||||
ICON="$ROOT/Assets/icons/SpotXInstaller.png"
|
||||
|
||||
echo
|
||||
echo "========================================"
|
||||
echo " Building SpotXInstaller AppImage"
|
||||
echo "========================================"
|
||||
echo
|
||||
|
||||
echo "[1/5] Cleaning..."
|
||||
|
||||
rm -rf "$PUBLISH"
|
||||
rm -rf "$APPDIR"
|
||||
rm -f "$OUTPUT"
|
||||
|
||||
echo
|
||||
echo "[2/5] Publishing Linux application..."
|
||||
|
||||
dotnet publish "$ROOT/SpotXInstaller.csproj" \
|
||||
-c Release \
|
||||
-r "$RID" \
|
||||
--self-contained true \
|
||||
-p:PublishSingleFile=false \
|
||||
-p:IncludeNativeLibrariesForSelfExtract=false \
|
||||
-o "$PUBLISH"
|
||||
|
||||
echo
|
||||
echo "[3/5] Creating AppDir..."
|
||||
|
||||
mkdir -p "$APPDIR/usr/bin"
|
||||
mkdir -p "$APPDIR/usr/lib"
|
||||
mkdir -p "$APPDIR/usr/share/applications"
|
||||
|
||||
cp -R "$PUBLISH/." "$APPDIR/usr/bin/"
|
||||
|
||||
echo
|
||||
echo "[4/5] Creating AppImage files..."
|
||||
|
||||
# Проверяем наличие иконки
|
||||
if [ ! -f "$ICON" ]; then
|
||||
echo
|
||||
echo "ERROR: Icon not found:"
|
||||
echo "$ICON"
|
||||
echo
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Иконка должна находиться в корне AppDir
|
||||
cp "$ICON" "$APPDIR/SpotXInstaller.png"
|
||||
|
||||
# Проверяем, что иконка действительно скопирована
|
||||
if [ ! -f "$APPDIR/SpotXInstaller.png" ]; then
|
||||
echo
|
||||
echo "ERROR: Failed to copy icon."
|
||||
echo
|
||||
exit 1
|
||||
fi
|
||||
|
||||
cat > "$APPDIR/AppRun" <<'EOF'
|
||||
#!/usr/bin/env bash
|
||||
|
||||
HERE="$(dirname "$(readlink -f "$0")")"
|
||||
|
||||
export LD_LIBRARY_PATH="$HERE/usr/bin:$HERE/usr/lib:${LD_LIBRARY_PATH:-}"
|
||||
|
||||
exec "$HERE/usr/bin/SpotXInstaller" "$@"
|
||||
EOF
|
||||
|
||||
chmod +x "$APPDIR/AppRun"
|
||||
|
||||
cat > "$APPDIR/SpotXInstaller.desktop" <<'EOF'
|
||||
[Desktop Entry]
|
||||
Name=SpotX Installer
|
||||
Comment=SpotX Spotify Installer
|
||||
Exec=SpotXInstaller
|
||||
Icon=SpotXInstaller
|
||||
Terminal=false
|
||||
Type=Application
|
||||
Categories=Utility;
|
||||
StartupNotify=true
|
||||
EOF
|
||||
|
||||
cp "$APPDIR/SpotXInstaller.desktop" \
|
||||
"$APPDIR/usr/share/applications/SpotXInstaller.desktop"
|
||||
|
||||
echo
|
||||
echo "AppDir contents:"
|
||||
echo " AppRun: $APPDIR/AppRun"
|
||||
echo " Icon: $APPDIR/SpotXInstaller.png"
|
||||
echo " Desktop: $APPDIR/SpotXInstaller.desktop"
|
||||
|
||||
echo
|
||||
ls -lh "$APPDIR/SpotXInstaller.png"
|
||||
|
||||
echo
|
||||
echo "[5/5] Building AppImage..."
|
||||
|
||||
appimagetool "$APPDIR" "$OUTPUT"
|
||||
|
||||
echo
|
||||
echo "========================================"
|
||||
echo " BUILD COMPLETE"
|
||||
echo "========================================"
|
||||
echo
|
||||
echo "AppImage:"
|
||||
echo "$OUTPUT"
|
||||
echo
|
||||
ls -lh "$OUTPUT"
|
||||
echo
|
||||
Reference in New Issue
Block a user