-
Notifications
You must be signed in to change notification settings - Fork 1.5k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Cypress UI Test service and updates to installer.py (#1250)
* #1247 #1248 Feat: Cypress UI testing + Postgres Arg for installer * #1247 #1248 Feat: Cypress UI testing + Postgres Arg for installer * #1247 #1248 Feat: Cypress UI testing + Postgres Arg for installer * #1247 #1248 Feat: Cypress UI testing + Postgres Arg for installer * #1247 #1248 Feat: Cypress UI testing + Postgres Arg for installer * #1247 #1248 Feat: Cypress UI testing + Postgres Arg for installer * #1247 #1248 Feat: Cypress UI testing + Postgres Arg for installer
- Loading branch information
1 parent
1229276
commit ead5438
Showing
4 changed files
with
210 additions
and
24 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,104 @@ | ||
#!/bin/bash | ||
set -e | ||
# This script configures X11 forwarding for Linux and macOS systems. | ||
# It installs X11, Openbox (on Linux), and checks for XQuartz (on macOS). | ||
# It also updates the sshd_config file to enable X11Forwarding and restarts the SSH service. | ||
|
||
# Check if the script is running with root privileges | ||
if [ "$EUID" -ne 0 ]; then | ||
echo "Error: This script requires root privileges. Please run it as a superuser" | ||
exit 1 | ||
fi | ||
|
||
# Function to restart SSH service (Linux) | ||
restart_ssh_linux() { | ||
if command -v service >/dev/null 2>&1; then | ||
sudo service ssh restart | ||
else | ||
sudo systemctl restart ssh | ||
fi | ||
} | ||
|
||
# Function to restart SSH service (macOS) | ||
restart_ssh_macos() { | ||
launchctl stop com.openssh.sshd | ||
launchctl start com.openssh.sshd | ||
} | ||
|
||
update_x11_forwarding() { | ||
if grep -q "X11Forwarding yes" /etc/ssh/sshd_config; then | ||
echo "X11Forwarding is already set to 'yes' in ssh_config." | ||
else | ||
if [[ "$OSTYPE" == "linux-gnu" ]]; then | ||
# Linux: Use sed for Linux | ||
sudo sed -i 's/#\?X11Forwarding.*/X11Forwarding yes/' /etc/ssh/sshd_config | ||
elif [[ "$OSTYPE" == "darwin"* ]]; then | ||
# macOS: Use sed for macOS | ||
sudo sed -i -E 's/#X11Forwarding.*/X11Forwarding yes/' /etc/ssh/sshd_config | ||
restart_ssh_macos | ||
fi | ||
if [[ "$OSTYPE" == "linux-gnu" ]]; then | ||
restart_ssh_linux | ||
fi | ||
fi | ||
} | ||
|
||
# Determine the operating system | ||
if [[ "$OSTYPE" == "linux-gnu" ]]; then | ||
# Linux | ||
if command -v startx >/dev/null 2>&1; then | ||
echo "X11 is already installed." | ||
else | ||
# Check which package manager is available | ||
if command -v apt-get >/dev/null 2>&1; then | ||
install_command="sudo apt-get update && sudo apt-get install xorg openbox" | ||
elif command -v dnf >/dev/null 2>&1; then | ||
install_command="sudo dnf install xorg-x11-server-Xorg openbox" | ||
else | ||
echo "Error: Unable to determine the package manager. Manual installation required." | ||
exit 1 | ||
fi | ||
fi | ||
# Check if the installation command is defined | ||
if [ -n "$install_command" ]; then | ||
# Execute the installation command | ||
if $install_command; then | ||
echo "X11 and Openbox have been successfully installed." | ||
else | ||
echo "Error: Failed to install X11 and Openbox." | ||
exit 1 | ||
fi | ||
else | ||
echo "Error: Unsupported package manager." | ||
exit 1 | ||
fi | ||
|
||
# Call the function to update X11Forwarding | ||
update_x11_forwarding | ||
|
||
# Get the IP address of the host dynamically | ||
host_ip=$(hostname -I | awk '{print $1}') | ||
xhost + "$host_ip" && xhost + local: | ||
# Set the DISPLAY variable to the host IP | ||
export DISPLAY="$host_ip:0.0" | ||
echo "DISPLAY variable set to $DISPLAY" | ||
|
||
elif [[ "$OSTYPE" == "darwin"* ]]; then | ||
# macOS | ||
if command -v xquartz >/dev/null 2>&1; then | ||
echo "XQuartz is already installed." | ||
else | ||
echo "Error: XQuartz is required for X11 forwarding on macOS. Please install XQuartz manually." | ||
exit 1 | ||
fi | ||
|
||
# Call the function to update X11Forwarding | ||
update_x11_forwarding | ||
|
||
# Export the DISPLAY variable for macOS | ||
export DISPLAY=:0 | ||
echo "DISPLAY variable set to $DISPLAY" | ||
else | ||
echo "Error: Unsupported operating system." | ||
exit 1 | ||
fi |