/
core
67 lines (59 loc) · 1.67 KB
/
core
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
#!/bin/bash
## Environment checking dependent on init.sh being run ...
if [[ "$DOCKTIE_INIT" = "true" ]] && [[ -e $DOCKTIE_ENV ]]; then
. $DOCKTIE_ENV
DOCKER_COMPOSE_BIN="docker-compose -f $DOCKTIE_DOCKER_COMPOSE_FULLPATH"
else
echo 'ERROR: DockTie needs to be initialized.'
exit 1
fi
## Environment OK, proceed...
script_name=$1
shift
case $script_name in
artisan)
docker_service_name='php'
command_within_service='php artisan'
;;
npm)
docker_service_name='node'
command_within_service='npm'
;;
mysql)
docker_service_name='mysql'
command_within_service="$docker_service_name"
;;
composer)
docker_service_name='composer'
command_within_service="$docker_service_name"
;;
shell)
docker_service_name="$1"
command_within_service="sh"
shift ## remove remaining CLI parameters. They aren't needed.
echo '+----------------------------------------------+'
echo "| Shell-ing into service '$docker_service_name'"
echo "| Use 'exit' to get off. "
echo '+----------------------------------------------+'
;;
*)
echo "ERROR: Invalid usage. See 'artisan' code for details."
echo
exit 1;
;;
esac
## ------
## main()
## ------
if [[ "$script_name" = "composer" ]]; then
$DOCKER_COMPOSE_BIN run --rm $docker_service_name $*
else
if [[ $# -eq 0 ]] && [[ "$script_name" != "shell" ]] ; then
echo "ERROR: parameter to '$script_name' missing."
echo
exit 1
else
DOCKER_CONTAINER="$DOCKER_COMPOSE_BIN exec $docker_service_name"
$DOCKER_CONTAINER $command_within_service $*
fi
fi