summaryrefslogtreecommitdiffstats
path: root/core/modules/run-virt/data/opt/openslx/vmchooser/data/linux
diff options
context:
space:
mode:
authorChristian Rößler2018-12-03 17:59:18 +0100
committerChristian Rößler2018-12-03 17:59:18 +0100
commit2084b22faaabedacbe934ef0b99549cbb8b558aa (patch)
treead4a1a9c9054ce3eae965c4a5954a78ff8c549eb /core/modules/run-virt/data/opt/openslx/vmchooser/data/linux
parentMerge branch 'master' of git.openslx.org:openslx-ng/mltk (diff)
downloadmltk-2084b22faaabedacbe934ef0b99549cbb8b558aa.tar.gz
mltk-2084b22faaabedacbe934ef0b99549cbb8b558aa.tar.xz
mltk-2084b22faaabedacbe934ef0b99549cbb8b558aa.zip
[run-virt] Linux scripts div. changes mounting, new sound muter (alsa to be tested)
Diffstat (limited to 'core/modules/run-virt/data/opt/openslx/vmchooser/data/linux')
-rwxr-xr-xcore/modules/run-virt/data/opt/openslx/vmchooser/data/linux/includes/00_vars.inc2
-rwxr-xr-xcore/modules/run-virt/data/opt/openslx/vmchooser/data/linux/includes/10_functions.inc29
-rwxr-xr-xcore/modules/run-virt/data/opt/openslx/vmchooser/data/linux/includes/30_mount_shares.inc25
-rw-r--r--core/modules/run-virt/data/opt/openslx/vmchooser/data/linux/includes/70_mutesound.inc67
-rwxr-xr-xcore/modules/run-virt/data/opt/openslx/vmchooser/data/linux/openslx4
5 files changed, 101 insertions, 26 deletions
diff --git a/core/modules/run-virt/data/opt/openslx/vmchooser/data/linux/includes/00_vars.inc b/core/modules/run-virt/data/opt/openslx/vmchooser/data/linux/includes/00_vars.inc
index 6ff9271a..4e44e076 100755
--- a/core/modules/run-virt/data/opt/openslx/vmchooser/data/linux/includes/00_vars.inc
+++ b/core/modules/run-virt/data/opt/openslx/vmchooser/data/linux/includes/00_vars.inc
@@ -32,7 +32,7 @@ CREATEMISSING=$(grep '^createMissingRemap=' "$SLXCONFIGFILE" | cut -d '=' -f 2)
SCRIPTUSER=$(grep '^scriptUser=' "$SLXCONFIGFILE" | cut -d '=' -f 2)
SCRIPTVISIBILITY=$(grep '^scriptVisibility=' "$SLXCONFIGFILE" | cut -d '=' -f 2)
SCRIPTEXT=$(grep scriptExt "$DISKMOUNTDIR/openslx.ini" | cut -f 2 -d "=")
-
+MUTESOUND=$(grep muteSound "$DISKMOUNTDIR/openslx.ini" | cut -f 2 -d "=")
# CIFSVERSIONS="3.11 3.0 2.1 2.0 1.0"
CIFSVERSIONS="3.0 2.1 1.0 3.11 2.0"
diff --git a/core/modules/run-virt/data/opt/openslx/vmchooser/data/linux/includes/10_functions.inc b/core/modules/run-virt/data/opt/openslx/vmchooser/data/linux/includes/10_functions.inc
index a061fef9..1649e795 100755
--- a/core/modules/run-virt/data/opt/openslx/vmchooser/data/linux/includes/10_functions.inc
+++ b/core/modules/run-virt/data/opt/openslx/vmchooser/data/linux/includes/10_functions.inc
@@ -121,6 +121,35 @@ function mount_share()
fi
}
+function mount_home()
+{
+ logger "openslx sharemapper: home share \"$SHARENAME\" found (for PERSISTENT)."
+ export USER="${GLOBALUSER}"
+ export PASSWD="${PW}"
+ ERRORMSG=""
+ mounter "${MOUNTPARAM}" "${MOUNTOPTS}" "${SHAREPATH}" "${USERHOMEDIR}" 2>/dev/null 1>&2
+ ERR=$?
+ unset USER
+ unset PASSWD
+
+ case $ERR in 1) logger "openslx sharemapper: could not mount home share."
+ echo "Konnte Home-Laufwerk nicht einhängen!" >> "$USERLOGFILE"
+ ;;
+ 2) logger "openslx sharemapper: home share seems to be already mounted."
+ ;;
+ 0) logger "openslx sharemapper: Linking ${USERDESKTOP}/$(basename $USERHOMEDIR), if possible."
+ # Changed: Link on Desktop no longer "Home-verz.", but same
+ # name as last part of $USERHOMEDIR (-->PERSISTENT)
+ # ln -s "$USERHOMEDIR" "${USERDESKTOP}"/"$SHARENAME"
+ ln -s "$USERHOMEDIR" "${USERDESKTOP}"/$(basename "$USERHOMEDIR")
+ chown "$LOCALUSER" "${USERDESKTOP}"/$(basename "$USERHOMEDIR")
+ logger "openslx sharemapper: "${USERDESKTOP}"/$(basename "$USERHOMEDIR") linked."
+ ;;
+ *) logger "openslx sharemapper: Unknown error level mounting home share."
+ ;;
+ esac
+}
+
### Funktionen Mounter Ende #######################
### Funktionen Ende ###############################
diff --git a/core/modules/run-virt/data/opt/openslx/vmchooser/data/linux/includes/30_mount_shares.inc b/core/modules/run-virt/data/opt/openslx/vmchooser/data/linux/includes/30_mount_shares.inc
index 8328e361..c5d37105 100755
--- a/core/modules/run-virt/data/opt/openslx/vmchooser/data/linux/includes/30_mount_shares.inc
+++ b/core/modules/run-virt/data/opt/openslx/vmchooser/data/linux/includes/30_mount_shares.inc
@@ -23,30 +23,7 @@ function mount_shares()
# User-Homeverzeichnis?
if [ "${SHARENAME:0:5}" == "Home-" ]; then
- logger "openslx sharemapper: home share \"$SHARENAME\" found (for PERSISTENT)."
- export USER="${GLOBALUSER}"
- export PASSWD="${PW}"
- ERRORMSG=""
- mounter "${MOUNTPARAM}" "${MOUNTOPTS}" "${SHAREPATH}" "${USERHOMEDIR}" 2>/dev/null 1>&2 &
- ERR=$?
- unset USER
- unset PASSWD
-
- case $ERR in 1) echo "Konnte Home-Laufwerk nicht einhängen!" >> "$USERLOGFILE"
- ;;
- 2) logger "openslx sharemapper: home share seems to be already mounted."
- ;;
- 0) logger "openslx sharemapper: Linking ${USERDESKTOP}/$(basename $USERHOMEDIR), if possible."
- # Changed: Link on Desktop no longer "Home-verz.", but same
- # name as last part of $USERHOMEDIR (-->PERSISTENT)
- # ln -s "$USERHOMEDIR" "${USERDESKTOP}"/"$SHARENAME"
- ln -s "$USERHOMEDIR" "${USERDESKTOP}"/$(basename "$USERHOMEDIR")
- chown "$LOCALUSER" "${USERDESKTOP}"/$(basename "$USERHOMEDIR")
- logger "openslx sharemapper: "${USERDESKTOP}"/$(basename "$USERHOMEDIR") linked."
- ;;
- *) logger "openslx sharemapper: Unknown error level mounting home share."
- ;;
- esac
+ mount_home &
else
if [ -n "${SHARENAME}" ]; then
mount_share &
diff --git a/core/modules/run-virt/data/opt/openslx/vmchooser/data/linux/includes/70_mutesound.inc b/core/modules/run-virt/data/opt/openslx/vmchooser/data/linux/includes/70_mutesound.inc
new file mode 100644
index 00000000..932877af
--- /dev/null
+++ b/core/modules/run-virt/data/opt/openslx/vmchooser/data/linux/includes/70_mutesound.inc
@@ -0,0 +1,67 @@
+function mutesound()
+{
+
+local PACTL=$(which pactl)
+local AMIXER=$(which amixer)
+local SYSTEM=alsa
+local PACTLERR
+local AMIXERERR
+
+if [[ -z "$AMIXER" && -z "$PACTL" ]]; then
+ logger "openslx sound muter: Neither pactl (pulseaudio) nor amixer (alsa) found. Exiting."
+ return 1
+fi
+
+
+if [ -n "$PACTL" ]; then
+ SYSTEM=pulse
+ logger "openslx sound muter: pulseaudio seems to be installed..."
+ x=2
+ # while [ $(su -c "pulseaudio --check" "$LOCALUSER") ]; do
+ while [ -z "$(ps aux|grep /pulseaudio|grep -v grep)" ]; do
+ logger "openslx sound muter: Waiting for pulseaudio..."
+ if [ "$x" -gt 30]; then
+ logger "openslx sound muter: Waited $x sec for pulseaudio, giving up."
+ [ -n "$AMIXER" ] && SYSTEM=alsa || SYSTEM="" # unset -v SYSTEM
+ break
+ fi
+ sleep $x; x=$((x + 2))
+ done
+fi
+
+ # MUTESOUND: Sound 1=aus, 0=an
+ # This is a bit problematic as there is no way to actually know whether
+ # a command works within different distributions, esp. alsamixer commands
+ # tend to successfully mute but not unmute. So we (at this stage) just
+ # hammer known commands through - one will work, hopefully.
+ case $MUTESOUND in 0) logger "openslx sound muter: Unmuting sound, using $SYSTEM."
+ case $SYSTEM in pulse) XDG_RUNTIME_DIR=/run/user/$(id -u $LOCALUSER) su -c "pactl set-sink-mute 0 0" "$LOCALUSER"
+ PACTLERR=$?
+ XDG_RUNTIME_DIR=/run/user/$(id -u $LOCALUSER) su -c "$AMIXER" -q -D pulse sset Master unmute "$LOCALUSER"
+ AMIXERERR=$?
+ logger "openslx sound muter: Sound hopefully unmuted, pactl: $PACTLERR, amixer: $AMIXERERR."
+ ;;
+ alsa) "$AMIXER" set Master unmute
+ AMIXERERR=$?
+ logger "openslx sound muter: Sound hopefully unmuted, amixer: $AMIXERERR."
+ ;;
+ esac
+ ;;
+ 1) logger "openslx sound muter: Muting sound, using $SYSTEM"
+ case $SYSTEM in pulse) XDG_RUNTIME_DIR=/run/user/$(id -u $LOCALUSER) su -c "pactl set-sink-mute 0 1" "$LOCALUSER"
+ PACTLERR=$?
+ XDG_RUNTIME_DIR=/run/user/$(id -u $LOCALUSER) su -c "$AMIXER" -q -D pulse sset Master mute "$LOCALUSER"
+ AMIXERERR=$?
+ logger "openslx sound muter: Sound hopefully unmuted, pactl: $PACTLERR, amixer: $AMIXERERR."
+ ;;
+ alsa) "$AMIXER" set Master mute
+ AMIXERERR=$?
+ logger "openslx sound muter: Sound hopefully unmuted, amixer: $AMIXERERR."
+ ;;
+ esac
+ ;;
+ *) logger "openslx sound muter: Unknown muteSound option $MUTESOUND"
+ ;;
+ esac
+ logger "openslx sound muter: end."
+}
diff --git a/core/modules/run-virt/data/opt/openslx/vmchooser/data/linux/openslx b/core/modules/run-virt/data/opt/openslx/vmchooser/data/linux/openslx
index 8e08f44e..03617bcc 100755
--- a/core/modules/run-virt/data/opt/openslx/vmchooser/data/linux/openslx
+++ b/core/modules/run-virt/data/opt/openslx/vmchooser/data/linux/openslx
@@ -22,6 +22,9 @@ cd /tmp/.X11-unix && for x in X*; do
done
cd "$OLDPWD"
+# Mute/unmute sound:
+mutesound &
+
logger "openslx utility script: spawning share mounter..."
mnt_shares &
MNTPID=$!
@@ -32,7 +35,6 @@ logger "openslx utility script: Waiting for mounter..."
wait $MNTPID # ${RSPID[*]}
logger "openslx utility script: mounter finished."
-
logger "openslx utility script: starting runscript..."
runscript
logger "openslx utility script: runscript finished."