fix: replace heredocs with printf to avoid shell heredoc delimiter indentation conflict with YAML block scalar
Build and Release / Validate source (push) Successful in 1m21s
Build and Release / Build (linux) (push) Failing after 6m28s
Build and Release / Finalize Release (push) Has been skipped
Build and Release / Build (windows) (push) Has been cancelled

This commit is contained in:
2026-06-27 04:24:57 +03:00
parent c2ae25f986
commit 746e655ba0
+37 -37
View File
@@ -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