Разбор Crab Mysqldump2Git
Различия
Здесь показаны различия между двумя версиями данной страницы.
| Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
|
правила_разработки:как_надо_делать:разбор_crab_mysqldump2git [03.09.2018 14:01] admin |
правила_разработки:как_надо_делать:разбор_crab_mysqldump2git [20.05.2019 15:18] (текущий) |
||
|---|---|---|---|
| Строка 23: | Строка 23: | ||
| ARG_BACKUP_DIR="${5}" | ARG_BACKUP_DIR="${5}" | ||
| PREFIX="${ARG_DB_NAME}.sql" | PREFIX="${ARG_DB_NAME}.sql" | ||
| - | cd "$ARG_BACKUP_DIR" | ||
| - | rm -f "$PREFIX.table."* | ||
| prepare(){ | prepare(){ | ||
| - | ### Присвоение глобальных переменных и ARG_NAME здесь не делаем, делаем в начале скрипта | ||
| if [ ! -d .git ]; then | if [ ! -d .git ]; then | ||
| git init . | git init . | ||
| Строка 104: | Строка 101: | ||
| set -euE | set -euE | ||
| - | ### Делаем хелп в самом верху скрипта тк он же является и инфо о скрипте и сразу понятно, что делает скрипт | + | ### Делаем --help самом верху скрипта тк он же является и инфо о скрипте и сразу понятно, что делает скрипт |
| if [ "${1:---help}" = "--help" ]; then | if [ "${1:---help}" = "--help" ]; then | ||
| echo 'Info: Создает бекап mysql бд и отправляет его в git origin, таблицы пофайлово' | echo 'Info: Создает бекап mysql бд и отправляет его в git origin, таблицы пофайлово' | ||
| Строка 116: | Строка 113: | ||
| ### Подготовительная работа | ### Подготовительная работа | ||
| ### Подготавливаем глобальные переменные, что тождественно приватным property объекта self | ### Подготавливаем глобальные переменные, что тождественно приватным property объекта self | ||
| - | ### по сути понимаем, что $USER - это self.user или crab_mysqldump2git.user | + | ### по сути понимаем, что $ARG_USER - это self.user или crab_mysqldump2git.user |
| - | ### парсинг аргументов не стандартизован, для простоты кода оставим позиционно зависимый | + | ### все аргументы записываем в ARG_NAME=значение, если это опция ARG_OPTNAME=TRUE, если позиционная в массив ARGV[$ARGC]="$i" |
| + | |||
| + | ### стараемся глобальные переменные устанавливать в начале скрипта так удобней для чтения | ||
| + | # self.ARG_USER="${1/--user=/}" | ||
| ARG_USER="${1/--user=/}" | ARG_USER="${1/--user=/}" | ||
| + | # self.ARG_PASSWORD="${2/--password=/}" и т.д. | ||
| ARG_PASSWORD="${2/--password=/}" | ARG_PASSWORD="${2/--password=/}" | ||
| ARG_DB_HOST="${3/--host=/}" | ARG_DB_HOST="${3/--host=/}" | ||
| Строка 124: | Строка 125: | ||
| ARG_BACKUP_DIR="${5}" | ARG_BACKUP_DIR="${5}" | ||
| PREFIX="${ARG_DB_NAME}.sql" | PREFIX="${ARG_DB_NAME}.sql" | ||
| - | cd "$ARG_BACKUP_DIR" | ||
| - | rm -f "$PREFIX.table."* | ||
| - | ### подготовительная работа инициализация каталога при необходимости | + | ### подготовительная работа действия, инициализация каталога при необходимости и тп |
| prepare(){ | prepare(){ | ||
| ### Присвоение глобальных переменных и ARG_NAME здесь не делаем, делаем в начале скрипта | ### Присвоение глобальных переменных и ARG_NAME здесь не делаем, делаем в начале скрипта | ||
| Строка 145: | Строка 144: | ||
| ### Описание пользовательских команд(методов) и функций | ### Описание пользовательских команд(методов) и функций | ||
| ### метод может работать с глобальными переменным без входящих значений | ### метод может работать с глобальными переменным без входящих значений | ||
| - | ### если эти переменные это атрибут объекта self-script или его CONF_NAME переменные | + | ### если эти переменные это атрибут объекта self-script или его ARG_NAME CONF_NAME переменные |
| ### но если это иные переменные, то обязательно делать через входные значения | ### но если это иные переменные, то обязательно делать через входные значения | ||
| - | ### например Только аргументом если мы обрабатываем файлы, | + | ### например ТОЛЬКО аргументом если мы обрабатываем файлы циклом, |
| ### через for file in /tmp/mysql/*; do funct_name "$file"; done | ### через for file in /tmp/mysql/*; do funct_name "$file"; done | ||
| + | # self.mysqldump_csplit_per_table() | ||
| mysqldump_csplit_per_table(){ | mysqldump_csplit_per_table(){ | ||
| set -o pipefail | set -o pipefail | ||
| Строка 162: | Строка 162: | ||
| } | } | ||
| + | # self.table_split_per_size10MB() | ||
| table_split_per_size10MB(){ | table_split_per_size10MB(){ | ||
| local table="" | local table="" | ||
| Строка 213: | Строка 214: | ||
| {(rater>id=1|name=правила_разработки:как_надо_делать:разбор_crab_mysqldump2git|type=vote|trace=user|tracedetails=1)} | {(rater>id=1|name=правила_разработки:как_надо_делать:разбор_crab_mysqldump2git|type=vote|trace=user|tracedetails=1)} | ||
| + | |||
| + | |||
| + | ~~OWNERAPPROVE~~ | ||