You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

112 lines
3.6 KiB

#!/bin/bash
function read_cmdline() {
for i in $@; do
case $i in
user_name=*)
user_name="${i#*=}"
shift # past argument=value
;;
playlocally)
playlocally=true
shift # past argument with no value
;;
*)
UNKNOWN=true
# unknown option
;;
esac
done
}
media_source="/mediasource"
playing_source="/playingsource"
local_source="/localsource"
if [ -f /run/initramfs/memory/toram/mediaplayer.config ]; then
. /run/initramfs/memory/toram/mediaplayer.config
cp /run/initramfs/memory/toram/mediaplayer.config /mediaplayer.config
elif [ -f /run/initramfs/memory/data/minios/mediaplayer.config ]; then
. /run/initramfs/memory/data/minios/mediaplayer.config
cp /run/initramfs/memory/data/minios/mediaplayer.config /mediaplayer.config
else
. /mediaplayer.config
fi
read_cmdline /proc/cmdline
if [ $user_name = "root" ]; then
user_name=guest
fi
sudo x11vnc -storepasswd "$x11vnc_password" /etc/x11vnc.pass >/dev/null 2>&1
echo -e "$samba_password\n$samba_password" | (sudo smbpasswd -a -s $user_name)
sudo systemctl restart ssh
sudo systemctl restart x11vnc
sudo systemctl restart novnc
sudo systemctl restart smbd
if [ $playlocally = "true" ]; then
if mount -L $local_source_label /mnt >/dev/null 2>&1; then
media_source=/mnt$media_source
playing_source=/mnt$playing_source
local_source=/mnt
local_mounted="true"
fi
fi
if [ ! -d "$media_source" ]; then
sudo mkdir -p $media_source
sudo chown $user_name:$user_name $media_source
fi
if [ ! -d "$playing_source" ]; then
sudo mkdir -p $playing_source
sudo chown $user_name:$user_name $playing_source
fi
if [ ! -d "$local_source" ]; then
sudo mkdir -p $local_source
sudo chown $user_name:$user_name $local_source
fi
if [ ! -d "/tmp/mediaplayer" ]; then
sudo mkdir -p /tmp/mediaplayer
sudo chown $user_name:$user_name /tmp/mediaplayer
fi
if [ $playlocally != "true" ]; then
if mount -L $local_source_label $local_source ] >/dev/null 2>&1; then
local_mounted="true"
fi
fi
if [ $local_mounted = "true" ]; then
if [ ! -d "$local_source/media" ]; then
sudo mkdir -p "$local_source/media"
sudo chown $user_name:$user_name "$local_source/media"
sudo mkdir -p "$local_source/mediaplayer"
sudo chown $user_name:$user_name "$local_source/mediaplayer"
fi
if [ -f "$local_source/mediaplayer/lastplayed" ]; then
cp $(cat $local_source/mediaplayer/lastplayed) $playing_source/
cp $local_source/mediaplayer/lastplayed /tmp/mediaplayer/lastplayed
fi
fi
if [ -f "/tmp/mediaplayer/lastplayed" ]; then
/usr/bin/$vlc_name $vlc_options $(cat /tmp/mediaplayer/lastplayed) >/dev/null 2>&1 &
fi
inotifywait -m $media_source -e close_write |
while read path action file; do
echo "The file $file appeared in directory $path via $action"
sleep $play_pause
xhost + >/dev/null 2>/dev/null
mv "$path$file" "$playing_source/$file"
kill -9 $(pidof vlc)
echo "$playing_source/$file" >/tmp/mediaplayer/lastplayed
find $playing_source ! -name "$file" -type f -exec rm -f {""} +
if [ -d "$local_source/media" ] && [ -d "$local_source/mediaplayer" ]; then
cp "$playing_source/$file" "$local_source/media/$file"
echo "$local_source/media/$file" >$local_source/mediaplayer/lastplayed
find $local_source/media ! -name "$file" -type f -exec rm -f {""} +
fi
/usr/bin/$vlc_name $vlc_options $(cat /tmp/mediaplayer/lastplayed) >/dev/null 2>&1 &
done