@@ -7,7 +7,7 @@ module_options+=(
7
7
[" module_openhab,status" ]=" Active"
8
8
[" module_openhab,doc_link" ]=" https://www.openhab.org/docs/tutorial"
9
9
[" module_openhab,group" ]=" HomeAutomation"
10
- [" module_openhab,port" ]=" 8080 "
10
+ [" module_openhab,port" ]=" 2080 2443 5007 9123 "
11
11
[" module_openhab,arch" ]=" x86-64 arm64 armhf"
12
12
)
13
13
#
@@ -18,32 +18,53 @@ function module_openhab() {
18
18
local title=" openhab"
19
19
local condition=$( which " $title " 2> /dev/null)
20
20
21
+ if pkg_installed docker-ce; then
22
+ local container=$( docker container ls -a | mawk ' /openhab?( |$)/{print $1}' )
23
+ local image=$( docker image ls -a | mawk ' /openhab?( |$)/{print $3}' )
24
+ fi
25
+
21
26
local commands
22
27
IFS=' ' read -r -a commands <<< " ${module_options[" module_openhab,example" ]}"
23
28
29
+ OPENHAB_BASE=" ${SOFTWARE_FOLDER} /openhab"
30
+
24
31
case " $1 " in
25
32
" ${commands[0]} " )
26
- wget -qO - https://repos.azul.com/azul-repo.key | gpg --dearmor > " /usr/share/keyrings/azul.gpg"
27
- wget -qO - https://openhab.jfrog.io/artifactory/api/gpg/key/public | gpg --dearmor > " /usr/share/keyrings/openhab.gpg"
28
- echo " deb [signed-by=/usr/share/keyrings/azul.gpg] https://repos.azul.com/zulu/deb stable main" > " /etc/apt/sources.list.d/zulu.list"
29
- echo " deb [signed-by=/usr/share/keyrings/openhab.gpg] https://openhab.jfrog.io/artifactory/openhab-linuxpkg stable main" > " /etc/apt/sources.list.d/openhab.list"
30
- pkg_update
31
- pkg_install zulu17-jdk
32
- pkg_install openhab openhab-addons
33
- srv_daemon_reload
34
- srv_enable openhab
35
- srv_start openhab
33
+ pkg_installed docker-ce || module_docker install
34
+ docker run -d \
35
+ --name openhab \
36
+ --net=lsio \
37
+ -p $( echo " ${module_options[module_openhab,port]} " | awk ' {print $1}' ) :8080 \
38
+ -p $( echo " ${module_options[module_openhab,port]} " | awk ' {print $2}' ) :8443 \
39
+ -p $( echo " ${module_options[module_openhab,port]} " | awk ' {print $3}' ) :5007 \
40
+ -p $( echo " ${module_options[module_openhab,port]} " | awk ' {print $4}' ) :9123 \
41
+ -v /etc/localtime:/etc/localtime:ro \
42
+ -v /etc/timezone:/etc/timezone:ro \
43
+ -v ${OPENHAB_BASE} /conf:/openhab/conf \
44
+ -v ${OPENHAB_BASE} /userdata:/openhab/userdata \
45
+ -v ${OPENHAB_BASE} /addons:/openhab/addons \
46
+ -e USER_ID=1000 \
47
+ -e GROUP_ID=1000 \
48
+ -e CRYPTO_POLICY=unlimited \
49
+ --restart=unless-stopped \
50
+ openhab/openhab:latest
36
51
;;
37
52
" ${commands[1]} " )
38
- pkg_remove zulu17-jdk openhab openhab-addons
39
- rm -f /usr/share/keyrings/openhab.gpg /usr/share/keyrings/azul.gpg
40
- rm -f /etc/apt/sources.list.d/zulu.list /etc/apt/sources.list.d/openhab.list
53
+ if [[ -n " ${container} " ]]; then
54
+ docker container rm -f " $container " > /dev/null
55
+ fi
56
+ if [[ -n " ${image} " ]]; then
57
+ docker image rm " $image " > /dev/null
58
+ fi
41
59
;;
42
60
" ${commands[2]} " )
43
61
${module_options["module_openhab,feature"]} ${commands[1]}
62
+ if [[ -n " ${OPENHAB_BASE} " && " ${OPENHAB_BASE} " != " /" ]]; then
63
+ rm -rf " ${OPENHAB_BASE} "
64
+ fi
44
65
;;
45
66
" ${commands[3]} " )
46
- if pkg_installed openhab ; then
67
+ if [[ " ${container} " && " ${image} " ]] ; then
47
68
return 0
48
69
else
49
70
return 1
0 commit comments