diff --git a/.gitea/workflows/build-and-release.yaml b/.gitea/workflows/build-and-release.yaml index 8449c08..79d87be 100644 --- a/.gitea/workflows/build-and-release.yaml +++ b/.gitea/workflows/build-and-release.yaml @@ -122,49 +122,49 @@ jobs: cp -r "dist/${{ env.APP_NAME }}"/* "${APPDIR}/usr/bin/" # Desktop entry - cat > "${APPDIR}/${{ env.APP_NAME }}.desktop" << DESKTOP_EOF - [Desktop Entry] - Name=Warlock Studio - Comment=AI-powered video upscaling, restoration and frame interpolation - Exec=Warlock-Studio - Icon=warlock-studio - Terminal=false - Type=Application - Categories=Graphics;Video;AudioVideo; - DESKTOP_EOF + printf '%s\n' \ + '[Desktop Entry]' \ + 'Name=Warlock Studio' \ + 'Comment=AI-powered video upscaling, restoration and frame interpolation' \ + 'Exec=Warlock-Studio' \ + 'Icon=warlock-studio' \ + 'Terminal=false' \ + 'Type=Application' \ + 'Categories=Graphics;Video;AudioVideo;' \ + > "${APPDIR}/${{ env.APP_NAME }}.desktop" # AppRun — entry point - cat > "${APPDIR}/AppRun" << 'APPRUN_EOF' - #!/bin/bash - HERE="$(dirname "$(readlink -f "$0")")" - export PATH="${HERE}/usr/bin:${PATH}" - export LD_LIBRARY_PATH="${HERE}/usr/bin/_internal:${LD_LIBRARY_PATH}" - exec "${HERE}/usr/bin/Warlock-Studio" "$@" - APPRUN_EOF + printf '%s\n' \ + '#!/bin/bash' \ + 'HERE="$(dirname "$(readlink -f "$0")")"' \ + 'export PATH="${HERE}/usr/bin:${PATH}"' \ + 'export LD_LIBRARY_PATH="${HERE}/usr/bin/_internal:${LD_LIBRARY_PATH}"' \ + 'exec "${HERE}/usr/bin/Warlock-Studio" "$@"' \ + > "${APPDIR}/AppRun" chmod +x "${APPDIR}/AppRun" # Icon: try to convert .ico, fallback to placeholder PNG if command -v python3 &>/dev/null; then - python3 << 'PYEOF' - import os, base64 - apdir = os.environ.get('APPDIR', 'dist/Warlock-Studio.AppDir') - png_path = os.path.join(apdir, 'warlock-studio.png') - # Write a 48x48 transparent PNG as icon placeholder - with open(png_path, 'wb') as f: - f.write(base64.b64decode( - 'iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAACXBIWXMAAAsTAAALEwEAmpwYAAAB' - 'WElEQVRoQ+2YOw7CMBBEQ0WHaDgBByDhCBScgAMQdFScgJoj0HABQqJAwk0CQhL5s5KVj0rs' - '2LFj165nRzL9f+cBAQICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgoj8iMhJ' - 'AL4AZACYi0gSkQKAOwDc3H0AUJQdAHBXROSdSaYAQB3D1N0BoO6fA+DuTQA4m80uALABAGd3' - 'B4Cq+yf7o+sEAK7uDgBZ3QcAOAB0R5hPJpPl9/t9X5bldz6fdwCw2+2+6v5RluUDABaLxUvd' - 'P8uyvANARIRlWX4BwGaz+aymKYviiYhwdV+O4xjeK6WkqioCgLu7EEKIiMy6rrsCQFXViYik' - 'lHijASGEMKZq3meMRNM0KaV0mE6nJymlMwCklNLUhMPhoOu6LgBQKUUppTTFQMYYSimlqQbd' - 'b5RS4t2IiIgaY4wx8toYoymlNE1ozzljjAYAgKPRSNV9DgAiYowx3ogBACEEz+fzEwDyPM/b' - 'tj0BQNM0eZq238LD4A8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhgAJ3F' - 'Af+7OiaAAAAASUVORK5CYII=' - )) - print(f'Icon written: {png_path}') - PYEOF + printf '%s\n' \ + 'import os, base64' \ + 'apdir = os.environ.get("APPDIR", "dist/Warlock-Studio.AppDir")' \ + 'png_path = os.path.join(apdir, "warlock-studio.png")' \ + 'with open(png_path, "wb") as f:' \ + ' f.write(base64.b64decode(' \ + " 'iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAACXBIWXMAAAsTAAALEwEAmpwYAAAB'" \ + " 'WElEQVRoQ+2YOw7CMBBEQ0WHaDgBByDhCBScgAMQdFScgJoj0HABQqJAwk0CQhL5s5KVj0rs'" \ + " '2LFj165nRzL9f+cBAQICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgoj8iMhJ'" \ + " 'AL4AZACYi0gSkQKAOwDc3H0AUJQdAHBXROSdSaYAQB3D1N0BoO6fA+DuTQA4m80uALABAGd3'" \ + " 'B4Cq+yf7o+sEAK7uDgBZ3QcAOAB0R5hPJpPl9/t9X5bldz6fdwCw2+2+6v5RluUDABaLxUvd'" \ + " 'P8uyvANARIRlWX4BwGaz+aymKYviiYhwdV+O4xjeK6WkqioCgLu7EEKIiMy6rrsCQFXViYik'" \ + " 'lHijASGEMKZq3meMRNM0KaV0mE6nJymlMwCklNLUhMPhoOu6LgBQKUUppTTFQMYYSimlqQbd'" \ + " 'b5RS4t2IiIgaY4wx8toYoymlNE1ozzljjAYAgKPRSNV9DgAiYowx3ogBACEEz+fzEwDyPM/b'" \ + " 'tj0BQNM0eZq238LD4A8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhgAJ3F'" \ + " 'Af+7OiaAAAAASUVORK5CYII='" \ + '))' \ + "print(f'Icon written: {png_path}')" \ + > /tmp/gen_icon.py + python3 /tmp/gen_icon.py fi # Download appimagetool