Default KGet's download folder to Downloads and add release workflow

install.sh now sets KGet's remembered "New Download" folder
(kgetrc Internal/LastDirectory) to the XDG downloads directory if it
isn't already configured, since KGet's own out-of-the-box default was
Documents. Falls back correctly even when xdg-user-dir has no
user-dirs.dirs config to read (it silently returns bare $HOME
otherwise).

Also add a GitHub Actions workflow that packages extension/ into a zip
and publishes a GitHub Release with generated notes whenever a
v*.*.* tag is pushed.
This commit is contained in:
2026-08-12 09:13:13 +03:00
parent ef70a20093
commit f7abd7262b
3 changed files with 79 additions and 0 deletions
+39
View File
@@ -51,6 +51,45 @@ if [ "$registered_any" = false ]; then
done
fi
echo "Checking KGet's default download folder..."
python3 - <<'PYEOF'
import configparser
import os
import subprocess
kgetrc = os.path.expanduser("~/.config/kgetrc")
key = "LastDirectory[$e]"
home = os.path.expanduser("~")
try:
result = subprocess.run(["xdg-user-dir", "DOWNLOAD"], capture_output=True, text=True, timeout=5)
downloads = result.stdout.strip()
except (FileNotFoundError, subprocess.TimeoutExpired):
downloads = ""
# xdg-user-dir falls back to bare $HOME (not $HOME/Downloads) when there's
# no ~/.config/user-dirs.dirs at all -- treat that the same as "not found".
if not downloads or downloads.rstrip("/") == home.rstrip("/"):
downloads = os.path.join(home, "Downloads")
cp = configparser.ConfigParser(interpolation=None)
cp.optionxform = str
if os.path.exists(kgetrc):
cp.read(kgetrc)
if not cp.has_section("Internal"):
cp.add_section("Internal")
if key in cp["Internal"]:
print(f"KGet's default download folder is already set ({cp['Internal'][key]}), leaving it as-is")
else:
cp["Internal"][key] = downloads + "/"
os.makedirs(os.path.dirname(kgetrc), exist_ok=True)
with open(kgetrc, "w") as f:
cp.write(f)
print(f"Set KGet's default download folder to {downloads}")
print("(If KGet is currently running, restart it for this to take effect.)")
PYEOF
EXT_ID=$(cat "$SCRIPT_DIR/keys/extension-id.txt")
cat <<EOF