init-cursor: авто-bootstrap git на новом ПК, install.ps1 с Gitea.
Один вызов init-cursor настраивает SSH при необходимости и копирует rules в проект.
This commit is contained in:
@@ -2,58 +2,55 @@
|
||||
|
||||
Правила и скрипты для настройки нового компьютера: SSH-ключи, Cursor rules, git remotes, home Gitea.
|
||||
|
||||
## Как это устроено
|
||||
## Один вызов: `init-cursor`
|
||||
|
||||
| Этап | Скрипт | Что делает |
|
||||
|------|--------|------------|
|
||||
| Новый ПК | `bootstrap.ps1` / `bootstrap.sh` | SSH-ключи, регистрация в Gitea, `git clone` Rules → `$HOME/CursorRules` |
|
||||
| Новый проект | `init-cursor` | Копирует rules **из локального** `$HOME/CursorRules` в текущий каталог |
|
||||
| Обновить rules | `init-cursor -Update` | `git pull` в `$HOME/CursorRules`, затем копирование |
|
||||
| Состояние машины | Что делает `init-cursor` |
|
||||
|------------------|--------------------------|
|
||||
| Ничего не настроено | SSH-ключи, Gitea API, clone Rules в `$HOME/CursorRules`, профиль shell |
|
||||
| Git уже настроен | Только копирует rules в текущий проект + remotes |
|
||||
|
||||
`init-cursor` **не** тянет правила с remote напрямую — только из локального клона. Сначала нужен bootstrap (или ручной clone после настройки SSH).
|
||||
Источник правил — локальный клон `$HOME/CursorRules` (после bootstrap). Обновить: `init-cursor -Update`.
|
||||
|
||||
## Новый Windows-ПК
|
||||
|
||||
На голом ПК нет доступа к приватному git — сначала скопируйте каталог Rules с рабочей машины:
|
||||
В каталоге **вашего проекта** (один раз, Gitea спросит логин/пароль по HTTPS):
|
||||
|
||||
```powershell
|
||||
scp -r user@working-pc:~/CursorRules $env:TEMP\rules-bootstrap
|
||||
cd $env:TEMP\rules-bootstrap
|
||||
.\bootstrap.ps1
|
||||
irm https://git.kalinamall.ru/PapaTramp/Rules/raw/branch/main/install.ps1 | iex
|
||||
```
|
||||
|
||||
Bootstrap:
|
||||
Дальше в любом проекте:
|
||||
|
||||
1. `git config` user.name / user.email (`local/git-user.conf`)
|
||||
2. Генерирует SSH-ключи, пишет `~/.ssh/config` (`scripts/Setup-GitSsh.ps1`)
|
||||
3. Регистрирует pubkey в Gitea API (`scripts/Register-GiteaSshKeys.ps1`)
|
||||
4. `git clone ssh://git@git.kalinamall.lan:2222/PapaTramp/Rules.git` → `$HOME\CursorRules`
|
||||
5. Добавляет `init-cursor` в PowerShell profile
|
||||
```powershell
|
||||
init-cursor
|
||||
```
|
||||
|
||||
## Новый Linux-хост
|
||||
|
||||
```bash
|
||||
scp -r user@working-pc:~/CursorRules /tmp/rules-bootstrap
|
||||
cd /tmp/rules-bootstrap
|
||||
chmod +x bootstrap.sh scripts/*.sh
|
||||
./bootstrap.sh
|
||||
cd ~/projects/your-repo
|
||||
curl -fsSL https://git.kalinamall.ru/PapaTramp/Rules/raw/branch/main/install.sh | bash
|
||||
```
|
||||
|
||||
## В каждом проекте
|
||||
|
||||
```powershell
|
||||
cd C:\path\to\repo
|
||||
init-cursor
|
||||
init-cursor -Update # подтянуть свежие rules из remote
|
||||
```
|
||||
Затем:
|
||||
|
||||
```bash
|
||||
cd ~/projects/myrepo
|
||||
init-cursor
|
||||
init-cursor --update
|
||||
```
|
||||
|
||||
Скрипт копирует `.cursorignore` и `.cursor/rules/*.mdc`, дополняет `.gitignore`, настраивает remotes (`home`, `github`, `kalinamall`) и создаёт репозиторий на home Gitea через API.
|
||||
## Что происходит внутри
|
||||
|
||||
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` для текущего репозитория
|
||||
|
||||
`bootstrap.ps1` / `bootstrap.sh` оставлены для ручного запуска без проекта.
|
||||
|
||||
## Конфиги (local/)
|
||||
|
||||
@@ -61,7 +58,5 @@ init-cursor --update
|
||||
|------|------------|
|
||||
| `git-ssh-hosts.conf` | Хосты и профили SSH-ключей |
|
||||
| `git-user.conf` | `user.name` / `user.email` |
|
||||
| `kalinamall-gitea.conf` | API kalinamall (для регистрации SSH-ключа) |
|
||||
| `papatramp-gitea.conf` | API home Gitea + Ensure-GiteaHomeRepo |
|
||||
|
||||
Заполните `GiteaApiPassword` в `kalinamall-gitea.conf` (приватный репозиторий).
|
||||
| `kalinamall-gitea.conf` | API kalinamall |
|
||||
| `papatramp-gitea.conf` | API home Gitea |
|
||||
|
||||
Reference in New Issue
Block a user