Skip to content

Commit 7f05820

Browse files
committed
Доработал Makefile
- Поделил команду `update` на две части - Проверяем наличие обновлений при вызове `make update`, и если обновления есть, устанавливаем их - При выполнении `make install` проверяем установку `fastlane snapshot` и устанавливаем, если в проекте нет `snapfile`
1 parent d79cdd9 commit 7f05820

File tree

1 file changed

+42
-12
lines changed

1 file changed

+42
-12
lines changed

Makefile

Lines changed: 42 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
.PHONY: help install format update fastlane
1+
.PHONY: help install format update update_bundle update_swiftformat fastlane
22

33
# Цвета ANSI
44
YELLOW=\033[1;33m
@@ -12,16 +12,19 @@ help:
1212
@echo ""
1313
@echo "Доступные команды Makefile:"
1414
@echo ""
15-
@echo " make help - Показать это справочное сообщение."
16-
@echo " make install - Проверить и установить все необходимые инструменты и зависимости для проекта:"
17-
@echo " Homebrew, rbenv, Ruby, Bundler, Ruby-гемы (включая fastlane), SwiftFormat."
18-
@echo " make format - Запустить автоматическое форматирование Swift-кода с помощью SwiftFormat."
19-
@echo " make update - Обновить Ruby-зависимости (например, fastlane) до последних версий и обновить Gemfile.lock."
20-
@echo " make fastlane - Запустить fastlane snapshot для генерации скриншотов приложения (использует bundle exec fastlane snapshot)."
15+
@echo " make help - Показать это справочное сообщение."
16+
@echo " make install - Проверить и установить все необходимые инструменты и зависимости для проекта:"
17+
@echo " Homebrew, rbenv, Ruby, Bundler, Ruby-гемы, fastlane snapshot, SwiftFormat."
18+
@echo " make format - Запустить автоматическое форматирование Swift-кода с помощью SwiftFormat."
19+
@echo " make update - Обновить Ruby-зависимости fastlane и SwiftFormat (вызывает update_bundle и update_swiftformat)."
20+
@echo " make update_bundle - Обновить только Ruby-гемы fastlane и его зависимости."
21+
@echo " make update_swiftformat - Обновить только SwiftFormat через Homebrew."
22+
@echo " make fastlane - Запустить fastlane snapshot для генерации скриншотов приложения."
2123
@echo ""
22-
@echo "Рекомендуется сначала выполнить 'make install' для установки всех зависимостей."
24+
@echo "Рекомендуется сначала выполнить 'make install' для подготовки окружения."
2325
@echo ""
2426

27+
2528
install:
2629
@printf "$(YELLOW)Проверка наличия Homebrew...$(RESET)\n"
2730
@if ! command -v brew >/dev/null 2>&1; then \
@@ -141,6 +144,14 @@ install:
141144
else \
142145
printf "$(GREEN)SwiftFormat уже установлен.$(RESET)\n"; \
143146
fi
147+
148+
@printf "$(YELLOW)Проверка установки fastlane snapshot...$(RESET)\n"
149+
@if [ ! -f fastlane/Snapfile ]; then \
150+
printf "$(YELLOW)Snapfile не найден, выполняется инициализация fastlane snapshot...$(RESET)\n"; \
151+
bundle exec fastlane snapshot init; \
152+
else \
153+
printf "$(GREEN)fastlane snapshot уже готов к использованию.$(RESET)\n"; \
154+
fi
144155

145156
format:
146157
@if ! command -v brew >/dev/null 2>&1 || ! command -v swiftformat >/dev/null 2>&1; then \
@@ -165,7 +176,26 @@ fastlane:
165176
@printf "$(YELLOW)Запуск fastlane snapshot...$(RESET)\n"
166177
@bundle exec fastlane snapshot
167178

168-
update:
169-
@printf "$(YELLOW)Обновление fastlane и других Ruby-зависимостей...$(RESET)\n"
170-
@bundle update
171-
@printf "$(GREEN)Гемы обновлены. Не забудьте закоммитить новый Gemfile.lock!$(RESET)\n"
179+
update: update_bundle update_swiftformat
180+
181+
update_bundle:
182+
@printf "$(YELLOW)Проверка наличия обновлений fastlane и его зависимостей...$(RESET)\n"
183+
@if bundle outdated fastlane --parseable | grep .; then \
184+
printf "$(YELLOW)Есть обновления для fastlane или его зависимостей, выполняется обновление...$(RESET)\n"; \
185+
bundle update fastlane; \
186+
printf "$(GREEN)fastlane и его зависимости обновлены. Не забудьте закоммитить новый Gemfile.lock!$(RESET)\n"; \
187+
else \
188+
printf "$(GREEN)fastlane и его зависимости уже самые свежие.$(RESET)\n"; \
189+
fi
190+
191+
update_swiftformat:
192+
@printf "$(YELLOW)Проверка наличия обновлений SwiftFormat...$(RESET)\n"
193+
@INSTALLED_VER=$$(brew list --versions swiftformat | awk '{print $$2}'); \
194+
LATEST_VER=$$(brew info swiftformat --json=v1 | grep -m 1 '"versions"' -A 4 | grep '"stable"' | awk -F'"' '{print $$4}'); \
195+
if [ "$$INSTALLED_VER" != "$$LATEST_VER" ]; then \
196+
printf "$(YELLOW)Доступна новая версия SwiftFormat ($$INSTALLED_VER -> $$LATEST_VER), обновление...$(RESET)\n"; \
197+
brew upgrade swiftformat; \
198+
printf "$(GREEN)SwiftFormat обновлён до версии $$LATEST_VER.$(RESET)\n"; \
199+
else \
200+
printf "$(GREEN)SwiftFormat уже самой свежей версии ($$INSTALLED_VER).$(RESET)\n"; \
201+
fi

0 commit comments

Comments
 (0)