Разбор 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~~