Skip to content

Commit f7375ed

Browse files
committed
Added volume command to setup local volumes in any location
1 parent d14a233 commit f7375ed

File tree

1 file changed

+81
-0
lines changed

1 file changed

+81
-0
lines changed

bin/dev_command/volume

+81
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,81 @@
1+
2+
usage() {
3+
echo "Usage:";
4+
echo "- ${DEV_SELF} ${DEV_COMMAND} {workspace|mysql} localpath";
5+
echo " create a volume pointing to the localpath";
6+
echo "- ${DEV_SELF} ${DEV_COMMAND} rm {workspace|mysql}";
7+
echo " remove a volume";
8+
echo "- ${DEV_SELF} ${DEV_COMMAND} ls";
9+
echo " list current volume mapping"
10+
exit 1;
11+
}
12+
13+
current() {
14+
echo 'Current volumes:';
15+
16+
echo -n "- mysql: ";
17+
${DEV_SUDO} docker volume inspect -f '{{ .Options.device }}' dockerdev-mysql-volume 2>/dev/null;
18+
echo -n "- workspace: ";
19+
${DEV_SUDO} docker volume inspect -f '{{ .Options.device }}' dockerdev-workspace-volume 2>/dev/null;
20+
exit 0;
21+
}
22+
23+
create() {
24+
if [ "$1" == 'mysql' ]; then
25+
local VOLUME_TYPE='mysql';
26+
elif [ "$1" == 'workspace' ]; then
27+
local VOLUME_TYPE='workspace';
28+
else
29+
usage;
30+
fi
31+
32+
local LOCAL_PATH=${2:-$1};
33+
local DOCKER_VOLUME="dockerdev-${VOLUME_TYPE}-volume";
34+
35+
if [ "${LOCAL_PATH:0:1}" != '/' ]; then
36+
LOCAL_PATH=`realpath ${DEV_USERDIR}/${LOCAL_PATH}`;
37+
fi
38+
39+
${DEV_SUDO} docker volume inspect ${DOCKER_VOLUME} 1>/dev/null 2>&1;
40+
if [ $? == 0 ]; then
41+
echo "The volume '${DOCKER_VOLUME}' is already initialized, remove it first";
42+
echo '';
43+
usage;
44+
fi
45+
46+
${DEV_SUDO} docker volume create -o 'type=none' -o 'device='${LOCAL_PATH} -o 'o=bind' ${DOCKER_VOLUME}
47+
exit $?;
48+
}
49+
50+
remove() {
51+
if [ "$1" == 'mysql' ]; then
52+
local VOLUME_TYPE='mysql';
53+
elif [ "$1" == 'workspace' ]; then
54+
local VOLUME_TYPE='workspace';
55+
else
56+
usage;
57+
fi
58+
59+
local DOCKER_VOLUME="dockerdev-${VOLUME_TYPE}-volume";
60+
61+
${DEV_SUDO} docker volume inspect ${DOCKER_VOLUME} 1>/dev/null 2>&1;
62+
if [ $? -gt 0 ]; then
63+
echo "The volume '${DOCKER_VOLUME}' does not exist";
64+
echo '';
65+
usage;
66+
fi
67+
68+
${DEV_SUDO} docker volume rm ${DOCKER_VOLUME}
69+
exit $?;
70+
}
71+
72+
if [ $# -lt 1 ]; then
73+
usage;
74+
elif [ "$1" == "rm" ]; then
75+
remove $2;
76+
elif [ "$1" == "ls" ]; then
77+
current;
78+
else
79+
create $@;
80+
fi
81+

0 commit comments

Comments
 (0)