Admin Future
239 subscribers
50 photos
1 video
4 files
87 links
Превращаем эникейщиков в System Architects.
🚀 Твой навигатор в мире IT-инфраструктуры:

▪️ Hard Skills: Linux, Windows, Network, Security
▪️ Tools: Лучший софт и скрытые фишки
▪️ Mindset: Как думать, чтобы платили много


Админ - @maksimshap
Download Telegram
macOS: Профессиональные диалоги в скриптах с swiftDialog

Когда вы автоматизируете настройку 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 #скрипты