README: краткая шпаргалка; install.sh как install.ps1 (SSH/HTTPS авто).

This commit is contained in:
2026-06-19 23:41:57 +10:00
parent 2e3b303029
commit 7388ef1462
3 changed files with 137 additions and 54 deletions
+77 -44
View File
@@ -1,81 +1,114 @@
# Rules
Правила и скрипты для настройки нового компьютера: SSH-ключи, Cursor rules, git remotes, home Gitea.
Скрипты для Cursor rules, SSH и git remotes (`kalinamall`, `home`, `github`).
## Один вызов: `init-cursor`
## Быстро: что запускать
| Состояние машины | Что делает `init-cursor` |
|------------------|--------------------------|
| Ничего не настроено | SSH-ключи, Gitea API, clone Rules в `$HOME/CursorRules`, профиль shell |
| Git уже настроен | Только копирует rules в текущий проект + remotes |
| Ситуация | Windows | Mac / Linux |
|----------|---------|-------------|
| **Новый комп**ичего не настроено) | Скопировать `install.ps1` с рабочего ПК → запустить в каталоге проекта | То же с `install.sh` |
| **Комп уже настраивали** (`~/CursorRules` есть) | `init-cursor` в каталоге проекта | `init-cursor` |
| **Только обновить rules** | `init-cursor -Update` | `init-cursor --update` |
Источник правил — локальный клон `$HOME/CursorRules` (после bootstrap). Обновить: `init-cursor -Update`.
Скрипты **сами** проверяют SSH, clone, ключи и remotes. Вручную выбирать SSH/HTTPS не нужно.
## Новый Windows-ПК
---
Репозиторий **приватный**`irm .../raw/.../install.ps1` без авторизации даст **404**.
## Новый компьютер
### Вариант A: SSH уже работает (этот ПК)
Нужен только **git**. Repo приватный — `curl`/`irm` по raw-URL **не работают**.
### 1. Скопировать один файл с рабочей машины
```powershell
cd C:\Users\papat\Projects\your-repo
git clone --depth 1 ssh://git@git.kalinamall.ru:2222/PapaTramp/Rules.git $HOME\CursorRules
& $HOME\CursorRules\install.ps1
# Windows — с другого ПК (пример)
scp user@work-pc:CursorRules/install.ps1 $env:TEMP\
```
### Вариант B: SSH ещё нет (HTTPS, логин один раз)
```powershell
git clone --depth 1 https://git.kalinamall.ru/PapaTramp/Rules.git $HOME\CursorRules
& $HOME\CursorRules\install.ps1
```bash
# Mac — с другого ПК
scp user@work-pc:CursorRules/install.sh /tmp/
```
Дальше в любом проекте:
USB, общая папка — тоже подходит.
### 2. Запустить в каталоге **вашего проекта**
```powershell
# Windows
cd C:\path\to\your-repo
& $env:TEMP\install.ps1
```
```bash
# Mac
cd ~/projects/your-repo
bash /tmp/install.sh
```
Скрипт сам:
1. Клонирует Rules в `~/CursorRules` (SSH → если не вышло, HTTPS с логином)
2. Настраивает SSH-ключи и Gitea API (если ещё нет)
3. Копирует rules в текущий проект, настраивает remotes
4. Добавляет `init-cursor` в профиль shell
---
## Уже настроенный компьютер
```powershell
cd C:\path\to\your-repo
init-cursor
```
## Новый Linux-хост
```bash
cd ~/projects/your-repo
curl -fsSL https://git.kalinamall.ru/PapaTramp/Rules/raw/branch/main/install.sh | bash
init-cursor
```
Затем:
Если команда не найдена — один раз:
```powershell
. $HOME\CursorRules\init-cursor.ps1 # Windows
```
```bash
init-cursor
init-cursor --update
source ~/CursorRules/init-cursor.sh # Mac
```
## Что происходит внутри
---
1. **install.ps1 / install.sh** — shallow clone Rules по HTTPS (первый раз)
2. **init-cursor** вызывает `Invoke-MachineBootstrap` / `invoke-machine-bootstrap.sh`:
- `local/git-user.conf` — git user.name / email
- `scripts/Setup-GitSsh*` — ключи и `~/.ssh/config`
- `scripts/Register-GiteaSshKeys*` — pubkey в Gitea API
- clone/update `$HOME/CursorRules` (SSH, fallback HTTPS)
3. Копирует `.cursorignore`, `.cursor/rules/*.mdc`, дополняет `.gitignore`
4. `Set-GitRemotes*` + `Ensure-GiteaHomeRepo.ps1` для текущего репозитория
## Обновить rules / скрипты
## Git remotes
```powershell
init-cursor -Update # Windows
```
| Remote | Хост | URL |
|--------|------|-----|
| `kalinamall` | git.kalinamall.ru | `ssh://git@git.kalinamall.ru:2222/PapaTramp/<Repo>.git` |
| `home` | git.papatramp.ru | `ssh://git@git.papatramp.ru:2222/PapaTramp/<Repo>.git` |
| `github` | github.com/PTah | `git@github.com:PTah/<Repo>.git` |
```bash
init-cursor --update # Mac
```
`origin` не используется. `Set-GitRemotes` переименует старый `origin` по хосту. Push/pull Rules: `git push kalinamall`.
Обновит `$HOME/CursorRules` с Gitea и перекопирует rules в проект.
## Конфиги (local/)
---
## Git remotes (в каждом проекте)
| Remote | Куда |
|--------|------|
| `kalinamall` | git.kalinamall.ru |
| `home` | git.papatramp.ru |
| `github` | github.com/PTah |
Push: `git push kalinamall`
---
## Конфиги (`local/`)
| Файл | Назначение |
|------|------------|
| `git-ssh-hosts.conf` | Хосты и профили SSH-ключей |
| `git-user.conf` | `user.name` / `user.email` |
| `git-ssh-hosts.conf` | SSH-хосты и ключи |
| `git-user.conf` | git user.name / email |
| `kalinamall-gitea.conf` | API kalinamall |
| `papatramp-gitea.conf` | API home Gitea |