Skip to content

Commit 1504f88

Browse files
committed
Refactored and added sql:cli command
1 parent 5b12210 commit 1504f88

File tree

3 files changed

+27
-12
lines changed

3 files changed

+27
-12
lines changed

completion/bash/itkdev-docker-compose-completion.bash

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ _idc_completions()
99
fi
1010

1111
# Keep the suggestions in a local variable
12-
local suggestions=($(compgen -W "dory:start dory:stop url open drush nfs:enable template:install traefik:start traefik:stop traefik:open traefik:url mail:open mail:url mailhog:open mailhog:url sql:connect sql:log sql:port sql:open xdebug xdebug3 hosts:insert self:update sync sync:db sync:files images:pull composer php version bin/console" -- "${COMP_WORDS[1]}"))
12+
local suggestions=($(compgen -W "dory:start dory:stop url open drush nfs:enable template:install traefik:start traefik:stop traefik:open traefik:url mail:open mail:url mailhog:open mailhog:url sql:cli sql:connect sql:log sql:port sql:open xdebug xdebug3 hosts:insert self:update sync sync:db sync:files images:pull composer php version bin/console" -- "${COMP_WORDS[1]}"))
1313

1414
COMPREPLY=("${suggestions[@]}")
1515

completion/zsh/_itkdev-docker-compose

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@ _itkdev-docker-compose() {
3737
'sync[Sync both database and files.]' \
3838
'sync\:db[Sync database base.]' \
3939
'sync\:files[Sync files base.]' \
40+
'sql\:cli[Open mysql cli.]' \
4041
'sql\:connect[Print mysql command for connecting to database.]' \
4142
'sql\:log[Log SQL queries sent to database.]' \
4243
'sql\:port[Display the exposed MariaDB SQL server port.]' \

scripts/itkdev-docker-compose

Lines changed: 25 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -186,20 +186,24 @@ Commands:
186186
Sync files base on 'REMOTE_PATH' or 'LOCAL_PATH' in
187187
the env file.
188188
189-
sql:connect
190-
Print mysql command for connecting to database (named
191-
`db`) in the database container (`mariadb`).
192-
193-
Use `$(itkdev-docker-compose sql:connect)` to open the
194-
database cli.
189+
sql:cli
190+
Open MySQL client to the database (named `db`) in the database
191+
container (`mariadb`).
195192
196193
Execute a SQL query from the command line:
197194
198-
$(itkdev-docker-compose sql:connect) --table <<< 'SHOW TABLES'
195+
itkdev-docker-compose sql:cli --table <<< 'SHOW TABLES'
199196
200197
Run a SQL script:
201198
202-
$(itkdev-docker-compose sql:connect) < query.sql
199+
itkdev-docker-compose sql:cli < query.sql
200+
201+
sql:connect
202+
Print mysql command for connecting to database (named
203+
`db`) in the database container (`mariadb`).
204+
205+
Use `$(itkdev-docker-compose sql:connect)` to open the
206+
database cli.
203207
204208
sql:log
205209
Log SQL queries sent to database.
@@ -572,7 +576,7 @@ case "$cmd" in
572576
fi
573577

574578
if command -v pv >/dev/null 2>&1; then
575-
ssh ${REMOTE_HOST} ${REMOTE_DB_DUMP_CMD} | pv | eval $(itkdev-docker-compose sql:connect)
579+
ssh ${REMOTE_HOST} ${REMOTE_DB_DUMP_CMD} | pv | itkdev-docker-compose sql:cli
576580
else
577581
cat <<EOF
578582
Protip: run
@@ -581,7 +585,7 @@ Protip: run
581585
582586
to show progress
583587
EOF
584-
ssh ${REMOTE_HOST} ${REMOTE_DB_DUMP_CMD} | eval $(itkdev-docker-compose sql:connect)
588+
ssh ${REMOTE_HOST} ${REMOTE_DB_DUMP_CMD} | itkdev-docker-compose sql:cli
585589
fi
586590

587591
if [ ! -z "${SYNC_DB_POST_SCRIPT:-}" ]; then
@@ -616,9 +620,19 @@ EOF
616620
eval rsync -avz ${excludes} ${REMOTE_HOST}:${REMOTE_PATH}/ ${docker_compose_dir}/${LOCAL_PATH}
617621
;;
618622

623+
sql:cli)
624+
db_service=mariadb
625+
exec_args=()
626+
# @see https://stackoverflow.com/a/2456870?
627+
if ! [ -t 0 ]; then
628+
exec_args+=("--no-TTY")
629+
fi
630+
docker compose exec "${exec_args[@]}" $db_service mysql --user=db --password=db --database=db "$@"
631+
;;
632+
619633
sql:connect)
620634
db_service=mariadb
621-
echo docker compose exec --no-TTY $db_service mysql --user=db --password=db db
635+
echo docker compose exec $db_service mysql --user=db --password=db db
622636
;;
623637

624638
sql:open)

0 commit comments

Comments
 (0)