Bash · 10.10.2025

Bash: расширения в кармане

Этот пост является прямым продолжением двух предыдущих постов (конкретно этого и этого) про бэкап списка расширений и в целом про редактор исходного кода VSCodium.

В прошлый раз при резервировании списка расширений я упомянул, что не проводил тестирование скрипта PowerShell в среде операционной системы Linux. Да и какой смысл тащить ps1 в окружение, где уже существует прекрасный самобытный язык автоматизации.

В итоговом варианте sh-скрипт для резервирования и восстановления расширений VSCodium выглядит так:

#!/bin/bash
# sudo chmod +x /scripts/vscodium_extensions_backup.sh

# Имя файла для сохранения #
extfile="vscodium_extensions.backup"

# Команда для вызова VSCodium #
codiumcommand="/usr/bin/flatpak run --branch=stable --arch=x86_64 --command=codium --file-forwarding com.vscodium.codium"

# Получение списка расширений #
function ext_backup() 
{
    if $codiumcommand --list-extensions > "$extfile"; then
        echo -e "Список расширений успешно сохранён в $extfile."
        return 0
    else
        echo -e "Не удалось сохранить список расширений."
        return 1
    fi
}

# Восстановление расширений #
function ext_recovery() 
{
    if [[ ! -s $extfile ]]; then
        echo -e "Файл $extfile пуст."
        return 1
    fi

    while IFS= read -r ext; do
        $codiumcommand --install-extension "$ext" --force
        echo -e "Расширение $ext восстановлено."
    done < "$extfile"

    return 0
}

# Копирование или восстановление расширений VSCodium #
if [[ -f $extfile ]]; then
    if ext_recovery; then
        echo -e "Восстановление завершено!"
    else
        echo -e "Во время извлечения списка расширений что-то пошло не так..."
    fi
else
    if ext_backup; then
        echo -e "Файл $extfile успешно создан."
    fi
fi

echo "Работа скрипта завершена..."

Тестирование работы скрипта я проводил на операционной системе Linux Mint 22 Wilma. И, само собой, переменная codiumcommand у меня содержит обращение к flatpak. Если Ваша версия операционки знакома с командой codium без использования посредников и дополнительных окружений — замените значение переменной codiumcommand на корректную команду.

И, кстати, хочу разочаровать — псевдонимы команд (которые alias) не работают в скриптах. С этим просто надо смириться.