mirror of
https://github.com/Cheviiot/Nivora.git
synced 2026-08-03 15:51:12 +00:00
feat: rename Claude package
This commit is contained in:
@@ -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)
|
||||
|
||||
@@ -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
@@ -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
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user