# Управление комплектом группы
`groupkit.py` управляет загрузкой и переключением GroupKit.

## Команды
```bash
usage: groupkit.py [-h] cmd ...

positional arguments:
  cmd
    full_help      Распечатать справку
    push           Загрузить комплект группы в общее хранилище
    switch_local   Переключить комплект по локальным hash-файлам
    switch_remote  Переключить комплект по hash-файлам из NFS
```

## Push
```bash
usage: groupkit.py push --namespace NAMESPACE --source SOURCE --destination DESTINATION [--validate-local-hashes]
```

Загружает GroupKit в системное NFS-хранилище через общий механизм `push_basekit` (тот же, что используется в AppKit).

Порядок работы:
- Проверяются архивы/директории в `SOURCE`; директории автоматически упаковываются в `.zip`.
- По умолчанию для каждого архива пересчитываются и перезаписываются оба hash-файла: `.sha1` и `.sha256`.
- При `--validate-local-hashes` уже существующие hash-файлы не перезаписываются, а валидируются; отсутствующие создаются автоматически.
- Локальный хэш сравнивается с хэшем на NFS; если совпадает, повторная загрузка пропускается.
- При несовпадении архив и hash-файлы обновляются на NFS.
- Если компонент отсутствует локально, его архив и hash-файлы удаляются из `DESTINATION`.

Пример:
```bash
./groupkit.sh push --namespace gs-ctk --source workspace/groupkit --destination groupkit/v1
```

## Switch_remote
```bash
usage: groupkit.py switch_remote --config-path CONFIG_PATH --namespace NAMESPACE --resgroup RESGROUP --remote-groupkit REMOTE_GROUPKIT
```

Читает hash-файлы `libs.zip/java.zip/fonts.zip` из системного NFS (`REMOTE_GROUPKIT`) и записывает их в конфигурацию группы ресурсов.

Пример:
```bash
./groupkit.sh switch_remote --config-path ./config.yaml --resgroup gs-cluster-1 --namespace gs-ctk --remote-groupkit groupkit/v1
```

## Switch_local
```bash
usage: groupkit.py switch_local --config-path CONFIG_PATH --resgroup RESGROUP --local-groupkit LOCAL_GROUPKIT --remote-groupkit REMOTE_GROUPKIT
```

Читает hash-файлы `libs.zip/java.zip/fonts.zip` из локальной директории `LOCAL_GROUPKIT` и записывает их в конфигурацию группы ресурсов.

Пример:
```bash
./groupkit.sh switch_local --config-path ./config.yaml --resgroup gs-cluster-1 --local-groupkit workspace/groupkit --remote-groupkit groupkit/v1
```

## Совместимость
- Команда `switch` для GroupKit удалена.
- Совместимый путь использования: `push` (подготовка/сверка хэшей и загрузка в NFS) и затем `switch_remote` или `switch_local` для фиксации hash-значений в конфигурации.
