52 lines
2.1 KiB
Bash
52 lines
2.1 KiB
Bash
#!/bin/false
|
||
if [[ -z "$domain" || -z "$owner" || -z "$repo" || -z "$dir" ]]; then
|
||
echo "Не указаны обязательные параметры." && exit 1
|
||
fi
|
||
echo "Создание локального репозитория, подключение к удалённому и передача данных."
|
||
time_ms="$(date '+%s%3N')"
|
||
# строка исключений для "find" из списка неотслеживаемых файлов ".gitignore"
|
||
exclusions="-not -path '*/.git/*' $(sed -E "s|^(.*)$|-not -path '*/\1*'|" .gitignore | tr '\n' ' ')"
|
||
# перевести размеры файла в человеко-читаемую строку, отбросить нули из дробной части и добавить пробел
|
||
function BKM { numfmt --to=iec --format="%.2f" --suffix="B" "$1" | sed -r 's|,{,1}0{,2}([BKM])| \1|'; }
|
||
rm -rf .git
|
||
git init -b master
|
||
git remote add "$domain" "git@$domain:$owner/$repo.git"
|
||
git add .git*
|
||
git commit -m "Инициализация / $dir"
|
||
if [ "$domain" == "hub.mos.ru" ]; then
|
||
echo "Второй пуш, потому что лингвист с первого раза не срабатывает."
|
||
git push -u "$domain" master
|
||
fi
|
||
git add CONTRIBUTING.md
|
||
git add \*LICENSE*
|
||
git commit -m "Открытая лицензия РФ"
|
||
git add DIRECTORY_TREE.md
|
||
git add WIKI.md
|
||
git add \*README*
|
||
git commit -m "Описание проекта"
|
||
git add \*.yml
|
||
git add \*Gemfile*
|
||
git add \*install.sh
|
||
git add \*.gemspec
|
||
git add \*robots.txt
|
||
git commit -m "Настройки"
|
||
git add \*.sh
|
||
git commit -m "Скрипты bash"
|
||
git add \*.min.css
|
||
git add \*.min.js
|
||
git add \*.woff
|
||
git commit -m "Сторонние материалы"
|
||
git add \*.bmp
|
||
git add \*.gif
|
||
git add \*.ico
|
||
git add \*.jpg
|
||
git add \*.png
|
||
git add \*.svg
|
||
git commit -m "Картинки"
|
||
while read -r file size; do
|
||
echo "Обработка: $file"
|
||
git add "$file"
|
||
git commit -m "${file#*/} / $(BKM "$size")"
|
||
done < <(eval "find . -type f $exclusions -printf '%p %s\n'" | LC_COLLATE=C sort -r)
|
||
git push -u "$domain" master
|
||
echo "Общее время выполнения: $(($(date '+%s%3N') - time_ms)) мс."
|