mirror of
https://github.com/alexbelgium/hassio-addons.git
synced 2026-01-11 02:11:01 +01:00
fix: auto-fix linting issues
This commit is contained in:
committed by
github-actions[bot]
parent
e5adbd266f
commit
f728166b14
@@ -11,20 +11,20 @@ bashio::log.info "Update structure"
|
||||
# In the addon script, make symlinks on the fly
|
||||
echo "Creating symlinks"
|
||||
for folder in config db; do
|
||||
echo "Creating for $folder"
|
||||
# Create symlinks
|
||||
mkdir -p /config/"$folder"
|
||||
if [ -d /app/"$folder" ] && [ "$(ls -A /app/"$folder")" ]; then
|
||||
cp -rn /app/"$folder"/* /config/"$folder"/
|
||||
fi
|
||||
rm -r /app/"$folder"
|
||||
ln -sf /config/"$folder" /app/"$folder"
|
||||
echo "Creating for $folder"
|
||||
# Create symlinks
|
||||
mkdir -p /config/"$folder"
|
||||
if [ -d /app/"$folder" ] && [ "$(ls -A /app/"$folder")" ]; then
|
||||
cp -rn /app/"$folder"/* /config/"$folder"/
|
||||
fi
|
||||
rm -r /app/"$folder"
|
||||
ln -sf /config/"$folder" /app/"$folder"
|
||||
done
|
||||
|
||||
sudo chown -R nginx:www-data /config/db/
|
||||
sudo chown -R nginx:www-data /config/config/
|
||||
if [ -f /config/db/app.db ]; then
|
||||
chmod a+rwx /config/db/app.db
|
||||
chmod a+rwx /config/db/app.db
|
||||
fi
|
||||
|
||||
#####################
|
||||
@@ -36,65 +36,66 @@ config_file="/config/config/app.conf"
|
||||
|
||||
# Function to execute the main logic
|
||||
execute_main_logic() {
|
||||
bashio::log.info "Initiating scan of Home Assistant network configuration..."
|
||||
bashio::log.info "Initiating scan of Home Assistant network configuration..."
|
||||
|
||||
# Get the local IPv4 address
|
||||
local_ip="$(bashio::network.ipv4_address)"
|
||||
local_ip="${local_ip%/*}" # Remove CIDR notation
|
||||
echo "... Detected local IP: $local_ip"
|
||||
echo "... Scanning network for changes"
|
||||
# Get the local IPv4 address
|
||||
local_ip="$(bashio::network.ipv4_address)"
|
||||
local_ip="${local_ip%/*}" # Remove CIDR notation
|
||||
echo "... Detected local IP: $local_ip"
|
||||
echo "... Scanning network for changes"
|
||||
|
||||
# Ensure arp-scan is installed
|
||||
if ! command -v arp-scan &>/dev/null; then
|
||||
bashio::log.error "arp-scan command not found. Please install arp-scan to proceed."
|
||||
exit 1
|
||||
fi
|
||||
# Ensure arp-scan is installed
|
||||
if ! command -v arp-scan &>/dev/null; then
|
||||
bashio::log.error "arp-scan command not found. Please install arp-scan to proceed."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Get current settings
|
||||
if ! grep -q "^SCAN_SUBNETS" "$config_file"; then
|
||||
bashio::log.fatal "SCAN_SUBNETS is not found in your $config_file, please correct your file first"
|
||||
fi
|
||||
# Get current settings
|
||||
if ! grep -q "^SCAN_SUBNETS" "$config_file"; then
|
||||
bashio::log.fatal "SCAN_SUBNETS is not found in your $config_file, please correct your file first"
|
||||
fi
|
||||
|
||||
# Iterate over network interfaces
|
||||
for interface in $(bashio::network.interfaces); do
|
||||
echo "Scanning interface: $interface"
|
||||
# Iterate over network interfaces
|
||||
for interface in $(bashio::network.interfaces); do
|
||||
echo "Scanning interface: $interface"
|
||||
|
||||
# Check if the interface is already configured
|
||||
if grep -q "$interface" "$config_file"; then
|
||||
echo "... $interface is already configured in app.conf"
|
||||
else
|
||||
# Update SCAN_SUBNETS in app.conf
|
||||
SCAN_SUBNETS="$(grep "^SCAN_SUBNETS" "$config_file" | head -1)"
|
||||
if [[ "$SCAN_SUBNETS" != *"$local_ip"*"$interface"* ]]; then
|
||||
# Add to the app.conf
|
||||
NEW_SCAN_SUBNETS="${SCAN_SUBNETS%]}, '${local_ip}/24 --interface=${interface}']"
|
||||
sed -i "/^SCAN_SUBNETS/c\\$NEW_SCAN_SUBNETS" "$config_file"
|
||||
# Check availability of hosts
|
||||
VALUE="$(arp-scan --interface="$interface" "${local_ip}/24" 2>/dev/null \
|
||||
| grep "responded" \
|
||||
| awk -F'.' '{print $NF}' \
|
||||
| awk '{print $1}' || true)"
|
||||
echo "... $interface is available in Home Assistant (with $VALUE devices), added to app.conf"
|
||||
fi
|
||||
fi
|
||||
done
|
||||
# Check if the interface is already configured
|
||||
if grep -q "$interface" "$config_file"; then
|
||||
echo "... $interface is already configured in app.conf"
|
||||
else
|
||||
# Update SCAN_SUBNETS in app.conf
|
||||
SCAN_SUBNETS="$(grep "^SCAN_SUBNETS" "$config_file" | head -1)"
|
||||
if [[ "$SCAN_SUBNETS" != *"$local_ip"*"$interface"* ]]; then
|
||||
# Add to the app.conf
|
||||
NEW_SCAN_SUBNETS="${SCAN_SUBNETS%]}, '${local_ip}/24 --interface=${interface}']"
|
||||
sed -i "/^SCAN_SUBNETS/c\\$NEW_SCAN_SUBNETS" "$config_file"
|
||||
# Check availability of hosts
|
||||
VALUE="$(arp-scan --interface="$interface" "${local_ip}/24" 2>/dev/null |
|
||||
grep "responded" |
|
||||
awk -F'.' '{print $NF}' |
|
||||
awk '{print $1}' || true)"
|
||||
echo "... $interface is available in Home Assistant (with $VALUE devices), added to app.conf"
|
||||
fi
|
||||
fi
|
||||
done
|
||||
|
||||
bashio::log.info "Network scan completed."
|
||||
bashio::log.info "Network scan completed."
|
||||
}
|
||||
|
||||
# Function to wait for the config file
|
||||
wait_for_config_file() {
|
||||
echo "Waiting for $config_file to become available..."
|
||||
while [ ! -f "$config_file" ]; do
|
||||
sleep 5 # Wait for 5 seconds before checking again
|
||||
done
|
||||
echo "$config_file is now available. Starting the script."
|
||||
execute_main_logic
|
||||
echo "Waiting for $config_file to become available..."
|
||||
while [ ! -f "$config_file" ]; do
|
||||
sleep 5 # Wait for 5 seconds before checking again
|
||||
done
|
||||
echo "$config_file is now available. Starting the script."
|
||||
execute_main_logic
|
||||
}
|
||||
|
||||
# Main script logic
|
||||
if [ -f "$config_file" ]; then
|
||||
execute_main_logic
|
||||
execute_main_logic
|
||||
else
|
||||
wait_for_config_file & true
|
||||
wait_for_config_file &
|
||||
true
|
||||
fi
|
||||
|
||||
Reference in New Issue
Block a user