macOS: Профессиональные диалоги в скриптах с swiftDialog
Когда вы автоматизируете настройку Mac для нового сотрудника с помощью MDM и скриптов, как сообщить ему о процессе? Чёрное окно терминала пугает. Простое уведомление — неинформативно.
swiftDialog — это утилита, которая позволяет выводить красивые, настраиваемые диалоговые окна из любого скрипта (bash, Python). Это поднимает вашу автоматизацию на новый уровень.
Пример: Показываем пользователю этапы настройки его нового Mac.
Установка (в скрипте через brew):
Bash
Скрипт для отображения прогресса:
Bash
Что это даёт?
User Experience: Пользователь видит понятный интерфейс, а не пугающие строки кода.
Информативность: В окно можно выводить статус, иконки, этапы выполнения.
Профессионализм: Это показывает высокий уровень зрелоosti IT-процессов в компании.
Админ пишет скрипт. Архитектор думает о том, как этот скрипт взаимодействует с конечным пользователем.
#macos #bash #automation #ux #скрипты
Когда вы автоматизируете настройку Mac для нового сотрудника с помощью MDM и скриптов, как сообщить ему о процессе? Чёрное окно терминала пугает. Простое уведомление — неинформативно.
swiftDialog — это утилита, которая позволяет выводить красивые, настраиваемые диалоговые окна из любого скрипта (bash, Python). Это поднимает вашу автоматизацию на новый уровень.
Пример: Показываем пользователю этапы настройки его нового Mac.
Установка (в скрипте через brew):
Bash
# Проверяем, установлен ли swiftDialog, и если нет - ставим
if ! command -v dialog &> /dev/null; then
echo "swiftDialog не найден. Устанавливаем..."
/usr/local/bin/brew install swiftDialog
fi
Скрипт для отображения прогресса:
Bash
#!/bin/bash
DIALOG_CMD="/usr/local/bin/dialog"
LOG_FILE="/var/tmp/setup.log"
# Настройки окна
TITLE="Настройка вашего нового Mac"
MESSAGE="Пожалуйста, подождите, мы готовим ваш компьютер к работе. Это может занять 15-20 минут."
ICON="https://corp.example.com/logo.png" # Иконка вашей компании
# Запускаем диалог в фоновом режиме
$DIALOG_CMD --title "$TITLE" --message "$MESSAGE" --icon "$ICON" --progress 5 --commandfile "$LOG_FILE" &
# --- Эмуляция длительных операций ---
echo "progress: 1" > "$LOG_FILE"
echo "listitem: Установка Rosetta 2..." > "$LOG_FILE"
# softwareupdate --install-rosetta --agree-to-license
sleep 5
echo "progress: 2" > "$LOG_FILE"
echo "listitem: Установка Homebrew..." > "$LOG_FILE"
# /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
sleep 5
echo "progress: 3" > "$LOG_FILE"
echo "listitem: Установка корпоративного ПО (Slack, Zoom)..." > "$LOG_FILE"
# brew install slack zoom
sleep 5
echo "progress: 4" > "$LOG_FILE"
echo "listitem: Настройка параметров безопасности..." > "$LOG_FILE"
# scutil --set HostName "new-mac"
sleep 5
echo "progress: 5" > "$LOG_FILE"
echo "listitem: Завершение настройки. Готово!" > "$LOG_FILE"
sleep 3
# Закрываем диалоговое окно
echo "quit:" > "$LOG_FILE"
exit 0
Что это даёт?
User Experience: Пользователь видит понятный интерфейс, а не пугающие строки кода.
Информативность: В окно можно выводить статус, иконки, этапы выполнения.
Профессионализм: Это показывает высокий уровень зрелоosti IT-процессов в компании.
Админ пишет скрипт. Архитектор думает о том, как этот скрипт взаимодействует с конечным пользователем.
#macos #bash #automation #ux #скрипты