From 50b2ba946c22581aaccb3b7f88b6947c930f71ef Mon Sep 17 00:00:00 2001 From: Pascal Vizeli Date: Tue, 27 Jun 2017 15:12:26 +0200 Subject: [PATCH] Update addons with multibe tasks (#129) (#130) Update addons with multibe tasks --- dhcp_server/config.json | 4 ++++ dhcp_server/dhcpd.conf | 4 ++-- dhcp_server/run.sh | 4 ++++ dnsmasq/config.json | 4 ++-- dnsmasq/run.sh | 2 +- samba/config.json | 6 ++++-- samba/run.sh | 20 ++++++++++++-------- ssh/config.json | 4 ++-- ssh/run.sh | 3 ++- 9 files changed, 33 insertions(+), 18 deletions(-) diff --git a/dhcp_server/config.json b/dhcp_server/config.json index 1b6c941..9ba4bdf 100644 --- a/dhcp_server/config.json +++ b/dhcp_server/config.json @@ -8,6 +8,8 @@ "boot": "auto", "host_network": true, "options": { + "default_lease": 600, + "max_lease": 7200, "domain": null, "dns": ["8.8.8.8", "8.8.4.4"], "networks": [ @@ -24,6 +26,8 @@ "hosts": [] }, "schema": { + "default_lease": "int", + "max_lease": "int", "domain": "str", "dns": ["str"], "networks": [ diff --git a/dhcp_server/dhcpd.conf b/dhcp_server/dhcpd.conf index 7239045..9932ef0 100644 --- a/dhcp_server/dhcpd.conf +++ b/dhcp_server/dhcpd.conf @@ -1,7 +1,7 @@ option domain-name "%%DOMAIN%%"; option domain-name-servers %%DNS_SERVERS%%; -default-lease-time 600; -max-lease-time 7200; +default-lease-time %%DEFAULT_LEASE%%; +max-lease-time %%MAX_LEASE%%; authoritative; diff --git a/dhcp_server/run.sh b/dhcp_server/run.sh index bf2d0f4..4d1d077 100644 --- a/dhcp_server/run.sh +++ b/dhcp_server/run.sh @@ -3,6 +3,8 @@ set -e CONFIG_PATH=/data/options.json +DEFAULT_LEASE=$(jq --raw-output '.default_lease' $CONFIG_PATH) +MAX_LEASE=$(jq --raw-output '.max_lease' $CONFIG_PATH) DOMAIN=$(jq --raw-output '.domain' $CONFIG_PATH) DNS=$(jq --raw-output '.dns | join(", ")' $CONFIG_PATH) NETWORKS=$(jq --raw-output '.networks | length' $CONFIG_PATH) @@ -10,6 +12,8 @@ HOSTS=$(jq --raw-output '.hosts | length' $CONFIG_PATH) sed -i "s/%%DOMAIN%%/$DOMAIN/g" /etc/dhcpd.conf sed -i "s/%%DNS_SERVERS%%/$DNS/g" /etc/dhcpd.conf +sed -i "s/%%DEFAULT_LEASE%%/$DEFAULT_LEASE/g" /etc/dhcpd.conf +sed -i "s/%%MAX_LEASE%%/$MAX_LEASE/g" /etc/dhcpd.conf # Create networks for (( i=0; i < "$NETWORKS"; i++ )); do diff --git a/dnsmasq/config.json b/dnsmasq/config.json index 48a83d4..b76d47b 100644 --- a/dnsmasq/config.json +++ b/dnsmasq/config.json @@ -1,6 +1,6 @@ { - "name": "Dnsmasq server", - "version": "0.4", + "name": "Dnsmasq", + "version": "0.5", "slug": "dnsmasq", "description": "A simple dns server with benefits", "url": "https://home-assistant.io/addons/dnsmasq/", diff --git a/dnsmasq/run.sh b/dnsmasq/run.sh index 02cb604..03a5591 100644 --- a/dnsmasq/run.sh +++ b/dnsmasq/run.sh @@ -6,7 +6,7 @@ CONFIG_PATH=/data/options.json DEFAULTS=$(jq --raw-output '.defaults[]' $CONFIG_PATH) FORWARDS=$(jq --raw-output '.forwards | length' $CONFIG_PATH) HOSTS=$(jq --raw-output '.hosts | length' $CONFIG_PATH) -INTERFACE=$(jq --raw-output '.interface' $CONFIG_PATH) +INTERFACE=$(jq --raw-output '.interface // empty' $CONFIG_PATH) # Bind to interface if [ -z "$INTERFACE" ]; then diff --git a/samba/config.json b/samba/config.json index 3155681..cf386e9 100644 --- a/samba/config.json +++ b/samba/config.json @@ -1,6 +1,6 @@ { "name": "Samba share", - "version": "0.8", + "version": "0.9", "slug": "samba", "description": "Expose HassIO folders with Samba", "url": "https://home-assistant.io/addons/samba/", @@ -9,7 +9,7 @@ "ports": { "445/tcp": 445 }, - "map": ["config:rw", "ssl:rw", "addons:rw", "share:rw"], + "map": ["config:rw", "ssl:rw", "addons:rw", "share:rw", "backup:rw"], "options": { "workgroup": "WORKGROUP", "guest": true, @@ -17,6 +17,7 @@ "map_addons": true, "map_ssl": false, "map_share": true, + "map_backup": true, "username": "", "password": "" }, @@ -27,6 +28,7 @@ "map_addons": "bool", "map_ssl": "bool", "map_share": "bool", + "map_backup": "bool", "username": "str", "password": "str" }, diff --git a/samba/run.sh b/samba/run.sh index a945393..2e4af71 100644 --- a/samba/run.sh +++ b/samba/run.sh @@ -3,14 +3,15 @@ set -e CONFIG_PATH=/data/options.json -WORKGROUP=$(jq --raw-output ".workgroup // empty" $CONFIG_PATH) -GUEST=$(jq --raw-output ".guest // empty" $CONFIG_PATH) -USERNAME=$(jq --raw-output ".username // empty" $CONFIG_PATH) -PASSWORD=$(jq --raw-output ".password // empty" $CONFIG_PATH) -MAP_CONFIG=$(jq --raw-output ".map_config // empty" $CONFIG_PATH) -MAP_ADDONS=$(jq --raw-output ".map_addons // empty" $CONFIG_PATH) -MAP_SSL=$(jq --raw-output ".map_ssl // empty" $CONFIG_PATH) -MAP_SHARE=$(jq --raw-output ".map_share // empty" $CONFIG_PATH) +WORKGROUP=$(jq --raw-output '.workgroup' $CONFIG_PATH) +GUEST=$(jq --raw-output '.guest' $CONFIG_PATH) +USERNAME=$(jq --raw-output '.username // empty' $CONFIG_PATH) +PASSWORD=$(jq --raw-output '.password // empty' $CONFIG_PATH) +MAP_CONFIG=$(jq --raw-output '.map_config' $CONFIG_PATH) +MAP_ADDONS=$(jq --raw-output '.map_addons' $CONFIG_PATH) +MAP_SSL=$(jq --raw-output '.map_ssl' $CONFIG_PATH) +MAP_SHARE=$(jq --raw-output '.map_share' $CONFIG_PATH) +MAP_BACKUP=$(jq --raw-output '.map_backup' $CONFIG_PATH) function write_config() { @@ -46,6 +47,9 @@ fi if [ "$MAP_SHARE" == "true" ]; then write_config "share" fi +if [ "$MAP_BACKUP" == "true" ]; then + write_config "backup" +fi ## # Set authentication options diff --git a/ssh/config.json b/ssh/config.json index fab9d58..73987c3 100644 --- a/ssh/config.json +++ b/ssh/config.json @@ -1,6 +1,6 @@ { "name": "SSH server", - "version": "0.7", + "version": "0.8", "slug": "ssh", "description": "Connect to your server over SSH", "url": "https://home-assistant.io/addons/ssh/", @@ -9,7 +9,7 @@ "ports": { "22/tcp": 22 }, - "map": ["config:rw", "ssl:rw", "addons:rw", "share:rw"], + "map": ["config:rw", "ssl:rw", "addons:rw", "share:rw", "backup:rw"], "options": { "authorized_keys": [null] }, diff --git a/ssh/run.sh b/ssh/run.sh index 7cb5f42..73e8eb9 100644 --- a/ssh/run.sh +++ b/ssh/run.sh @@ -9,6 +9,7 @@ AUTHORIZED_KEYS=$(jq --raw-output ".authorized_keys[]" $CONFIG_PATH) # Init defaults config sed -i s/#PermitRootLogin.*/PermitRootLogin\ yes/ /etc/ssh/sshd_config sed -i s/#PasswordAuthentication.*/PasswordAuthentication\ no/ /etc/ssh/sshd_config +sed -i s/#LogLevel.*/LogLevel\ DEBUG/ /etc/ssh/sshd_config # Generate authorized_keys file mkdir -p ~/.ssh @@ -27,4 +28,4 @@ else fi # start server -exec /usr/sbin/sshd -D < /dev/null +exec /usr/sbin/sshd -D -e < /dev/null