Compare commits
2 Commits
95a776e1c5
...
7ff7232585
| Author | SHA1 | Date | |
|---|---|---|---|
| 7ff7232585 | |||
| c9943521c5 |
5
.gitignore
vendored
5
.gitignore
vendored
@@ -4,10 +4,11 @@
|
|||||||
# But not these files...
|
# But not these files...
|
||||||
!.gitignore
|
!.gitignore
|
||||||
!.cursor/
|
!.cursor/
|
||||||
|
!.cursor/**
|
||||||
!*.sh
|
!*.sh
|
||||||
|
!*.bat
|
||||||
!*.bash
|
!*.bash
|
||||||
!*.zsh
|
!*.zsh
|
||||||
!*.fish
|
!*.fish
|
||||||
!*.mdc
|
!*.tsv
|
||||||
!.cursor/**
|
|
||||||
|
|
||||||
|
|||||||
82
clone_projects.bat
Executable file
82
clone_projects.bat
Executable file
@@ -0,0 +1,82 @@
|
|||||||
|
@echo off
|
||||||
|
setlocal enabledelayedexpansion
|
||||||
|
|
||||||
|
REM Скрипт для клонирования проектов из TSV файла
|
||||||
|
REM Формат TSV: check, project_name, project_url
|
||||||
|
|
||||||
|
REM Проверяем, что передан аргумент с именем файла
|
||||||
|
if "%~1"=="" (
|
||||||
|
echo Использование: %0 ^<tsv_file^> [base_dir]
|
||||||
|
echo Пример: %0 projects.tsv
|
||||||
|
echo Пример: %0 projects.tsv C:\Projects
|
||||||
|
echo Пример: %0 projects.tsv .\projects
|
||||||
|
echo Пример: %0 projects.tsv ..\workspace
|
||||||
|
exit /b 1
|
||||||
|
)
|
||||||
|
|
||||||
|
set TSV_FILE=%~1
|
||||||
|
set BASE_DIR=%~2
|
||||||
|
|
||||||
|
REM Если base_dir не указан, используем текущую директорию
|
||||||
|
if "!BASE_DIR!"=="" set BASE_DIR=.
|
||||||
|
|
||||||
|
REM Проверяем существование файла
|
||||||
|
if not exist "%TSV_FILE%" (
|
||||||
|
echo Ошибка: Файл '%TSV_FILE%' не найден
|
||||||
|
exit /b 1
|
||||||
|
)
|
||||||
|
|
||||||
|
REM Создаем базовую директорию, если она не существует
|
||||||
|
if not exist "!BASE_DIR!" (
|
||||||
|
echo Создаем базовую директорию: !BASE_DIR!
|
||||||
|
mkdir "!BASE_DIR!"
|
||||||
|
)
|
||||||
|
|
||||||
|
echo Начинаем клонирование проектов из файла: %TSV_FILE%
|
||||||
|
echo Базовая директория: !BASE_DIR!
|
||||||
|
echo ================================================
|
||||||
|
|
||||||
|
REM Читаем TSV файл построчно
|
||||||
|
for /f "usebackq delims=" %%a in ("%TSV_FILE%") do (
|
||||||
|
set "line=%%a"
|
||||||
|
|
||||||
|
REM Пропускаем пустые строки
|
||||||
|
if not "!line!"=="" (
|
||||||
|
REM Разбиваем строку по табуляции
|
||||||
|
for /f "tokens=1,2,3 delims= " %%b in ("!line!") do (
|
||||||
|
set "check=%%b"
|
||||||
|
set "project_name=%%c"
|
||||||
|
set "project_url=%%d"
|
||||||
|
|
||||||
|
REM Пропускаем заголовки
|
||||||
|
if not "!check!"=="check" (
|
||||||
|
REM Проверяем, нужно ли клонировать (если check = X)
|
||||||
|
if /i "!check!"=="X" (
|
||||||
|
echo Клонирование: !project_name!
|
||||||
|
echo URL: !project_url!
|
||||||
|
|
||||||
|
REM Проверяем, что директория не существует
|
||||||
|
set "PROJECT_PATH=!BASE_DIR!\!project_name!"
|
||||||
|
if exist "!PROJECT_PATH!" (
|
||||||
|
echo Предупреждение: Директория '!PROJECT_PATH!' уже существует, пропускаем
|
||||||
|
echo ---
|
||||||
|
) else (
|
||||||
|
REM Выполняем git clone
|
||||||
|
git clone "!project_url!" "!PROJECT_PATH!"
|
||||||
|
if !errorlevel! equ 0 (
|
||||||
|
echo ✓ Успешно клонирован: !project_name!
|
||||||
|
) else (
|
||||||
|
echo ✗ Ошибка при клонировании: !project_name!
|
||||||
|
)
|
||||||
|
echo ---
|
||||||
|
)
|
||||||
|
) else (
|
||||||
|
echo Пропускаем: !project_name! (check = '!check!')
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
|
echo Клонирование завершено!
|
||||||
|
pause
|
||||||
68
clone_projects.sh
Executable file
68
clone_projects.sh
Executable file
@@ -0,0 +1,68 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# Скрипт для клонирования проектов из TSV файла
|
||||||
|
# Формат TSV: check, project_name, project_url
|
||||||
|
|
||||||
|
# Проверяем, что передан аргумент с именем файла
|
||||||
|
if [ $# -eq 0 ]; then
|
||||||
|
echo "Использование: $0 <tsv_file> [base_dir]"
|
||||||
|
echo "Пример: $0 projects.tsv"
|
||||||
|
echo "Пример: $0 projects.tsv /path/to/projects"
|
||||||
|
echo "Пример: $0 projects.tsv ./projects"
|
||||||
|
echo "Пример: $0 projects.tsv ../workspace"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
TSV_FILE="$1"
|
||||||
|
BASE_DIR="${2:-.}" # Если base_dir не указан, используем текущую директорию
|
||||||
|
|
||||||
|
# Проверяем существование файла
|
||||||
|
if [ ! -f "$TSV_FILE" ]; then
|
||||||
|
echo "Ошибка: Файл '$TSV_FILE' не найден"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Создаем базовую директорию, если она не существует
|
||||||
|
if [ ! -d "$BASE_DIR" ]; then
|
||||||
|
echo "Создаем базовую директорию: $BASE_DIR"
|
||||||
|
mkdir -p "$BASE_DIR"
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "Начинаем клонирование проектов из файла: $TSV_FILE"
|
||||||
|
echo "Базовая директория: $BASE_DIR"
|
||||||
|
echo "================================================"
|
||||||
|
|
||||||
|
# Читаем TSV файл, пропуская заголовок (если есть)
|
||||||
|
# Ожидаемый формат: check, project_name, project_url
|
||||||
|
while IFS=$'\t' read -r check project_name project_url; do
|
||||||
|
# Пропускаем пустые строки и строки с заголовками
|
||||||
|
if [[ -z "$check" || "$check" == "check" ]]; then
|
||||||
|
continue
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Проверяем, нужно ли клонировать (если check = X)
|
||||||
|
if [[ "$check" == "X" || "$check" == "x" ]]; then
|
||||||
|
echo "Клонирование: $project_name"
|
||||||
|
echo "URL: $project_url"
|
||||||
|
|
||||||
|
# Проверяем, что директория не существует
|
||||||
|
PROJECT_PATH="$BASE_DIR/$project_name"
|
||||||
|
if [ -d "$PROJECT_PATH" ]; then
|
||||||
|
echo "Предупреждение: Директория '$PROJECT_PATH' уже существует, пропускаем"
|
||||||
|
echo "---"
|
||||||
|
continue
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Выполняем git clone
|
||||||
|
if git clone "$project_url" "$PROJECT_PATH"; then
|
||||||
|
echo "✓ Успешно клонирован: $project_name"
|
||||||
|
else
|
||||||
|
echo "✗ Ошибка при клонировании: $project_name"
|
||||||
|
fi
|
||||||
|
echo "---"
|
||||||
|
else
|
||||||
|
echo "Пропускаем: $project_name (check = '$check')"
|
||||||
|
fi
|
||||||
|
done < "$TSV_FILE"
|
||||||
|
|
||||||
|
echo "Клонирование завершено!"
|
||||||
2
projects.tsv
Normal file
2
projects.tsv
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
check project_name project_url
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user