1 Commits

Author SHA1 Message Date
8ff20ee9da Debug - do not use 2020-04-24 17:11:57 -04:00

View File

@@ -26,7 +26,7 @@ installJRMC() {
_createrepo_webroot="/srv/jriver" _createrepo_webroot="/srv/jriver"
_createrepo_user="$(whoami)" _createrepo_user="$(whoami)"
_user="$(whoami)" _user="$(whoami)"
_available_services=("createrepo" "x11vnc" "mediaserver" "mediacenter" "vnc") _available_services=("createrepo" "x11vnc" "mediaserver" "mediacenter" "vncserver")
_printHelpAndExit() { _printHelpAndExit() {
@@ -85,14 +85,14 @@ OPTIONS
Create and enable an x11vnc server (requires an existing X server) Create and enable an x11vnc server (requires an existing X server)
--vncpass and --display are valid options (see below) --vncpass and --display are valid options (see below)
vnc vncserver
Create and enable a new VNC X server Create and enable a new VNC X server
--vncpass PASSWORD --vncpass PASSWORD
Set vnc password for x11vnc access. If no password is set, the script will either Set vnc password for x11vnc access. If no password is set, the script will either
use existing password stored in ~/.vnc/jrmc_passwd or use no password use existing password stored in ~/.vnc/jrmc_passwd or use no password
--display DISPLAY --display DISPLAY
Start X11VNC on this display (Default: The current display or :0 if current display Display to start vncserver/x11vnc (Default: The current display or :0 if current display
is unaccessible) is unaccessible)
createrepo createrepo
@@ -561,7 +561,7 @@ EOF
####################################### #######################################
# Installs JRiver Media Center from a repository # Installs JRiver Media Center from a repository
# Returns: # Returns:
# 0 if JRiver Media Center installed sucessfully, 1 if installation failed # 0 if JRiver Media Center installed sucessfully
####################################### #######################################
_installMCFromRepo() { _installMCFromRepo() {
@@ -581,19 +581,30 @@ EOF'
local _mcpkg="MediaCenter" local _mcpkg="MediaCenter"
elif [[ "$ID" =~ ^(ubuntu|debian)$ ]]; then elif [[ "$ID" =~ ^(ubuntu|debian)$ ]]; then
wget -q "http://dist.jriver.com/mediacenter@jriver.com.gpg.key" -O- | _ifSudo apt-key add - > /dev/null 2>&1 wget -q "http://dist.jriver.com/mediacenter@jriver.com.gpg.key" -O- | _ifSudo apt-key add - > /dev/null 2>&1
_ifSudo wget "http://dist.jriver.com/latest/mediacenter/mediacenter$_mversion.list" -O "/etc/apt/sources.list.d/jriver.list" > /dev/null 2>&1 _bash_cmd 'cat <<-EOF > /etc/apt/sources.list.d/jriver.list
deb [arch=amd64,i386,armhf] http://dist.jriver.com/latest/mediacenter/ jessie main
EOF'
local _mcpkg="mediacenter$_mversion" local _mcpkg="mediacenter$_mversion"
fi fi
# Update packages and install JRiver MediaCenter # Update packages and install JRiver MediaCenter
if _pkg_update > /dev/null 2>&1 && _pkg_install "$_mcpkg" > /dev/null 2>&1; then if [[ -n $_debug ]]; then
_pkg_update && \
_pkg_install "$_mcpkg"
else
_pkg_update > /dev/null 2>&1 && \
_pkg_install "$_mcpkg" > /dev/null 2>&1
fi
# shellcheck disable=SC2181
# Rationale: More compact to check this once
if [[ $? -eq 0 ]]; then
echo "JRiver Media Center installed successfully!" echo "JRiver Media Center installed successfully!"
return 0 return 0
else else
err "JRiver Media Center installation failed!" err "JRiver Media Center installation failed!"
return 1 exit 1
fi fi
} }
@@ -917,13 +928,45 @@ EOF"
####################################### #######################################
# Create the VNC password file # Create the x11vnc password file
# Requires:
# _vncpass
# Globals: # Globals:
# _novncauth # _novncauth
# Returns: # Returns:
# 0 if ports opened sucessfully, 1 if not # 0 if password created sucessfully, 1 if not
#######################################
_setX11VNCPass() {
_runDebug "${FUNCNAME[0]}"
_vncpassfile="$HOME/.vnc/jrmc_passwd"
[[ ! -d "${_vncpassfile%/*}" ]] && mkdir -p "${_vncpassfile%/*}"
if [[ -f "$_vncpassfile" ]]; then
if [[ -z $_vncpass ]]; then
err "Refusing to overwrite existing $_vncpassfile with an empty password"
err "Remove existing $_vncpassfile or set --vncpass to use an empty password"
exit 1
else
rm -f "$_vncpassfile"
fi
fi
if [[ -n $_vncpass ]]; then
if ! x11vnc -storepasswd "$_vncpass" "$_vncpassfile"; then
err "Could not create VNC password file"
return 1
fi
else
_novncauth="true"
fi
}
#######################################
# Create the vncserver password file
# Returns:
# 0 if password created sucessfully, 1 if not
####################################### #######################################
_setVNCPass() { _setVNCPass() {
@@ -931,15 +974,23 @@ EOF"
_vncpassfile="$HOME/.vnc/jrmc_passwd" _vncpassfile="$HOME/.vnc/jrmc_passwd"
if [[ -n $_vncpass ]]; then [[ ! -d "${_vncpassfile%/*}" ]] && mkdir -p "${_vncpassfile%/*}"
# Remove existing password file if it exists and write a new one
[[ -f "$_vncpassfile" ]] && rm -f "$_vncpassfile" if [[ -f "$_vncpassfile" ]]; then
if ! x11vnc -storepasswd "$_vncpass" "$_vncpassfile"; then if [[ -z $_vncpass ]]; then
err "Could not create VNC password file" err "Refusing to overwrite existing $_vncpassfile with an empty password"
return 1 err "Remove existing $_vncpassfile or set --vncpass to use an empty password"
exit 1
else
rm -f "$_vncpassfile"
fi fi
elif [[ ! -f "$_vncpassfile" ]]; then fi
_novncauth="true"
[[ -z $_vncpass ]] && _vncpass=""
if ! echo "$_vncpass" | vncpasswd -f > "$_vncpassfile"; then
err "Could not create VNC password file"
return 1
fi fi
} }
@@ -964,8 +1015,6 @@ EOF"
_timer_name="jriver-${1}@$_user.timer" _timer_name="jriver-${1}@$_user.timer"
_user_specifier="User=%I" _user_specifier="User=%I"
fi fi
[[ -z $_display ]] && _display="${DISPLAY:-":0"}"
} }
@@ -973,6 +1022,8 @@ EOF"
_runDebug "${FUNCNAME[0]}" _runDebug "${FUNCNAME[0]}"
[[ -z $_display ]] && _display="${DISPLAY:-":0"}"
_bash_cmd "cat <<-EOF > $_service_fname _bash_cmd "cat <<-EOF > $_service_fname
[Unit] [Unit]
Description=JRiver Media Center $_mversion Media Server Description=JRiver Media Center $_mversion Media Server
@@ -1000,6 +1051,8 @@ EOF"
_runDebug "${FUNCNAME[0]}" _runDebug "${FUNCNAME[0]}"
[[ -z $_display ]] && _display="${DISPLAY:-":0"}"
_bash_cmd "cat <<-EOF > $_service_fname _bash_cmd "cat <<-EOF > $_service_fname
[Unit] [Unit]
Description=JRiver Media Center $_mversion Description=JRiver Media Center $_mversion
@@ -1027,11 +1080,12 @@ EOF"
_runDebug "${FUNCNAME[0]}" _runDebug "${FUNCNAME[0]}"
_setVNCPass
_installPackage tigervnc-server _installPackage tigervnc-server
_setVNCPass
if [[ -z $_display ]]; then if [[ -z $_display ]]; then
# If we are running on existing X server then increment DISPLAY by one
if [[ -n $DISPLAY ]]; then if [[ -n $DISPLAY ]]; then
_display=$(( ${DISPLAY#:} + 1 )) _display=$(( ${DISPLAY#:} + 1 ))
_display=":$_display" _display=":$_display"
@@ -1040,12 +1094,6 @@ EOF"
fi fi
fi fi
if [[ "$_novncauth" == "true" ]]; then
_exec_start_cmd="/usr/bin/vncserver $_display -geometry 1440x900 -alwaysshared -fg"
else
_exec_start_cmd="/usr/bin/vncserver $_display -geometry 1440x900 -alwaysshared -fg -rfbauth $HOME/.vnc/jrmc_passwd"
fi
_bash_cmd "cat <<-EOF > $_service_fname _bash_cmd "cat <<-EOF > $_service_fname
[Unit] [Unit]
Description=Remote desktop service (VNC) Description=Remote desktop service (VNC)
@@ -1055,7 +1103,7 @@ After=syslog.target network.target
Type=simple Type=simple
$_user_specifier $_user_specifier
ExecStartPre=/bin/sh -c '/usr/bin/vncserver -kill $_display > /dev/null 2>&1 || :' ExecStartPre=/bin/sh -c '/usr/bin/vncserver -kill $_display > /dev/null 2>&1 || :'
ExecStart=$_exec_start_cmd ExecStart=/usr/bin/vncserver $_display -geometry 1440x900 -alwaysshared -fg -rfbauth $HOME/.vnc/jrmc_passwd
ExecStop=/usr/bin/vncserver -kill $_display ExecStop=/usr/bin/vncserver -kill $_display
[Install] [Install]
@@ -1071,7 +1119,7 @@ EOF"
_installPackage x11vnc _installPackage x11vnc
_setVNCPass _setX11VNCPass
if [[ "$_novncauth" == "true" ]]; then if [[ "$_novncauth" == "true" ]]; then
_exec_start_cmd="/usr/bin/x11vnc -display $_display -noscr -geometry 1920x1080 -auth guess -forever -bg -nopw" _exec_start_cmd="/usr/bin/x11vnc -display $_display -noscr -geometry 1920x1080 -auth guess -forever -bg -nopw"
@@ -1244,7 +1292,7 @@ EOF"
mediacenter) mediacenter)
_serviceMediacenter _serviceMediacenter
;; ;;
vnc) vncserver)
_serviceVNC _serviceVNC
;; ;;
*) *)