Skip to content

Commit 9d75026

Browse files
authored
Develop/refactor (#60)
* Добавил гит хук на проверку swiftformat * Добавил проверку на main-ветку при коммитах * Добавил swiftformat в папку с проектом и обновил README * Запустил форматтер
1 parent 3535069 commit 9d75026

File tree

4 files changed

+54
-3
lines changed

4 files changed

+54
-3
lines changed

README.md

Lines changed: 29 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,22 @@
11
# SW Площадки
2-
[Ссылка на приложение в AppStore](https://itunes.apple.com/us/app/jobsy/id1035159361)
2+
[Ссылка на приложение в AppStore](https://workout.su/ios)
3+
4+
## Установка и настройка проекта
5+
1. Клонировать репозиторий
6+
2. В терминале перейти в папку с проектом
7+
```shell
8+
cd SwiftUI-WorkoutApp
9+
```
10+
3. Настроить адрес папки с хуками `SwiftUI-WorkoutApp/githooks`
11+
```shell
12+
git config core.hooksPath .githooks
13+
```
14+
4. Дать разрешение на запуск хука `pre-commit`
15+
```shell
16+
chmod +x SwiftUI-WorkoutApp/githooks/pre-commit
17+
```
18+
5. Открыть проект в `Xcode` и дождаться загрузки зависимостей
19+
6. Проект готов к работе!
320

421
## Помощь проекту
522
1. Для доработок создаем **issue** с описанием задачи
@@ -54,6 +71,16 @@
5471
- 4.7 дюйма: iPhone SE (3rd generation)
5572

5673
### Форматирование кода
57-
- Используем `swiftformat` для форматирования кода ([инструкция по установке](https://github.com/nicklockwood/SwiftFormat#how-do-i-install-it))
74+
- Используем [swiftformat (0.50.8)](https://github.com/nicklockwood/SwiftFormat) для форматирования кода
5875
- Правила форматирования перечислены в файле [.swiftformat](.swiftformat)
5976
- Все правила можно найти [тут](https://github.com/nicklockwood/SwiftFormat/blob/master/Rules.md)
77+
78+
#### Как это работает
79+
1. Перед каждым коммитом должен выполняться хук, проверяющий необходимость форматирования кода
80+
2. При нарушении правил форматирования кода, гит выдаст ошибку и напишет команду, которую нужно выполнить для запуска swiftformat
81+
82+
#### Как обновить `swiftformat`
83+
1. Переходим на [страницу с релизами](https://github.com/nicklockwood/SwiftFormat/releases)
84+
2. Скачиваем `swiftformat.zip`
85+
3. Заменяем в папке с проектом старый файл `swiftformat` на новый
86+
4. При необходимости даем системе разрешение на запуск нового файла в `системных настройках -> конфиденциальность и безопасность`

SwiftUI-WorkoutApp/Services/DefaultsService.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ final class DefaultsService: ObservableObject, DefaultsProtocol {
5757
private(set) var hasFriends = false
5858

5959
@AppStorage(Key.unreadMessagesCount.rawValue)
60-
private (set) var unreadMessagesCount = 0
60+
private(set) var unreadMessagesCount = 0
6161

6262
var mainUserInfo: UserResponse? {
6363
try? JSONDecoder().decode(UserResponse.self, from: userInfo)

githooks/pre-commit

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
#!/usr/bin/env bash
2+
# Usage: ./githooks/pre-commit
3+
4+
branch="$(git rev-parse --abbrev-ref HEAD)"
5+
6+
if [ "$branch" = "main" ]; then
7+
echo "Для изменения этой ветки нужно создать pull request"
8+
exit 1
9+
fi
10+
11+
SCRIPTDIR=$(dirname "$0")
12+
SWIFTFORMATDIR="$(dirname "$SCRIPTDIR")"
13+
14+
if ! $SWIFTFORMATDIR/swiftformat . --lint; then
15+
# Need to run swiftformat .
16+
echo ""
17+
echo "Похоже есть код, который нужно отформатировать."
18+
echo "Запусти в терминале из папки с проектом файл swiftformat с точкой после пробела:"
19+
echo "$SWIFTFORMATDIR/swiftformat ."
20+
exit 1
21+
else
22+
# Format is OK
23+
exit 0
24+
fi

swiftformat

3.34 MB
Binary file not shown.

0 commit comments

Comments
 (0)