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.
135 lines
4.4 KiB
135 lines
4.4 KiB
#!/bin/bash
|
|
|
|
. /etc/minios/config
|
|
. /etc/minios.conf
|
|
|
|
function read_cmdline() {
|
|
for i in $@; do
|
|
case $i in
|
|
playlocally)
|
|
playlocally=true
|
|
shift # past argument with no value
|
|
;;
|
|
esac
|
|
done
|
|
}
|
|
|
|
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/$LIVEKITNAME/mediaplayer.config ]; then
|
|
. /run/initramfs/memory/data/$LIVEKITNAME/mediaplayer.config
|
|
cp /run/initramfs/memory/data/$LIVEKITNAME/mediaplayer.config /mediaplayer.config
|
|
else
|
|
. /mediaplayer.config
|
|
fi
|
|
|
|
read_cmdline /proc/cmdline
|
|
|
|
if [ $USER_NAME = "root" ]; then
|
|
user_name=guest
|
|
else
|
|
user_name=$USER_NAME
|
|
fi
|
|
|
|
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
|
|
|
|
sudo bash -c "sudo cat >/etc/samba/smb.conf <<EOF
|
|
[global]
|
|
dos charset = cp866
|
|
server string = Samba Server
|
|
unix charset = UTF8
|
|
log file = /var/log/samba/%m.log
|
|
max log size = 50
|
|
disable spoolss = Yes
|
|
load printers = No
|
|
printcap name = /dev/null
|
|
show add printer wizard = No
|
|
unix extensions = No
|
|
map to guest = Bad User
|
|
security = USER
|
|
dns proxy = No
|
|
idmap config * : backend = tdb
|
|
wide links = Yes
|
|
[media]
|
|
comment = Media Folder
|
|
path = $media_source
|
|
locking = No
|
|
read only = No
|
|
valid users = $user_name
|
|
EOF"
|
|
|
|
echo -e "$root_password\n$root_password" | (sudo passwd root >/dev/null 2>&1)
|
|
echo -e "$user_password\n$user_password" | (sudo passwd $user_name >/dev/null 2>&1)
|
|
sudo x11vnc -storepasswd "$x11vnc_password" /etc/vncpasswd >/dev/null 2>&1
|
|
echo -e "$samba_password\n$samba_password" | (sudo smbpasswd -a -s $user_name)
|
|
sudo systemctl restart x11vnc
|
|
sudo systemctl restart smbd
|
|
|
|
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"
|
|
chown $user_name "$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
|
|
if [ $USER_NAME = "root" ]; then
|
|
exec su -c "/usr/bin/$vlc_name $vlc_options '$(cat /tmp/mediaplayer/lastplayed)'" $user_name >/dev/null 2>&1 &
|
|
else
|
|
/usr/bin/$vlc_name $vlc_options $(cat /tmp/mediaplayer/lastplayed) >/dev/null 2>&1 &
|
|
fi
|
|
done
|
|
|