31 lines
1.7 KiB
Bash
31 lines
1.7 KiB
Bash
#!/bin/false
|
|
if [[ -z "$1" || "$1" == "local" ]]; then
|
|
echo "Создание локального репозитория."
|
|
rm -rf .git # удаление старого репозитория
|
|
git init -b master
|
|
git add .git*
|
|
git commit -m "Инициализация / $dir"
|
|
find . -type f | grep -E 'CONTRIBUTING|LICENSE' | xargs git add
|
|
git commit -m "Открытая лицензия РФ"
|
|
find . -type f -name '*.md' | grep -E 'TREE|WIKI|README|VIEW' | xargs git add
|
|
git commit -m "Описание проекта"
|
|
find . -type f | grep -E '(yml|Gemfile.*|gemspec|robots.txt)$' | xargs git add
|
|
git commit -m "Настройки"
|
|
git add \*.sh
|
|
git commit -m "Скрипты bash"
|
|
find . -type f | grep -E '(min.css|min.js|woff)$' | xargs git add
|
|
git commit -m "Сторонние материалы"
|
|
find . -type f | grep -E '(bmp|gif|ico|jpg|png|svg)$' | xargs git add
|
|
git commit -m "Картинки"
|
|
git add --all
|
|
# преобразование шаблонов "glob" в расширенные выражения "regexp"
|
|
patterns="$(sed 's|\.|\\.|;s|*|.*|' .gitignore | tr '\n' '|')\.git"
|
|
# выбор всех файлов в каталоге, кроме списка ".gitignore", сортировка и внесение в репозиторий
|
|
find . -type f -printf '%P\n' | grep -vE "(^|.+/)($patterns)(/.+|$)" | LC_COLLATE=C sort -r \
|
|
| xargs -I{} -d'\n' bash -c 'echo "Обработка: {}" && git commit "{}" -m "{}" &>/dev/null'
|
|
fi
|
|
if [[ -z "$1" || "$1" == "push" ]]; then
|
|
echo "Подключение к удалённому репозиторию и передача данных."
|
|
git remote add "$domain" "git@$domain:$owner/$repo.git"
|
|
git push -u "$domain" master
|
|
fi
|