necouchman commented on code in PR #515: URL: https://github.com/apache/guacamole-server/pull/515#discussion_r1581843433
########## Depend-on/Bash.sh: ########## @@ -0,0 +1,221 @@ +#!/bin/bash + +identify_and_run() { + os=$(uname) + if [ "$os" = "Linux" ]; then + distro=$(lsb_release -si) + case "$distro" in + CentOS|RedHatEnterpriseServer) + if command -v dnf &>/dev/null; then + echo "The following packages will be installed:" + echo "FFmpeg" + echo "libavcodec-devel libavformat-devel libavutil-devel libswscale-devel" + echo "freerdp2-devel" + echo "pango-devel" + echo "libssh2-devel" + echo "libtelnet-devel" + echo "libvncserver-devel" + echo "libwebsockets-devel" + echo "pulseaudio-libs-devel" + echo "openssl-devel" + echo "libvorbis-devel" + echo "libwebp-devel" + + read -p "Do you understand? (yes/no): " choice + case "$choice" in + yes|YES|y|Y) + sudo dnf install -y FFmpeg + sudo dnf install -y libavcodec-devel libavformat-devel libavutil-devel libswscale-devel + sudo dnf install -y freerdp2-devel + sudo dnf install -y pango-devel + sudo dnf install -y libssh2-devel + sudo dnf install -y libtelnet-devel + sudo dnf install -y libvncserver-devel + sudo dnf install -y libwebsockets-devel + sudo dnf install -y pulseaudio-libs-devel + sudo dnf install -y openssl-devel + sudo dnf install -y libvorbis-devel + sudo dnf install -y libwebp-devel Review Comment: Why the separate install commands? Why not just run it in one shot? You could still break the lines using a `\`: ``` dnf install FFmpeg \ libavcodec-devel libavformat-devel libavutil-devel libswscale-devel \ freerdp2-devel ... ``` Also, rather than putting the `sudo` commands within this script, I would suggest having the users launch the script with sudo - I'm not sure that tucking sudo commands away in the script is the best approach. ########## Depend-on/Bash.sh: ########## @@ -0,0 +1,221 @@ +#!/bin/bash + +identify_and_run() { + os=$(uname) + if [ "$os" = "Linux" ]; then + distro=$(lsb_release -si) + case "$distro" in + CentOS|RedHatEnterpriseServer) + if command -v dnf &>/dev/null; then + echo "The following packages will be installed:" + echo "FFmpeg" + echo "libavcodec-devel libavformat-devel libavutil-devel libswscale-devel" + echo "freerdp2-devel" + echo "pango-devel" + echo "libssh2-devel" + echo "libtelnet-devel" + echo "libvncserver-devel" + echo "libwebsockets-devel" + echo "pulseaudio-libs-devel" + echo "openssl-devel" + echo "libvorbis-devel" + echo "libwebp-devel" + + read -p "Do you understand? (yes/no): " choice + case "$choice" in + yes|YES|y|Y) + sudo dnf install -y FFmpeg + sudo dnf install -y libavcodec-devel libavformat-devel libavutil-devel libswscale-devel + sudo dnf install -y freerdp2-devel + sudo dnf install -y pango-devel + sudo dnf install -y libssh2-devel + sudo dnf install -y libtelnet-devel + sudo dnf install -y libvncserver-devel + sudo dnf install -y libwebsockets-devel + sudo dnf install -y pulseaudio-libs-devel + sudo dnf install -y openssl-devel + sudo dnf install -y libvorbis-devel + sudo dnf install -y libwebp-devel + ;; + *) + echo "Installation cancelled." + ;; + esac + elif command -v yum &>/dev/null; then + echo "The following packages will be installed:" + echo "FFmpeg" + echo "libavcodec-devel libavformat-devel libavutil-devel libswscale-devel" + echo "freerdp2-devel" + echo "pango-devel" + echo "libssh2-devel" + echo "libtelnet-devel" + echo "libvncserver-devel" + echo "libwebsockets-devel" + echo "pulseaudio-libs-devel" + echo "openssl-devel" + echo "libvorbis-devel" + echo "libwebp-devel" + + read -p "Do you understand? (yes/no): " choice + case "$choice" in + yes|YES|y|Y) + sudo yum install -y FFmpeg + sudo yum install -y libavcodec-devel libavformat-devel libavutil-devel libswscale-devel + sudo yum install -y freerdp2-devel + sudo yum install -y pango-devel + sudo yum install -y libssh2-devel + sudo yum install -y libtelnet-devel + sudo yum install -y libvncserver-devel + sudo yum install -y libwebsockets-devel + sudo yum install -y pulseaudio-libs-devel + sudo yum install -y openssl-devel + sudo yum install -y libvorbis-devel + sudo yum install -y libwebp-devel + ;; + *) + echo "Installation cancelled." + ;; + esac + else + echo "Neither dnf nor yum found. Unsupported package manager." + fi + ;; + Ubuntu|Debian) Review Comment: Xubuntu, Lubuntu. I'm not as familiar with Debian-based distros, but there may be others. ########## Depend-on/Bash.sh: ########## @@ -0,0 +1,221 @@ +#!/bin/bash + +identify_and_run() { + os=$(uname) + if [ "$os" = "Linux" ]; then + distro=$(lsb_release -si) Review Comment: What if the `lsb_release` command is unavailable? ########## Depend-on/Bash.sh: ########## @@ -0,0 +1,221 @@ +#!/bin/bash + +identify_and_run() { + os=$(uname) + if [ "$os" = "Linux" ]; then + distro=$(lsb_release -si) + case "$distro" in + CentOS|RedHatEnterpriseServer) Review Comment: What about: * Rocky * Oracle * Fedora * Scientific Linux I'm sure I'm missing others. ########## Depend-on/Bash.sh: ########## @@ -0,0 +1,221 @@ +#!/bin/bash + +identify_and_run() { + os=$(uname) + if [ "$os" = "Linux" ]; then + distro=$(lsb_release -si) + case "$distro" in + CentOS|RedHatEnterpriseServer) + if command -v dnf &>/dev/null; then + echo "The following packages will be installed:" + echo "FFmpeg" + echo "libavcodec-devel libavformat-devel libavutil-devel libswscale-devel" + echo "freerdp2-devel" + echo "pango-devel" + echo "libssh2-devel" + echo "libtelnet-devel" + echo "libvncserver-devel" + echo "libwebsockets-devel" + echo "pulseaudio-libs-devel" + echo "openssl-devel" + echo "libvorbis-devel" + echo "libwebp-devel" + + read -p "Do you understand? (yes/no): " choice + case "$choice" in + yes|YES|y|Y) + sudo dnf install -y FFmpeg + sudo dnf install -y libavcodec-devel libavformat-devel libavutil-devel libswscale-devel + sudo dnf install -y freerdp2-devel + sudo dnf install -y pango-devel + sudo dnf install -y libssh2-devel + sudo dnf install -y libtelnet-devel + sudo dnf install -y libvncserver-devel + sudo dnf install -y libwebsockets-devel + sudo dnf install -y pulseaudio-libs-devel + sudo dnf install -y openssl-devel + sudo dnf install -y libvorbis-devel + sudo dnf install -y libwebp-devel + ;; + *) + echo "Installation cancelled." + ;; + esac + elif command -v yum &>/dev/null; then + echo "The following packages will be installed:" + echo "FFmpeg" + echo "libavcodec-devel libavformat-devel libavutil-devel libswscale-devel" + echo "freerdp2-devel" + echo "pango-devel" + echo "libssh2-devel" + echo "libtelnet-devel" + echo "libvncserver-devel" + echo "libwebsockets-devel" + echo "pulseaudio-libs-devel" + echo "openssl-devel" + echo "libvorbis-devel" + echo "libwebp-devel" + + read -p "Do you understand? (yes/no): " choice + case "$choice" in + yes|YES|y|Y) + sudo yum install -y FFmpeg + sudo yum install -y libavcodec-devel libavformat-devel libavutil-devel libswscale-devel + sudo yum install -y freerdp2-devel + sudo yum install -y pango-devel + sudo yum install -y libssh2-devel + sudo yum install -y libtelnet-devel + sudo yum install -y libvncserver-devel + sudo yum install -y libwebsockets-devel + sudo yum install -y pulseaudio-libs-devel + sudo yum install -y openssl-devel + sudo yum install -y libvorbis-devel + sudo yum install -y libwebp-devel + ;; + *) + echo "Installation cancelled." + ;; + esac + else + echo "Neither dnf nor yum found. Unsupported package manager." + fi + ;; + Ubuntu|Debian) + if command -v apt-get &>/dev/null; then + echo "The following packages will be installed:" + echo "ffmpeg" + echo "libavcodec-dev libavformat-dev libavutil-dev libswscale-dev" + echo "freerdp2-dev" + echo "libpango1.0-dev" + echo "libssh2-1-dev" + echo "libtelnet-dev" + echo "libvncserver-dev" + echo "libwebsockets-dev" + echo "libpulse-dev" + echo "libssl-dev" + echo "libvorbis-dev" + echo "libwebp-dev" + + read -p "Do you understand? (yes/no): " choice + case "$choice" in + yes|YES|y|Y) + sudo apt-get install -y ffmpeg + sudo apt-get install -y libavcodec-dev libavformat-dev libavutil-dev libswscale-dev + sudo apt-get install -y freerdp2-dev + sudo apt-get install -y libpango1.0-dev + sudo apt-get install -y libssh2-1-dev + sudo apt-get install -y libtelnet-dev + sudo apt-get install -y libvncserver-dev + sudo apt-get install -y libwebsockets-dev + sudo apt-get install -y libpulse-dev + sudo apt-get install -y libssl-dev + sudo apt-get install -y libvorbis-dev + sudo apt-get install -y libwebp-dev + ;; + *) + echo "Installation cancelled." + ;; + esac + elif command -v dpkg &>/dev/null; then + echo "The following packages will be installed:" + echo "ffmpeg" + echo "libavcodec-dev libavformat-dev libavutil-dev libswscale-dev" + echo "freerdp2-dev" + echo "libpango1.0-dev" + echo "libssh2-1-dev" + echo "libtelnet-dev" + echo "libvncserver-dev" + echo "libwebsockets-dev" + echo "libpulse-dev" + echo "libssl-dev" + echo "libvorbis-dev" + echo "libwebp-dev" + + read -p "Do you understand? (yes/no): " choice + case "$choice" in + yes|YES|y|Y) + sudo dpkg -i <package.deb> + ;; + *) + echo "Installation cancelled." + ;; + esac + else + echo "Neither apt-get nor dpkg found. Unsupported package manager." + fi + ;; + *) Review Comment: I don't think making the assumption that anything that isn't Ubuntu or EL is automatically SuSE is the right thing to do. While EL-based, Debian-based, and SuSE-based covers most available distributions, there are others out there (like Alpine, which is what we use for the Docker image) and other ways of managing packages. If you/we don't want to build out and maintain package commands for each of these, that's fine, but then the `*)` should throw an error, not assume that everything not EL or Ubuntu-based is SuSE. ########## Depend-on/Bash.sh: ########## @@ -0,0 +1,221 @@ +#!/bin/bash + +identify_and_run() { + os=$(uname) + if [ "$os" = "Linux" ]; then + distro=$(lsb_release -si) + case "$distro" in + CentOS|RedHatEnterpriseServer) + if command -v dnf &>/dev/null; then + echo "The following packages will be installed:" + echo "FFmpeg" + echo "libavcodec-devel libavformat-devel libavutil-devel libswscale-devel" + echo "freerdp2-devel" + echo "pango-devel" + echo "libssh2-devel" + echo "libtelnet-devel" + echo "libvncserver-devel" + echo "libwebsockets-devel" + echo "pulseaudio-libs-devel" + echo "openssl-devel" + echo "libvorbis-devel" + echo "libwebp-devel" + + read -p "Do you understand? (yes/no): " choice Review Comment: Rather than setting up your own prompt, how about just doing "dnf install" and letting dnf (yum, dpkg, apt-get, etc.) prompt? ########## Depend-on/Bash.sh: ########## @@ -0,0 +1,221 @@ +#!/bin/bash + +identify_and_run() { + os=$(uname) + if [ "$os" = "Linux" ]; then + distro=$(lsb_release -si) + case "$distro" in + CentOS|RedHatEnterpriseServer) + if command -v dnf &>/dev/null; then + echo "The following packages will be installed:" + echo "FFmpeg" + echo "libavcodec-devel libavformat-devel libavutil-devel libswscale-devel" + echo "freerdp2-devel" + echo "pango-devel" + echo "libssh2-devel" + echo "libtelnet-devel" + echo "libvncserver-devel" + echo "libwebsockets-devel" + echo "pulseaudio-libs-devel" + echo "openssl-devel" + echo "libvorbis-devel" + echo "libwebp-devel" + + read -p "Do you understand? (yes/no): " choice + case "$choice" in + yes|YES|y|Y) + sudo dnf install -y FFmpeg + sudo dnf install -y libavcodec-devel libavformat-devel libavutil-devel libswscale-devel + sudo dnf install -y freerdp2-devel + sudo dnf install -y pango-devel + sudo dnf install -y libssh2-devel + sudo dnf install -y libtelnet-devel + sudo dnf install -y libvncserver-devel + sudo dnf install -y libwebsockets-devel + sudo dnf install -y pulseaudio-libs-devel + sudo dnf install -y openssl-devel + sudo dnf install -y libvorbis-devel + sudo dnf install -y libwebp-devel + ;; + *) + echo "Installation cancelled." + ;; + esac + elif command -v yum &>/dev/null; then + echo "The following packages will be installed:" + echo "FFmpeg" + echo "libavcodec-devel libavformat-devel libavutil-devel libswscale-devel" + echo "freerdp2-devel" + echo "pango-devel" + echo "libssh2-devel" + echo "libtelnet-devel" + echo "libvncserver-devel" + echo "libwebsockets-devel" + echo "pulseaudio-libs-devel" + echo "openssl-devel" + echo "libvorbis-devel" + echo "libwebp-devel" + + read -p "Do you understand? (yes/no): " choice + case "$choice" in + yes|YES|y|Y) + sudo yum install -y FFmpeg + sudo yum install -y libavcodec-devel libavformat-devel libavutil-devel libswscale-devel + sudo yum install -y freerdp2-devel + sudo yum install -y pango-devel + sudo yum install -y libssh2-devel + sudo yum install -y libtelnet-devel + sudo yum install -y libvncserver-devel + sudo yum install -y libwebsockets-devel + sudo yum install -y pulseaudio-libs-devel + sudo yum install -y openssl-devel + sudo yum install -y libvorbis-devel + sudo yum install -y libwebp-devel + ;; + *) + echo "Installation cancelled." + ;; + esac + else + echo "Neither dnf nor yum found. Unsupported package manager." + fi + ;; + Ubuntu|Debian) + if command -v apt-get &>/dev/null; then + echo "The following packages will be installed:" + echo "ffmpeg" + echo "libavcodec-dev libavformat-dev libavutil-dev libswscale-dev" + echo "freerdp2-dev" + echo "libpango1.0-dev" + echo "libssh2-1-dev" + echo "libtelnet-dev" + echo "libvncserver-dev" + echo "libwebsockets-dev" + echo "libpulse-dev" + echo "libssl-dev" + echo "libvorbis-dev" + echo "libwebp-dev" + + read -p "Do you understand? (yes/no): " choice + case "$choice" in + yes|YES|y|Y) + sudo apt-get install -y ffmpeg + sudo apt-get install -y libavcodec-dev libavformat-dev libavutil-dev libswscale-dev + sudo apt-get install -y freerdp2-dev + sudo apt-get install -y libpango1.0-dev + sudo apt-get install -y libssh2-1-dev + sudo apt-get install -y libtelnet-dev + sudo apt-get install -y libvncserver-dev + sudo apt-get install -y libwebsockets-dev + sudo apt-get install -y libpulse-dev + sudo apt-get install -y libssl-dev + sudo apt-get install -y libvorbis-dev + sudo apt-get install -y libwebp-dev + ;; + *) + echo "Installation cancelled." + ;; + esac + elif command -v dpkg &>/dev/null; then + echo "The following packages will be installed:" + echo "ffmpeg" + echo "libavcodec-dev libavformat-dev libavutil-dev libswscale-dev" + echo "freerdp2-dev" + echo "libpango1.0-dev" + echo "libssh2-1-dev" + echo "libtelnet-dev" + echo "libvncserver-dev" + echo "libwebsockets-dev" + echo "libpulse-dev" + echo "libssl-dev" + echo "libvorbis-dev" + echo "libwebp-dev" + + read -p "Do you understand? (yes/no): " choice + case "$choice" in + yes|YES|y|Y) + sudo dpkg -i <package.deb> + ;; + *) + echo "Installation cancelled." + ;; + esac + else + echo "Neither apt-get nor dpkg found. Unsupported package manager." + fi + ;; + *) + if command -v zypper &>/dev/null; then + echo "The following packages will be installed:" + echo "FFmpeg" + echo "libavcodec-devel libavformat-devel libavutil-devel libswscale-devel" + echo "freerdp2-devel" + echo "pango-devel" + echo "libssh2-devel" + echo "libtelnet-devel" + echo "libvncserver-devel" + echo "libwebsockets-devel" + echo "pulseaudio-libs-devel" + echo "openssl-devel" + echo "libvorbis-devel" + echo "libwebp-devel" + + read -p "Do you understand? (yes/no): " choice + case "$choice" in + yes|YES|y|Y) + sudo zypper install -y FFmpeg + sudo zypper install -y libavcodec-devel libavformat-devel libavutil-devel libswscale-devel + sudo zypper install -y freerdp2-devel + sudo zypper install -y pango-devel + sudo zypper install -y libssh2-devel + sudo zypper install -y libtelnet-devel + sudo zypper install -y libvncserver-devel + sudo zypper install -y libwebsockets-devel + sudo zypper install -y pulseaudio-libs-devel + sudo zypper install -y openssl-devel + sudo zypper install -y libvorbis-devel + sudo zypper install -y libwebp-devel + ;; + *) + echo "Installation cancelled." + ;; + esac + elif command -v pkg &>/dev/null; then + echo "The following packages will be installed:" + echo "FFmpeg" + echo "libavcodec-devel libavformat-devel libavutil-devel libswscale-devel" + echo "freerdp2-devel" + echo "pango-devel" + echo "libssh2-devel" + echo "libtelnet-devel" + echo "libvncserver-devel" + echo "libwebsockets-devel" + echo "pulseaudio-libs-devel" + echo "openssl-devel" + echo "libvorbis-devel" + echo "libwebp-devel" + + read -p "Do you understand? (yes/no): " choice + case "$choice" in + yes|YES|y|Y) + sudo pkg install -y <package> + ;; + *) + echo "Installation cancelled." + ;; + esac + else + echo "Unsupported Linux distribution." + fi + ;; + esac + else + echo "Unsupported operating system." + fi +} + +identify_and_run + + +#done +#Rick Astley Review Comment: We try not Rick-roll people as part of the source code ;-). -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: dev-unsubscr...@guacamole.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org