87 lines
2.0 KiB
Bash
Executable File
87 lines
2.0 KiB
Bash
Executable File
#!/bin/bash
|
||
# https://gist.github.com/anthonyaxenov/89c99e09ddb195985707e2b24a57257d
|
||
|
||
set -e
|
||
|
||
[[ -f ./src/svc-main/.env ]] || cp ./src/svc-main/.env.example ./src/svc-main/.env
|
||
[[ -f ./.env ]] || cp ./.env.example ./.env
|
||
source ./.env
|
||
|
||
CONTAINER="iptv-main" # the name of the container in which to 'exec' something
|
||
CONFIG="$(dirname $([ -L $0 ] && readlink -f $0 || echo $0))/docker-compose.yml" # path to compose yml file
|
||
CMD="docker compose -f $CONFIG" # docker-compose command
|
||
APP_URL="http://localhost:${IPTV_NGINX_PORT}/"
|
||
|
||
open_browser() {
|
||
if which xdg-open > /dev/null; then
|
||
xdg-open "$1" </dev/null >/dev/null 2>&1 & disown
|
||
elif which gnome-open > /dev/null; then
|
||
gnome-open "$1" </dev/null >/dev/null 2>&1 & disown
|
||
fi
|
||
}
|
||
|
||
case "$1" in
|
||
# help message
|
||
''|'help')
|
||
echo -e "Provide one of operations: \t init, start, stop, up, down, restart, rebuild, open, hooks"
|
||
echo "Otherwise all args will passed to 'docker exec -ti $CONTAINER ...'"
|
||
;;
|
||
|
||
# quick start
|
||
'init')
|
||
./iptv hooks
|
||
./iptv up
|
||
./iptv composer i
|
||
echo "Project started successfully! $APP_URL"
|
||
;;
|
||
|
||
# build and start containers
|
||
'up')
|
||
$CMD up -d --build
|
||
./iptv open
|
||
;;
|
||
|
||
# stop and remove containers
|
||
'down')
|
||
$CMD down --remove-orphans
|
||
;;
|
||
|
||
# start containers
|
||
'start')
|
||
$CMD start
|
||
;;
|
||
|
||
# stop containers
|
||
'stop')
|
||
$CMD stop
|
||
;;
|
||
|
||
# restart containers
|
||
'restart')
|
||
$CMD stop
|
||
$CMD start
|
||
;;
|
||
|
||
# rebuild containers
|
||
'rebuild')
|
||
$CMD down --remove-orphans
|
||
$CMD up -d --build
|
||
;;
|
||
|
||
# open url in web-browser
|
||
'open')
|
||
open_browser $APP_URL
|
||
echo -e "\nYou're welcome!\n\t$APP_URL" \
|
||
;;
|
||
|
||
# install git hooks
|
||
'hooks')
|
||
сp -f hooks/* .git/hooks
|
||
;;
|
||
|
||
# exec anything else in container
|
||
*)
|
||
docker exec -ti $CONTAINER $*
|
||
;;
|
||
esac
|