diff --git a/installJRMC b/installJRMC index e827597..21429d2 100755 --- a/installJRMC +++ b/installJRMC @@ -61,6 +61,8 @@ OPTIONS Specify URL to source DEB package (Default: automatic) --betapass PASSWORD Enter beta team password for access to beta builds + --service SERVICE + See SERVICES section below for a list of possible service to install -v|--version Print this script version and exit -d|--debug @@ -80,14 +82,13 @@ OPTIONS --createrepo-user USER The web server user (Default: www-user) - See SERVICES for service-createrepo to automate createrepo - SERVICES - --service-mediaserver - Install JRiver MC mediaserver service - --service-x11vnc-mediaserver - Install JRiver MC mediaserver service and x11vnc (for headless installations without - an existing X server) + mediaserver + Create and enable a JRiver MC Media Server systemd service for the current user + + x11vnc-mediaserver + Create and enable a JRiver MC mediaserver service and x11vnc (for headless + installations without an existing X server) service for the current user --vncpass PASSWORD Set vnc password for x11vnc access. If no password is set, the script will either use @@ -96,8 +97,13 @@ OPTIONS Start X11VNC on this display (Default: The current display or :0 if current display is unaccessible) - --service-createrepo - Install service to build latest MC and run createrepo hourly + createrepo + Install service to build latest MC RPM and run createrepo hourly for the current user + + --createrepo-webroot PATH + The webroot directory to install the repo (Default: /var/www/html) + --createrepo-user USER + The web server user (Default: www-user) EOF # Exit using passed exit code @@ -108,7 +114,7 @@ EOF _parseInput () { - if _input=$(getopt -o +vdhu -l repo,build,outputdir:,mcversion:,restorefile:,boardurl:,deburl:,betapass:,version,debug,help,uninstall,createrepo,createrepo-webroot:,createrepo-user:,service-mediaserver,service-x11vnc-mediaserver,vncpass:,display:,service-createrepo -- "$@"); then + if _input=$(getopt -o +vdhu -l repo,build,outputdir:,mcversion:,restorefile:,boardurl:,deburl:,betapass:,service:,version,debug,help,uninstall,createrepo,createrepo-webroot:,createrepo-user:,vncpass:,display: -- "$@"); then eval set -- "$_input" while true; do case "$1" in @@ -138,6 +144,9 @@ EOF --betapass) shift && _betapass="$1" ;; + --service) + shift && _service="$1" + ;; --version|-v) echo "Version: $_scriptversion" exit 0 @@ -162,21 +171,12 @@ EOF --createrepo-user) shift && _createrepo_user="$1" ;; - --service-mediaserver) - _service_ms="true" - ;; - --service-x11vnc-mediaserver) - _service_xms="true" - ;; --vncpass) shift && _vncpass="$1" ;; --display) shift && _display="$1" ;; - --service-createrepo) - _service_createrepo="true" - ;; --) shift break @@ -222,11 +222,6 @@ EOF _sanityChecks () { - if [[ -n $_service_ms && -n $_service_xms ]]; then - echo "--service-mediaserver is redundant when --service-x11vnc-mediaserver is set, unsetting..." - unset _service_ms - fi - if ! [[ "$ID" == "fedora" || "$ID" == "centos" ]] && \ [[ -z $_installrepo && -z $_buildonly && -z $_createrepo ]]; then echo "You must specify --repo, --build, or --createrepo on non-RHEL distributions!" @@ -705,19 +700,16 @@ EOF" unset _service_fname _service_name _timer_fname _timer_name _systemd_user - _service_name="$1.service" - _timer_name="$1.timer" - if [[ "$_user" == "root" ]]; then _service_fname="/usr/lib/systemd/system/$1.service" _timer_fname="/usr/lib/systemd/system/$1.timer" + _service_name="$1.service" + _timer_name="$1.timer" else - if [[ ! -d "$HOME/.config/systemd/user" ]]; then - mkdir -p "$HOME/.config/systemd/user" - fi - _service_fname="$HOME/.config/systemd/user/$1.service" - _timer_fname="$HOME/.config/systemd/user/$1.timer" - _systemd_user="User=$_user" + _service_fname="/usr/lib/systemd/system/$1@.service" + _timer_fname="/usr/lib/systemd/system/$1@.timer" + _service_name="$1@$_user.service" + _timer_name="$1@$_user.timer" fi } @@ -726,14 +718,13 @@ EOF" _generateServiceVars "jriver-mediaserver" - bash -c "cat <<-EOF > $_service_fname + "${_bash_cmd[@]}" "cat <<-EOF > $_service_fname [Unit] Description=JRiver Media Center $_mversion Media Server After=graphical.target [Service] Type=simple -$_systemd_user Environment=DISPLAY=$_display ExecStart=/usr/bin/mediacenter$_mversion /MediaServer Restart=always @@ -756,26 +747,25 @@ EOF" _generateServiceVars "jriver-x11vnc" if [[ "$_novncauth" == "true" ]]; then - _exec_start_cmd="/usr/bin/x11vnc -display $_display -geometry 1920x1080 -auth guess -forever -bg -nopw" + _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 -geometry 1920x1080 -rfbauth $HOME/.vnc/jrmc_passwd -auth guess -forever -bg" + _exec_start_cmd="/usr/bin/x11vnc -display $_display -noscr -geometry 1920x1080 -rfbauth $HOME/.vnc/jrmc_passwd -auth guess -forever -bg" fi - bash -c "cat <<-EOF > $_service_fname + "${_bash_cmd[@]}" "cat <<-EOF > $_service_fname [Unit] Description=x11vnc After=display-manager.service [Service] Type=forking -$_systemd_user Environment=DISPLAY=$_display ExecStart=$_exec_start_cmd Restart=always RestartSec=10 [Install] -WantedBy=graphical.target +WantedBy=default.target EOF" _systemctlReloadAndEnable "$_service_name" } @@ -785,18 +775,17 @@ EOF" _generateServiceVars "jriver-createrepo" - bash -c "cat <<-EOF > $_service_fname + "${_bash_cmd[@]}" "cat <<-EOF > $_service_fname [Unit] Description=Builds JRiver Media Center RPM file, moves it to the repo dir, and runs createrepo [Service] -$_systemd_user ExecStart=$_basedir/installJRMC --buildpath=$_outputdir --createrepo --createrepo-webroot $_createrepo_webroot --createrepo-user $_createrepo_user [Install] -WantedBy=multi-user.target +WantedBy=default.target EOF" - bash -c "cat <<-EOF > $_timer_fname + "${_bash_cmd[@]}" "cat <<-EOF > $_timer_fname [Unit] Description=Run JRiver MC rpmbuild hourly @@ -905,7 +894,7 @@ EOF" fi # Install createrepo systemd service - if [[ -n $_service_createrepo ]]; then + if [[ "$_service" == "createrepo" ]]; then _serviceCreaterepo fi @@ -917,12 +906,12 @@ EOF" _openFirewallPorts # Install MC systemd services - if [[ -n $_service_xms ]]; then + if [[ "$_service" == "x11vnc-mediaserver" ]]; then _serviceMediaserver _serviceX11VNC fi - if [[ -n $_service_ms ]]; then + if [[ "$_service" == "mediaserver" ]]; then _serviceMediaserver fi }