release: Claude Code v2.1.72 (25 patches)

This commit is contained in:
delta-cloud-208e
2026-03-10 06:02:20 +00:00
parent dda909b4cc
commit c253494ae6
20 changed files with 16353 additions and 6 deletions

185
codex_old/update-codex.sh Executable file
View File

@@ -0,0 +1,185 @@
#!/bin/bash
#
# Универсальный скрипт обновления OpenAI Codex CLI
# Автоматически скачивает последнюю версию с GitHub Releases
# Использует musl версию для совместимости со старыми системами
#
set -e
# Цвета для вывода
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
BLUE='\033[0;34m'
NC='\033[0m' # No Color
# Определяем путь к codex
CODEX_PATH=$(which codex 2>/dev/null || echo "/usr/local/bin/codex")
CODEX_DIR=$(dirname "$CODEX_PATH")
TEMP_DIR="/tmp/codex-update-$$"
GITHUB_API="https://api.github.com/repos/openai/codex/releases/latest"
# Определяем архитектуру - используем musl для совместимости
ARCH=$(uname -m)
case "$ARCH" in
x86_64)
BINARY_SUFFIX="x86_64-unknown-linux-musl"
;;
aarch64|arm64)
BINARY_SUFFIX="aarch64-unknown-linux-musl"
;;
*)
echo -e "${RED}Неподдерживаемая архитектура: $ARCH${NC}"
exit 1
;;
esac
echo -e "${BLUE}========================================${NC}"
echo -e "${BLUE} OpenAI Codex CLI Updater${NC}"
echo -e "${BLUE}========================================${NC}"
echo ""
# Функция получения текущей версии
get_current_version() {
if command -v codex &> /dev/null; then
local ver=$(codex --version 2>/dev/null | grep -oE '[0-9]+\.[0-9]+\.[0-9]+' | head -1)
if [ -n "$ver" ]; then
echo "$ver"
else
echo "не работает"
fi
else
echo "не установлен"
fi
}
# Функция получения последней версии с GitHub
get_latest_version() {
curl -s "$GITHUB_API" | grep -oP '"tag_name":\s*"rust-v\K[0-9]+\.[0-9]+\.[0-9]+' | head -1
}
# Функция сравнения версий (возвращает 0 если нужно обновление)
version_gt() {
test "$(printf '%s\n' "$1" "$2" | sort -V | tail -n 1)" != "$2"
}
# Получаем версии
echo -e "${YELLOW}Проверка версий...${NC}"
CURRENT_VERSION=$(get_current_version)
echo -e "Текущая версия: ${BLUE}$CURRENT_VERSION${NC}"
LATEST_VERSION=$(get_latest_version)
if [ -z "$LATEST_VERSION" ]; then
echo -e "${RED}Не удалось получить информацию о последней версии${NC}"
exit 1
fi
echo -e "Последняя версия: ${GREEN}$LATEST_VERSION${NC}"
echo ""
# Проверяем нужно ли обновление
if [ "$CURRENT_VERSION" = "$LATEST_VERSION" ]; then
echo -e "${GREEN}✓ Codex уже обновлён до последней версии!${NC}"
exit 0
fi
# Если текущая не работает или не установлена - всегда обновляем
if [ "$CURRENT_VERSION" != "не установлен" ] && [ "$CURRENT_VERSION" != "не работает" ]; then
if ! version_gt "$LATEST_VERSION" "$CURRENT_VERSION"; then
echo -e "${GREEN}✓ Текущая версия актуальна или новее${NC}"
exit 0
fi
fi
echo -e "${YELLOW}Требуется обновление: $CURRENT_VERSION$LATEST_VERSION${NC}"
echo ""
# Формируем URL для скачивания
DOWNLOAD_URL="https://github.com/openai/codex/releases/download/rust-v${LATEST_VERSION}/codex-${BINARY_SUFFIX}.tar.gz"
echo -e "${BLUE}Архитектура: $ARCH (${BINARY_SUFFIX})${NC}"
echo -e "${BLUE}URL: $DOWNLOAD_URL${NC}"
echo ""
# Создаём временную директорию
mkdir -p "$TEMP_DIR"
cd "$TEMP_DIR"
# Скачиваем
echo -e "${YELLOW}Скачивание...${NC}"
if ! curl -L -# -o codex.tar.gz "$DOWNLOAD_URL"; then
echo -e "${RED}Ошибка скачивания${NC}"
rm -rf "$TEMP_DIR"
exit 1
fi
# Распаковываем
echo -e "${YELLOW}Распаковка...${NC}"
tar -xzf codex.tar.gz
# Ищем бинарник (может называться codex или codex-$BINARY_SUFFIX)
BINARY_FILE=""
if [ -f "codex" ]; then
BINARY_FILE="codex"
elif [ -f "codex-${BINARY_SUFFIX}" ]; then
BINARY_FILE="codex-${BINARY_SUFFIX}"
else
# Ищем любой файл начинающийся с codex (исключая .tar.gz)
BINARY_FILE=$(find . -maxdepth 1 -name 'codex*' -type f ! -name '*.gz' | head -1)
fi
if [ -z "$BINARY_FILE" ] || [ ! -f "$BINARY_FILE" ]; then
echo -e "${RED}Бинарник codex не найден в архиве${NC}"
ls -la
rm -rf "$TEMP_DIR"
exit 1
fi
echo -e "${GREEN}Найден бинарник: $BINARY_FILE${NC}"
# Проверяем запущен ли codex и завершаем
if pgrep -x "codex" > /dev/null; then
echo -e "${YELLOW}Обнаружен запущенный процесс codex, завершаем...${NC}"
pkill -9 -x "codex" 2>/dev/null || true
sleep 1
echo -e "${GREEN}✓ Процесс завершён${NC}"
fi
# Устанавливаем
echo -e "${YELLOW}Установка в $CODEX_PATH...${NC}"
chmod +x "$BINARY_FILE"
# Проверяем нужен ли sudo
if [ -w "$CODEX_DIR" ]; then
mv -f "$BINARY_FILE" "$CODEX_PATH"
else
echo -e "${YELLOW}Требуются права sudo для записи в $CODEX_DIR${NC}"
sudo mv -f "$BINARY_FILE" "$CODEX_PATH"
fi
# Очистка
cd /
rm -rf "$TEMP_DIR"
# Обновляем PATH кэш
hash -r 2>/dev/null || true
# Проверяем результат
echo ""
NEW_VERSION=$(get_current_version)
echo -e "${BLUE}========================================${NC}"
echo -e "${GREEN}✓ Обновление завершено!${NC}"
echo -e "${BLUE}========================================${NC}"
echo -e "Было: ${RED}$CURRENT_VERSION${NC}"
echo -e "Стало: ${GREEN}$NEW_VERSION${NC}"
echo ""
# Финальная проверка
if [ "$NEW_VERSION" = "$LATEST_VERSION" ]; then
echo -e "${GREEN}✓ Версия успешно обновлена до $LATEST_VERSION${NC}"
elif [ "$NEW_VERSION" = "не работает" ]; then
echo -e "${RED}✗ Бинарник не запускается! Проверьте зависимости.${NC}"
ldd "$CODEX_PATH" 2>&1 | grep "not found" || true
else
echo -e "${YELLOW}⚠ Версия после установки: $NEW_VERSION (ожидалась $LATEST_VERSION)${NC}"
fi