diff --git a/linux-live/module_scripts/03-mediaplayer/install b/linux-live/module_scripts/03-mediaplayer/install index 2742d0c..a04dbea 100644 --- a/linux-live/module_scripts/03-mediaplayer/install +++ b/linux-live/module_scripts/03-mediaplayer/install @@ -13,3 +13,72 @@ if [ -f $SCRIPT_DIR/$PACKAGE_VARIANT.list ]; then $APT_CMD install $APT_OPTIONS \ $(grep -vE "^\s*#" $SCRIPT_DIR/$PACKAGE_VARIANT.list | tr "\n" " ") >>$OUTPUT 2>&1 fi + +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 = /mediasource + locking = No + read only = No + valid users = guest +EOF + +cat >/lib/systemd/system/x11vnc.service <<'EOF' +[Unit] +Description=Start x11vnc at startup. +After=multi-user.target +[Service] +Type=simple +ExecStart=/usr/bin/x11vnc -auth guess -forever -loop -noxdamage -repeat -rfbauth /etc/x11vnc.pass -rfbport 5900 -shared +[Install] +WantedBy=multi-user.target +EOF + +cat >/lib/systemd/system/novnc.service <<'EOF' +[Unit] +Description=NoVNC +After=network.target +[Service] +Type=simple +User=novnc +WorkingDirectory=/usr/share/novnc +ExecStart=/usr/bin/websockify --web /usr/share/novnc/ :6080 127.0.0.1:5900 +#ExecStart=/usr/share/novnc/utils/launch.sh +Restart=on-abort +[Install] +WantedBy=multi-user.target +EOF + +cat >/mediaplayer.config <<'EOF' +x11vnc_password=P1ayMyVide0 +samba_password=P1ayMyVide0 +vlc_password=P1ayMyVide0 +nextcloud_password=P1ayMyVide0 +media_source="/mediasource" +playing_source="/playingsource" +local_source="/localsource" +local_source_label="LOCALSOURCE" +vlc_name=cvlc +vlc_options=" -f -R --no-video-title --extraintf=http --http-password $vlc_password" +play_pause=1 +EOF + +systemctl disable smbd +systemctl disable x11vnc +systemctl disable novnc diff --git a/linux-live/module_scripts/03-mediaplayer/rootcopy-install/etc/skel/.xinitrc b/linux-live/module_scripts/03-mediaplayer/rootcopy-install/etc/skel/.xinitrc new file mode 100644 index 0000000..642980c --- /dev/null +++ b/linux-live/module_scripts/03-mediaplayer/rootcopy-install/etc/skel/.xinitrc @@ -0,0 +1,2 @@ +/usr/bin/xrdb -merge .Xresources +exec openbox-session \ No newline at end of file diff --git a/linux-live/module_scripts/03-mediaplayer/rootcopy-install/usr/bin/mediaplayer b/linux-live/module_scripts/03-mediaplayer/rootcopy-install/usr/bin/mediaplayer new file mode 100644 index 0000000..79461f1 --- /dev/null +++ b/linux-live/module_scripts/03-mediaplayer/rootcopy-install/usr/bin/mediaplayer @@ -0,0 +1,64 @@ +#!/bin/bash +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 + +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 [ ! -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 mount -L $local_source_label $local_source >/dev/null 2>&1; 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 diff --git a/linux-live/module_scripts/03-mediaplayer/standard.list b/linux-live/module_scripts/03-mediaplayer/standard.list new file mode 100644 index 0000000..da4ceb5 --- /dev/null +++ b/linux-live/module_scripts/03-mediaplayer/standard.list @@ -0,0 +1,6 @@ +vlc +inotify-tools +samba +x11vnc +novnc +openbox