diff --git a/.gitea/workflows/release.yml b/.gitea/workflows/build-and-release.yaml similarity index 81% rename from .gitea/workflows/release.yml rename to .gitea/workflows/build-and-release.yaml index 10f5ede..8449c08 100644 --- a/.gitea/workflows/release.yml +++ b/.gitea/workflows/build-and-release.yaml @@ -123,48 +123,48 @@ jobs: # 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 + [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 # 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 + #!/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 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 + 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 fi # Download appimagetool @@ -326,16 +326,16 @@ PYEOF "${server}/api/v1/repos/${repo}/releases?tag=${tag}") echo "Release info:" echo "${releases}" | python3 -c " -import sys,json -data=json.load(sys.stdin) -if isinstance(data,list) and len(data)>0: - r=data[0] - print(f\" ID: {r['id']}\") - print(f\" Tag: {r['tag_name']}\") - print(f\" Name: {r['name']}\") - print(f\" Assets: {len(r.get('assets',[]))}\") - for a in r.get('assets',[]): - print(f\" - {a['name']} ({a['size']} bytes)\") -else: - print(' No release found for tag ' + tag) -" 2>/dev/null || echo " Could not parse release data" + import sys,json + data=json.load(sys.stdin) + if isinstance(data,list) and len(data)>0: + r=data[0] + print(f\" ID: {r['id']}\") + print(f\" Tag: {r['tag_name']}\") + print(f\" Name: {r['name']}\") + print(f\" Assets: {len(r.get('assets',[]))}\") + for a in r.get('assets',[]): + print(f\" - {a['name']} ({a['size']} bytes)\") + else: + print(' No release found for tag ' + tag) + " 2>/dev/null || echo " Could not parse release data"