Files
NebulaBrowser/make-appdir.sh
T

59 lines
1.7 KiB
Bash

#!/usr/bin/env bash
# Assemble nebula-appdir from extracted squashfs-root
set -euo pipefail
SRC="${1:-squashfs-root}"
DEST="${2:-nebula-appdir}"
if [ ! -d "$SRC" ]; then
echo "Source $SRC not found. Extract the AppImage first (./dist/Nebula-*.AppImage --appimage-extract)"
exit 1
fi
# Copy extracted contents into DEST
mkdir -p "$DEST"
cp -a "$SRC/." "$DEST/"
# Ensure launcher/binary exist
if [ -f "$DEST/run-nebula.sh" ]; then
mv "$DEST/run-nebula.sh" "$DEST/Nebula" 2>/dev/null || true
fi
chmod +x "$DEST/Nebula" || true
# Ensure directories for icons and desktop entries
mkdir -p "$DEST/usr/share/icons/hicolor/256x256/apps"
mkdir -p "$DEST/usr/share/applications"
# Copy icon if present at top level of extracted AppImage
if [ -f "$SRC/nebula.png" ]; then
cp "$SRC/nebula.png" "$DEST/usr/share/icons/hicolor/256x256/apps/nebula.png"
fi
# Also embed project icon if present in repo assets
PROJECT_ICON="$(cd "$(dirname "$0")" && pwd)/assets/images/Logos/Nebula-Favicon.png"
if [ -f "$PROJECT_ICON" ]; then
echo "Embedding project icon into AppDir: $PROJECT_ICON"
cp "$PROJECT_ICON" "$DEST/usr/share/icons/hicolor/256x256/apps/nebula.png"
fi
# Install desktop file into AppDir
if [ -f "$DEST/nebula.desktop" ]; then
cp "$DEST/nebula.desktop" "$DEST/usr/share/applications/nebula.desktop"
else
cat > "$DEST/usr/share/applications/nebula.desktop" <<'EOF'
[Desktop Entry]
Name=Nebula
Comment=Nebula Browser
Exec=./Nebula %U
Terminal=false
Type=Application
Icon=nebula
Categories=Network;WebBrowser;
StartupWMClass=Nebula
EOF
fi
# Fix permissions
chmod -R a+r "$DEST/usr/share/icons/hicolor/256x256/apps" || true
chmod +x "$DEST/Nebula" || true
echo "AppDir assembled at $DEST. Run with: $DEST/Nebula"