feat: rename Claude package

This commit is contained in:
Александр
2026-07-25 01:22:52 +10:00
parent f3af93802f
commit 3cc4217790
20 changed files with 50 additions and 43 deletions
+2 -2
View File
@@ -8,7 +8,7 @@ readonly -a PACKAGES=(
chatbox
clash-verge-rev
claude-alt
claude-desktop
claude
codex
fisher
github-desktop
@@ -219,7 +219,7 @@ latest_version() {
balena-etcher) github_latest_release balena-io/etcher ;;
chatbox) latest_chatbox ;;
clash-verge-rev) github_latest_release clash-verge-rev/clash-verge-rev ;;
claude-alt | claude-desktop) latest_claude_desktop ;;
claude | claude-alt) latest_claude_desktop ;;
codex) github_latest_release Boria138/codex-app-linux ;;
fisher) github_latest_release jorgebucaran/fisher ;;
github-desktop)
+1 -1
View File
@@ -26,7 +26,7 @@ esac
# package | command | persistent state marker | desktop/unit | icon
readonly -a lifecycle_packages=(
'clash-verge-rev|/usr/bin/clash-verge|/home/nivora-test/.local/share/io.github.clash-verge-rev.clash-verge-rev/nivora-lifecycle-state|/usr/share/applications/Clash Verge.desktop|/usr/share/icons/hicolor/128x128/apps/clash-verge.png'
'claude-desktop|/usr/bin/claude-desktop|/home/nivora-test/.config/Claude/nivora-lifecycle-state|/usr/share/applications/com.anthropic.Claude.desktop|/usr/share/icons/hicolor/128x128/apps/claude-desktop.png'
'claude|/usr/bin/claude-desktop|/home/nivora-test/.config/Claude/nivora-lifecycle-state|/usr/share/applications/com.anthropic.Claude.desktop|/usr/share/icons/hicolor/128x128/apps/claude-desktop.png'
'codex|/usr/bin/codex-app|/home/nivora-test/.codex/nivora-lifecycle-state|/usr/share/applications/codex-app.desktop|/usr/share/icons/hicolor/512x512/apps/codex-app.png'
'nivora-stplr|/usr/bin/sl|/home/nivora-test/.config/nivora-stplr/nivora-lifecycle-state|-|-'
'opencode|/usr/bin/opencode-desktop|/home/nivora-test/.config/opencode/nivora-lifecycle-state|/usr/share/applications/opencode-desktop.desktop|/usr/share/icons/hicolor/128x128/apps/ai.opencode.desktop.png'
+10 -5
View File
@@ -17,8 +17,8 @@ EXPECTED_PACKAGES = (
"balena-etcher",
"chatbox",
"clash-verge-rev",
"claude",
"claude-alt",
"claude-desktop",
"codex",
"fisher",
"github-desktop",
@@ -43,7 +43,7 @@ REQUIRED_ROOT_FILES = {
Path("stapler-repo.toml"),
Path("docs/maintenance.md"),
Path("docs/security-model.md"),
Path("docs/packages/claude-desktop.md"),
Path("docs/packages/claude.md"),
Path("docs/packages/claude-alt.md"),
Path("docs/packages/codex.md"),
Path("docs/packages/github-desktop.md"),
@@ -166,8 +166,13 @@ def validate_package(package: str, errors: list[str]) -> dict[str, object]:
if provides != [] or conflicts != []:
errors.append(f"{package}: provides/conflicts must not contain binary aliases")
if replaces != [package]:
errors.append(f"{package}: replaces must contain only its own base package name")
expected_replaces = [package]
if package == "claude":
expected_replaces.append("claude-desktop")
if replaces != expected_replaces:
errors.append(
f"{package}: replaces must be {expected_replaces}, got {replaces}"
)
if "package()" not in text or "files()" not in text:
errors.append(f"{package}: package() or files() is missing")
@@ -241,7 +246,7 @@ def validate_readme(metadata: dict[str, dict[str, object]], errors: list[str]) -
errors.append("README.md: catalog must contain exactly six categories")
for package, values in metadata.items():
command = f"stplr install nivora/{package}"
command = f"`stplr install nivora/{package}`"
catalog_rows = [
line for line in text.splitlines() if line.startswith("|") and command in line
]
+13 -11
View File
@@ -93,17 +93,23 @@ for package in "${packages[@]}"; do
}
fi
if [[ "$package" == 'claude-desktop' ]]; then
if [[ "$package" == 'claude' ]]; then
for forbidden_path in \
/usr/bin/claude-alt \
/usr/lib/claude-alt/claude-alt-bin \
/usr/share/applications/com.anthropic.ClaudeAlt.desktop; do
contains_path "$forbidden_path" && {
echo "${package}: обнаружен компонент отдельного пакета ClaudeAlt: ${forbidden_path}" >&2
exit 1
}
done
fi
if [[ "$package" == 'claude-alt' ]]; then
for required_path in \
/usr/bin/claude-alt \
/usr/bin/claude-desktop-account2 \
/usr/lib/claude-desktop/resources/TrayIconLinux.png \
/usr/lib/claude-desktop/resources/TrayIconLinux-Dark.png \
/usr/lib/claude-alt/claude-alt-bin \
/usr/lib/claude-alt/resources/app.asar \
/usr/lib/claude-alt/resources/icon.png \
/usr/lib/claude-alt/resources/TrayIconLinux.png \
/usr/lib/claude-alt/resources/TrayIconLinux-Dark.png \
/usr/share/applications/com.anthropic.ClaudeAlt.desktop \
/usr/share/icons/hicolor/512x512/apps/claude-alt.png; do
contains_path "$required_path" || {
@@ -111,10 +117,6 @@ for package in "${packages[@]}"; do
exit 1
}
done
contains_path '/usr/share/applications/claude-desktop-account2.desktop' && {
echo "${package}: обнаружен устаревший desktop-файл второго профиля" >&2
exit 1
}
fi
if [[ "$package" == 'balena-etcher' ]]; then