updated install sh

This commit is contained in:
2025-06-23 15:36:55 +03:00
parent 45c4040fa4
commit 71eab75d51

View File

@@ -80,64 +80,40 @@ chmod +x "$INSTALL_DIR/run_app.sh" || {
exit 1
}
# Check and update the signage_player.service file
if [[ -f "$SERVICE_FILE" ]]; then
echo "Checking signage_player.service file..."
WORKING_DIR=$(grep -oP '(?<=^WorkingDirectory=).*' "$SERVICE_FILE")
EXEC_START=$(grep -oP '(?<=^ExecStart=).*' "$SERVICE_FILE")
# Create the signage_player.service file in the installation folder
SERVICE_TEMPLATE="$INSTALL_DIR/signage_player.service"
echo "Creating signage_player.service file in the installation folder..."
cat <<EOF > "$SERVICE_TEMPLATE"
[Unit]
Description=Signage Player Service
After=network.target
EXPECTED_WORKING_DIR="$INSTALL_DIR"
EXPECTED_EXEC_START="$INSTALL_DIR/run_app.sh"
[Service]
Type=simple
WorkingDirectory=$INSTALL_DIR
ExecStart=$INSTALL_DIR/run_app.sh
Restart=always
RestartSec=5
if [[ "$WORKING_DIR" != "$EXPECTED_WORKING_DIR" || "$EXEC_START" != "$EXPECTED_EXEC_START" ]]; then
echo "Updating signage_player.service file..."
sudo cp "$INSTALL_DIR/signage_player.service" "$SERVICE_FILE"
sudo sed -i "s|^WorkingDirectory=.*|WorkingDirectory=$INSTALL_DIR|" "$SERVICE_FILE"
sudo sed -i "s|^ExecStart=.*|ExecStart=$INSTALL_DIR/run_app.sh|" "$SERVICE_FILE"
sudo systemctl daemon-reload || {
echo "Error: Failed to reload systemd daemon."
read -p "Press any key to close the terminal..." -n 1 -s
exit 1
}
echo "signage_player.service file updated successfully."
else
echo "signage_player.service file is already configured correctly."
fi
else
echo "signage_player.service file not found. Copying and configuring it..."
sudo cp "$INSTALL_DIR/signage_player.service" "$SERVICE_FILE"
sudo sed -i "s|^WorkingDirectory=.*|WorkingDirectory=$INSTALL_DIR|" "$SERVICE_FILE"
sudo sed -i "s|^ExecStart=.*|ExecStart=$INSTALL_DIR/run_app.sh|" "$SERVICE_FILE"
sudo systemctl daemon-reload || {
echo "Error: Failed to reload systemd daemon."
read -p "Press any key to close the terminal..." -n 1 -s
exit 1
}
echo "signage_player.service file created and configured successfully."
fi
[Install]
WantedBy=multi-user.target
EOF
# Check and update the working directory in run_app.sh
echo "Checking run_app.sh for correct working directory..."
if [[ -f "$RUN_APP_FILE" ]]; then
CURRENT_WORKING_DIR=$(grep -oP '(?<=^cd ).*' "$RUN_APP_FILE" | head -n 1)
EXPECTED_WORKING_DIR="$INSTALL_DIR/src"
if [[ "$CURRENT_WORKING_DIR" != "$EXPECTED_WORKING_DIR" ]]; then
echo "Updating working directory in run_app.sh..."
sudo sed -i "s|^cd .*|cd $EXPECTED_WORKING_DIR|" "$RUN_APP_FILE" || {
echo "Error: Failed to update working directory in run_app.sh."
read -p "Press any key to close the terminal..." -n 1 -s
exit 1
}
echo "run_app.sh updated successfully."
else
echo "run_app.sh is already configured correctly."
fi
else
echo "Error: run_app.sh file not found."
# Copy the service file to the systemd service directory
echo "Copying signage_player.service file to $SERVICE_FILE..."
sudo cp "$SERVICE_TEMPLATE" "$SERVICE_FILE" || {
echo "Error: Failed to copy signage_player.service file."
read -p "Press any key to close the terminal..." -n 1 -s
exit 1
fi
}
# Reload systemd daemon
echo "Reloading systemd daemon..."
sudo systemctl daemon-reload || {
echo "Error: Failed to reload systemd daemon."
read -p "Press any key to close the terminal..." -n 1 -s
exit 1
}
# Enable the service
echo "Enabling signage_player.service..."
@@ -147,6 +123,8 @@ sudo systemctl enable signage_player.service || {
exit 1
}
echo "signage_player.service file created, copied, and enabled successfully."
# Restart the system to check if the service starts
echo "Restarting the system to check if the service starts..."
sudo reboot || {