1- .PHONY : help install format update fastlane
1+ .PHONY : help install format update update_bundle update_swiftformat fastlane
22
33# Цвета ANSI
44YELLOW =\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+
2528install :
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
145156format :
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