mirror of
https://github.com/aljazceru/addons.git
synced 2025-12-17 13:14:21 +01:00
* samba: Compatibility mode & upgrades * samba: Add missing newline to nmbd service * Update build.json Co-authored-by: Pascal Vizeli <pvizeli@syshack.ch>
66 lines
2.1 KiB
Bash
Executable File
66 lines
2.1 KiB
Bash
Executable File
#!/usr/bin/with-contenv bashio
|
|
# ==============================================================================
|
|
# Prepare the Samba service for running
|
|
# ==============================================================================
|
|
readonly CONF="/etc/samba/smb.conf"
|
|
declare allow_hosts
|
|
declare compatibility_mode
|
|
declare delete_veto_files
|
|
declare name
|
|
declare password
|
|
declare username
|
|
declare veto_files
|
|
|
|
# Check Login data
|
|
if ! bashio::config.has_value 'username' || ! bashio::config.has_value 'password'; then
|
|
bashio::exit.nok "Setting a username and password is required!"
|
|
fi
|
|
|
|
# Workgroup and interface
|
|
sed -i "s|%%WORKGROUP%%|$(bashio::config 'workgroup')|g" "${CONF}"
|
|
sed -i "s|%%INTERFACE%%|$(bashio::config 'interface')|g" "${CONF}"
|
|
|
|
# Veto files
|
|
veto_files=""
|
|
delete_veto_files="no"
|
|
if bashio::config.has_value 'veto_files'; then
|
|
veto_files=$(bashio::config "veto_files | join(\"/\")")
|
|
veto_files="/${veto_files}/"
|
|
delete_veto_files="yes"
|
|
fi
|
|
sed -i "s|%%VETO_FILES%%|${veto_files}|g" "${CONF}"
|
|
sed -i "s|%%DELETE_VETO_FILES%%|${delete_veto_files}|g" "${CONF}"
|
|
|
|
# Read hostname from API or setting default "hassio"
|
|
name=$(bashio::info.hostname)
|
|
if bashio::var.is_empty "${name}"; then
|
|
bashio::log.warning "Can't read hostname, using default."
|
|
name="hassio"
|
|
fi
|
|
bashio::log.info "Hostname: ${name}"
|
|
sed -i "s|%%NAME%%|${name}|g" "${CONF}"
|
|
|
|
# Allowed hosts
|
|
allow_hosts=$(bashio::config "allow_hosts | join(\" \")")
|
|
sed -i "s#%%ALLOW_HOSTS%%#${allow_hosts}#g" "${CONF}"
|
|
|
|
# Compatibility mode, enables the use of the legacy SMB1 protocol
|
|
compatibility_mode=""
|
|
if bashio::config.true "compatibility_mode"; then
|
|
compatibility_mode+=" client min protocol = NT1\n"
|
|
compatibility_mode+=" server min protocol = NT1\n"
|
|
fi
|
|
sed -i "s#%%COMPATIBILITY_MODE%%#${compatibility_mode}#g" "${CONF}"
|
|
|
|
# Init user
|
|
username=$(bashio::config 'username')
|
|
password=$(bashio::config 'password')
|
|
|
|
addgroup "${username}"
|
|
adduser -D -H -G "${username}" -s /bin/false "${username}"
|
|
|
|
sed -i "s|%%USERNAME%%|${username}|g" "${CONF}"
|
|
# shellcheck disable=SC1117
|
|
echo -e "${password}\n${password}" \
|
|
| smbpasswd -a -s -c "${CONF}" "${username}"
|