forked from dyson/dokku-docker-options
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathcommands
executable file
·82 lines (69 loc) · 2.17 KB
/
commands
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
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
#!/usr/bin/env bash
set -eo pipefail; [[ $DOKKU_TRACE ]] && set -x
CMD=$1
[[ $CMD ]] && {
shift
APP=$1
[[ $APP ]] && {
shift
OPTIONS_STRING="$@"
}
}
# Check if application is specified
if [[ $CMD == docker-options ]] || [[ $CMD == docker-options:* ]]; then
if [[ ! $APP ]]; then
echo "You must specify an app name"
exit 1
else
DOCKER_OPTIONS_FILE="DOCKER_OPTIONS"
DOCKER_OPTIONS_FILE_PATH="$DOKKU_ROOT/$APP/$DOCKER_OPTIONS_FILE"
# Check if app exists with the same name
if [ ! -d "$DOKKU_ROOT/$APP" ]; then
echo "App $APP does not exist"
exit 1
fi
[ -f $DOCKER_OPTIONS_FILE_PATH ] || {
touch $DOCKER_OPTIONS_FILE_PATH
}
fi
fi
case "$CMD" in
# Display applications docker options
docker-options)
if [ ! -f $DOCKER_OPTIONS_FILE_PATH ] || [ ! -s $DOCKER_OPTIONS_FILE_PATH ] ; then
echo "$APP has no docker options"
exit 1
fi
cat $DOCKER_OPTIONS_FILE_PATH
;;
# Add a docker option to application
docker-options:add)
if [[ ! $OPTIONS_STRING ]]; then
echo "Usage: dokku docker-options:add <app> OPTIONS_STRING"
echo "Must specify an OPTIONS_STRING to add."
exit 1
fi
echo "$OPTIONS_STRING" >> $DOCKER_OPTIONS_FILE_PATH
DOCKER_OPTIONS_TEMP=`cat $DOCKER_OPTIONS_FILE_PATH`
echo -e "$DOCKER_OPTIONS_TEMP" | sed '/^$/d' | sort -u > $DOCKER_OPTIONS_FILE_PATH
;;
# Remove a docker option from application
docker-options:remove)
if [[ ! $OPTIONS_STRING ]]; then
echo "Usage: dokku docker-options:remove <app> OPTIONS_STRING"
echo "Must specify OPTIONS_STRING to remove."
exit 1
fi
DOCKER_OPTIONS_TEMP=`cat "${DOCKER_OPTIONS_FILE_PATH}"`
DOCKER_OPTIONS_TEMP=$(echo -e "${DOCKER_OPTIONS_TEMP}" | sed "s#${OPTIONS_STRING}##")
echo -e "$DOCKER_OPTIONS_TEMP" | sed '/^$/d' | sort -u > $DOCKER_OPTIONS_FILE_PATH
;;
# Display usage help
help)
cat && cat<<EOF
docker-options <app> display docker options for an app
docker-options:add <app> OPTIONS_STRING add an option string an app
docker-options:remove <app> OPTIONS_STRING remove an option string from an app
EOF
;;
esac