İşlemeleri karşılaştır

1 İşleme

Yazar SHA1 Mesaj Tarih
4382f14695 Debug - do not use 2020-04-24 17:32:44 -04:00

Dosyayı Görüntüle

@@ -26,7 +26,7 @@ installJRMC() {
_createrepo_webroot="/srv/jriver"
_createrepo_user="$(whoami)"
_user="$(whoami)"
_available_services=("createrepo" "x11vnc" "mediaserver" "mediacenter" "vnc")
_available_services=("createrepo" "x11vnc" "mediaserver" "mediacenter" "vncserver")
_printHelpAndExit() {
@@ -74,29 +74,30 @@ OPTIONS
Uninstall JRiver MC, cleanup service files, and remove firewall rules (does not remove library files)
SERVICES
mediaserver
Create and enable a mediaserver systemd service (requires an existing X server)
mediacenter
Create and enable a mediacenter systemd service (requires an existing X server)
x11vnc
Create and enable an x11vnc server (requires an existing X server)
--vncpass and --display are valid options (see below)
vnc
vncserver
Create and enable a new VNC X server
--vncpass PASSWORD
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
--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)
createrepo
Install hourly service to build latest MC RPM and run createrepo
TODO:
CONTAINERS
mediaserver
mediacenter
createrepo
EOF
# Exit using passed exit code
@@ -561,7 +562,7 @@ EOF
#######################################
# Installs JRiver Media Center from a repository
# Returns:
# 0 if JRiver Media Center installed sucessfully, 1 if installation failed
# 0 if JRiver Media Center installed sucessfully
#######################################
_installMCFromRepo() {
@@ -581,19 +582,30 @@ EOF'
local _mcpkg="MediaCenter"
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
_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"
fi
# 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!"
return 0
else
err "JRiver Media Center installation failed!"
return 1
exit 1
fi
}
@@ -917,13 +929,45 @@ EOF"
#######################################
# Create the VNC password file
# Requires:
# _vncpass
# Create the x11vnc password file
# Globals:
# _novncauth
# 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() {
@@ -931,14 +975,24 @@ EOF"
_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
# Remove existing password file if it exists and write a new one
[[ -f "$_vncpassfile" ]] && rm -f "$_vncpassfile"
if ! x11vnc -storepasswd "$_vncpass" "$_vncpassfile"; then
if ! echo "$_vncpass" | vncpasswd -f > "$_vncpassfile"; then
err "Could not create VNC password file"
return 1
fi
elif [[ ! -f "$_vncpassfile" ]]; then
else
_novncauth="true"
fi
}
@@ -964,8 +1018,6 @@ EOF"
_timer_name="jriver-${1}@$_user.timer"
_user_specifier="User=%I"
fi
[[ -z $_display ]] && _display="${DISPLAY:-":0"}"
}
@@ -973,6 +1025,8 @@ EOF"
_runDebug "${FUNCNAME[0]}"
[[ -z $_display ]] && _display="${DISPLAY:-":0"}"
_bash_cmd "cat <<-EOF > $_service_fname
[Unit]
Description=JRiver Media Center $_mversion Media Server
@@ -1000,6 +1054,8 @@ EOF"
_runDebug "${FUNCNAME[0]}"
[[ -z $_display ]] && _display="${DISPLAY:-":0"}"
_bash_cmd "cat <<-EOF > $_service_fname
[Unit]
Description=JRiver Media Center $_mversion
@@ -1027,11 +1083,32 @@ EOF"
_runDebug "${FUNCNAME[0]}"
_setVNCPass
_installPackage tigervnc-server
_setVNCPass
if [[ -n $_novncauth ]]; then
_exec_start_cmd="/usr/bin/vncserver $_display -geometry 1440x900 -alwaysshared -fg -SecurityTypes None -xstartup $HOME/.vnc/jrmc-xstartup"
else
_exec_start_cmd="/usr/bin/vncserver $_display -geometry 1440x900 -alwaysshared -fg -rfbauth $HOME/.vnc/jrmc_passwd -xstartup $HOME/.vnc/jrmc-xstartup"
fi
if [[ -n $_novncauth ]]; then
_exec_start_cmd="/usr/bin/vncserver $_display -geometry 1440x900 -alwaysshared -fg -SecurityTypes None -xstartup /usr/bin/mediacenter$_mversion"
else
_exec_start_cmd="/usr/bin/vncserver $_display -geometry 1440x900 -alwaysshared -fg -rfbauth $HOME/.vnc/jrmc_passwd -xstartup /usr/bin/mediacenter$_mversion"
fi
if [[ -n $_novncauth ]]; then
_exec_start_cmd="/usr/bin/vncserver $_display -geometry 1440x900 -alwaysshared -fg -SecurityTypes None -xstartup /usr/bin/xterm"
else
_exec_start_cmd="/usr/bin/vncserver $_display -geometry 1440x900 -alwaysshared -fg -rfbauth $HOME/.vnc/jrmc_passwd -xstartup /usr/bin/xterm"
fi
echo "mediacenter$_mversion" > "$HOME/.vnc/jrmc-xstartup"
if [[ -z $_display ]]; then
# If we are running on existing X server then increment DISPLAY by one
if [[ -n $DISPLAY ]]; then
_display=$(( ${DISPLAY#:} + 1 ))
_display=":$_display"
@@ -1040,12 +1117,6 @@ EOF"
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
[Unit]
Description=Remote desktop service (VNC)
@@ -1071,9 +1142,9 @@ EOF"
_installPackage x11vnc
_setVNCPass
_setX11VNCPass
if [[ "$_novncauth" == "true" ]]; then
if [[ -n $_novncauth ]]; then
_exec_start_cmd="/usr/bin/x11vnc -display $_display -noscr -geometry 1920x1080 -auth guess -forever -bg -nopw"
else
_exec_start_cmd="/usr/bin/x11vnc -display $_display -noscr -geometry 1920x1080 -auth guess -forever -bg -rfbauth $HOME/.vnc/jrmc_passwd"
@@ -1244,7 +1315,7 @@ EOF"
mediacenter)
_serviceMediacenter
;;
vnc)
vncserver)
_serviceVNC
;;
*)