summaryrefslogtreecommitdiffstats
path: root/linhes/linhes-system
diff options
context:
space:
mode:
Diffstat (limited to 'linhes/linhes-system')
-rwxr-xr-xlinhes/linhes-system/PKGBUILD16
-rwxr-xr-xlinhes/linhes-system/add_storage.py201
-rwxr-xr-xlinhes/linhes-system/be_check.py25
-rwxr-xr-xlinhes/linhes-system/diskspace.sh4
-rwxr-xr-xlinhes/linhes-system/find_orphans.py2
-rwxr-xr-xlinhes/linhes-system/lh_notify-send12
-rwxr-xr-xlinhes/linhes-system/lh_system_start.sh9
7 files changed, 78 insertions, 191 deletions
diff --git a/linhes/linhes-system/PKGBUILD b/linhes/linhes-system/PKGBUILD
index ae993b7..5e4eace 100755
--- a/linhes/linhes-system/PKGBUILD
+++ b/linhes/linhes-system/PKGBUILD
@@ -1,6 +1,6 @@
pkgname=linhes-system
pkgver=9.0.0
-pkgrel=11
+pkgrel=13
arch=('x86_64')
#install=$pkgname.install
pkgdesc="Everything that makes LinHES a system"
@@ -8,7 +8,8 @@ license=('GPL2')
depends=('cronie' 'dbus-python' 'kdialog' 'libnotify' 'linhes-templates' 'pacman-contrib'
'openssh' 'ttf-overlock')
binfiles="add_storage.py balance_storage_groups.py empty_storage_groups.py remove_storage.py
- checkXFSfrag.sh enableIRWake.sh idle.py lh_system_start.sh jobqueue_helper.py
+ checkXFSfrag.sh enableIRWake.sh idle.py lh_system_start.sh lh_notify-send
+ jobqueue_helper.py
diskspace.sh find_orphans.py optimize_mythdb.py
create_media_dirs.sh be_check.py
myth2mkv myth2mp3"
@@ -19,20 +20,21 @@ source=($binfiles
'10-monitor.conf' 'x11vnc.override.conf'
'system-sudo.rules' 'linhes-profile.sh'
'lh_system_start.sh.desktop')
-sha256sums=('979a916cb54ca8f481a045867b0c77c06cf184a3e8d962df52525dd893e1ace4'
+sha256sums=('7f91d2afcb76e8e9063c6bbe05f5c3d134a6f67541aead8894d342c32d34ad98'
'b0e8fe4d04e1f779d52a28156489fb51efc13e173efccba2d6d458044bf35904'
'4ab36bbabf0964f666278c225f4c2d41f4277acb42e9023163fa3a9599282466'
'ff261f41efec8a9963f9f59100cbe75f015028a2ed3a863ce0cb473f2ebb7b76'
'11168c9cd3b117decaab6bc665c183b4aab917cf0a976bce4c1b5e4686a27bc9'
'ae34515e144830f424d3bd3f6b1b446892d62beed20bca6f0fb19b0bbb779f27'
'23358a7bff4968eccd469613b81b1415c2ae0ebe77f14f74426697333e4d88d7'
- '5698b2899ecb8a9cce610aecb4deaa17078cee37b0f6d8e262e360b20f27efe3'
+ '5910646ba0dba090c35ad3cfb7b8eed374bd761517807eeda3fb8007613cb127'
+ '6d4fb0ed1a5ed961b3a3884dce093118e50c2981a9cd5837d20abc5a6d4fd8aa'
'91bdec992bb2c933e15625c181f2195c402060b879168ebf35944cb064c904b9'
- 'cedd34e448d3d45ab0f9fff40c115401f45bdea5b99215d0aff514a759ae2b7c'
- '76f023c0cde7fea269234f1b29c32b117b91769217d4b1b8a3922daceb25f9f8'
+ 'ebdb3ee0212e0cc72526bb5e50a032573e1894acb7bf75617243b0b49aa1f8f2'
+ '4d006f0fe3b13e67de1b961d611e81911905a30d140849dfdb8e5c0dc4da2f7c'
'e371c6a289c68fe200d7da856c20a8c579efa23178f4d62235f7359d7f6e49a1'
'bffcc13e4b480f720feb2b3c781bc4247c63303250c3d885022c699573d45a33'
- '0254a21644473ba7953501a223f13b9b55d7ec290c80a567724ca1ac13e02e30'
+ '51093acab5e5a4de51a55f4bdf7b935f4f69edf3d84f1c37db710853ec95eca8'
'9ea1b5583cd38f53bb79d9e4ccae91a028db0b6850162d7991b19122c564b9c9'
'cab7724cd7c792adae79ba11cf59a0908edf197c437ae6b356ce86c6a365f0da'
'9e97b4d68c9e8988daacadd40f1de9f0b5945d870eba596a2ceb5e0c023fa9c0'
diff --git a/linhes/linhes-system/add_storage.py b/linhes/linhes-system/add_storage.py
index e210bf1..e880884 100755
--- a/linhes/linhes-system/add_storage.py
+++ b/linhes/linhes-system/add_storage.py
@@ -5,7 +5,7 @@
#Disks that are mounted, in fstab, size < 5000 bytes, optical or
#have already been seen will not be presented as an option.
#
-# Version 2.0.1
+# Version 2.0.2
import dbus
import pickle
@@ -188,7 +188,6 @@ class disk_device:
return
def get_fsmap(self):
- #block,point,fs
fs_map=[]
f = open('/proc/mounts','r')
@@ -243,7 +242,7 @@ class disk_device:
tmpuuid = runcmd(cmd)[1]
splituuid = tmpuuid.partition("=")
uuid = splituuid[2].replace('"', "")
- # logging.info("The uuid is %s", uuid)
+ #logging.info("The uuid is %s", uuid)
if uuid == '':
print("Could not find a UUID for device: %s" %partition)
sys.exit(1)
@@ -272,38 +271,38 @@ class disk_device:
return options,i
- def add_fstab(self,bind=False):
- new_fstab_list=['UUID=', 'mount_point', 'auto', 'defaults', '0', '1']
+ def add_fstab(self):
+ #new_fstab_list=['UUID=', 'mount_point', 'auto', 'defaults', '0', '1']
+ new_fstab_list=['UUID=', 'mount_point', self.new_fstype, 'defaults', '0', '1']
fstab=self.read_fstab()
new_fstab=[]
#determine mount_path
self.new_mount_point="%s/%s_%s" %(self.top_mount_dir,self.model.replace(' ',''),self.serial_number.replace(' ',''))
- if bind:
- new_fstab_list=["/data/storage/disk0" , self.new_mount_point , "none" , "rw,bind", '0', '0']
- uuid=self.find_uuid(self.block_partition)
- else:
- #check for old mount point and comment out
- for line in fstab:
- if not line.startswith("#"):
- if line.find(self.new_mount_point) > -1:
- print(" Found old mount %s in fstab, commenting out" %self.new_mount_point)
- line = "#"+line
+ #check for old mount point and comment out
+ for line in fstab:
+ if not line.startswith("#"):
+ if line.find(self.new_mount_point) > -1:
+ print(" Found old mount %s in fstab, commenting out" %self.new_mount_point)
+ line = "#"+line
new_fstab.append(line)
- fstab=new_fstab
+ fstab=new_fstab
- #determine options
- new_options = self.find_options_type(fstab)[0]
+ #determine options
+ #new_options = self.find_options_type(fstab)[0]
+ new_options = "nofail,x-systemd.device-timeout=1"
- #find blkid
- self.block_partition="%s1" %self.block_path
- uuid=self.find_uuid(self.block_partition)
+ #find blkid
+ self.block_partition="%s1" %self.block_path
+ uuid=self.find_uuid(self.block_partition)
- #construct new line
- new_fstab_list[0]="UUID=%s" %uuid
- new_fstab_list[1]=self.new_mount_point
- new_fstab_list[3]=new_options
+ #construct new line
+ new_fstab_list[0]="UUID=%s" %uuid
+ new_fstab_list[1]=self.new_mount_point
+ new_fstab_list[3]=new_options
+ if self.new_fstype == "xfs":
+ new_fstab_list[5]="0"
new_fstab_line='\t'.join(new_fstab_list)
new_fstab_line="%s\n" %new_fstab_line
@@ -311,10 +310,8 @@ class disk_device:
#add line to fstab
f = open('/etc/fstab', 'w')
- #f = open('/tmp/fstab', 'w')
for i in fstab:
f.write(i)
- #f.write("\n")
f.close()
return
@@ -416,15 +413,6 @@ class disk_device:
cmd = "ln -s %s %s" %(self.new_mount_point,disk_ln)
runcmd(cmd)
- def symlink(self):
- pass
- print(" Creating symlink for /myth")
- if not os.path.exists("/myth"):
- cmd = "ln -s %s/media /myth " %(self.new_mount_point)
- runcmd(cmd)
- else:
- print(" Skipping symlink, /myth already exists")
-
#end of class
@@ -672,7 +660,7 @@ def main(scan_only, destruction, no_mount, install_call, dir_sg):
print(" Unknown or Unmounted Disks:")
f = open('/tmp/scan_report', 'w')
for i in process_list:
- f.write("disk: %s , location: %s ,size: %s \n" %(i.model,i.block_path,i.device_size))
+ f.write("disk: %s, location: %s, size: %s\n" %(i.model,i.block_path,i.device_size))
print("\n")
print(" ---------------------------------------------------------")
print(" Found New Disk:")
@@ -695,12 +683,6 @@ def main(scan_only, destruction, no_mount, install_call, dir_sg):
else:
print("\nThere are no disks to add to your system.\n\nFor more options: add_storage.py --help\n")
write_known_drive_list(system_drive_list)
- #BE = MythBE(db=DB)
-
-
- #save new list to disk_device
- #write_known_drive_list(system_drive_list)
- #disk_num = last_disk_num()
if len(process_list) > 0:
@@ -719,7 +701,6 @@ def main(scan_only, destruction, no_mount, install_call, dir_sg):
i.format_disk()
i.add_fstab()
i.mount_disk(no_mount)
- #if destruction == True:
if dir_sg == True:
i.mkdirs(FS_LIST)
@@ -736,72 +717,6 @@ def main(scan_only, destruction, no_mount, install_call, dir_sg):
i.add_sg(DB,host,SG_MAP)
print("-----")
- #cmd = "systemconfig.py -m fileshare"
- #runcmd(cmd)
- #i.add_sg(DB,host,SG_MAP)
-
-def myth_main(no_mount,install_call,dir_sg):
- global bus
- bus = dbus.SystemBus()
- #search for root
- f = open('/etc/fstab', 'r')
- fstab=f.readlines()
- f.close()
- for i in fstab:
- split_line=i.split()
- if not split_line:
- continue
-
- try:
- if split_line[1] == "/" :
- uuid_device = split_line[0]
- break
- except:
- print("Couldn't find / in fstab")
- sys.exit(1)
- if uuid_device.startswith("UUID"):
- uuid_device = uuid_device.split("=")[1]
- cmd = "blkid -U %s" %uuid_device
- device = runcmd(cmd)[1]
- else:
- device = uuid_device.strip()
- #should have something like /dev/sda1
- #remove all the digits
- device = ''.join([letter for letter in device if not letter.isdigit()])
-
-
- system_drive_list = scan_system()
- for i in system_drive_list:
- if i.block_path == device:
- break
- else:
- print("Couldn't find root device in block list")
- sys.exit(1)
- if not install_call == True:
- DB = MythDB()
- host=gethostname()
- else:
- DB = None
- host=gethostname()
-
-
- print(" Disk: %s" %(i.get_name()))
- i.set_mmount(True)
- i.set_dir_sg(dir_sg)
- i.set_partition("7")
- i.set_disk_num(0)
- i.lookup_format()
- i.add_fstab(True)
- #if not install_call:
- i.mount_disk(no_mount)
- i.write_config()
- #no need to make the sub directories because the install process has taken care of it.
- if dir_sg == True:
- i.add_sg(DB,host,SG_MAP,'99',install_call)
-
- i.symlink()
- cmd = "systemconfig.py -m fileshare"
- runcmd(cmd)
def reconstruct_storagegroups():
print("\nRecreating storage groups from contents of /etc/storage.d/\n")
@@ -833,7 +748,7 @@ def reconstruct_storagegroups():
except configparser.NoOptionError as err:
print("SG not found in conf, get setting from DB")
dir_sg = False
- # Get storage sroup directories from DB
+ # Get storage group directories from DB
recs = DB.getStorageGroup(groupname="Default")
for record in recs:
if record.dirname.startswith(mount_point):
@@ -908,8 +823,6 @@ class reconstruct_path:
self.uuid = parser.get('storage', 'uuid')
self.mount_point = parser.get('storage', 'mountpoint')
self.shareable = parser.get('storage', 'shareable')
- self.myth_mount = parser.get('storage', 'mmount')
- self.bind = self.myth_mount
self.disk_num = parser.get('storage', 'disk_num')
self.top_mount_dir = os.path.dirname(self.mount_point)
try:
@@ -989,19 +902,9 @@ class reconstruct_path:
new_fstab_line="%s\n" %new_fstab_line
f = open('/etc/fstab', 'a')
- #f = open('/tmp/fstab', 'a')
f.write(new_fstab_line)
- #f.write("\n")
f.close()
- def symlink(self):
- print(" Creating symlink for /myth")
- if not os.path.exists("/myth"):
- cmd = "ln -s %s/media /myth " %(self.mount_point)
- runcmd(cmd)
- else:
- print(" Skipping symlink, /myth already exists")
-
def symlink_disk(self):
print(" Creating symlink for disk%s" %self.disk_num)
disk_ln="%s/disk%s" %(self.top_mount_dir,self.disk_num)
@@ -1013,38 +916,29 @@ class reconstruct_path:
new_fstab_list=['UUID=', 'mount_point', self.fstype, 'defaults', '0', '1']
fstab=self.read_fstab()
- if self.bind == "True":
- self.symlink()
-
if self.check_in_fstab(fstab,self.uuid) == True:
print(" Found UUID of disk in fstab, will not add it")
else:
print(" Adding storage to fstab")
- if self.bind == "True" :
- print(" Bind mount")
- new_fstab_list=["/data/storage/disk0" , self.mount_point , "none" , "rw,bind", '0', '0']
- if self.check_in_fstab(fstab,self.mount_point) == False:
- self.append_fstab(new_fstab_list)
- else:
- print(" Found bind storage in fstab, will not add it")
+ #check for old mount point and comment out
+ f = open('/etc/fstab', 'w')
+ for line in fstab:
+ if not line.startswith("#"):
+ if line.find(self.mount_point) > -1:
+ print(" Found old mount %s in fstab, commenting out" %self.mount_point)
+ line = "#"+line
+ f.write(line)
+ f.close()
- else:
- #check for old mount point and comment out
- f = open('/etc/fstab', 'w')
- for line in fstab:
- if not line.startswith("#"):
- if line.find(self.mount_point) > -1:
- print(" Found old mount %s in fstab, commenting out" %self.mount_point)
- line = "#"+line
- f.write(line)
- f.close()
-
- #construct new line
- new_options = self.find_options_type(fstab)[0]
- new_fstab_list[0]="UUID=%s" %self.uuid
- new_fstab_list[1]=self.mount_point
- new_fstab_list[3]=new_options
- self.append_fstab(new_fstab_list)
+ #construct new line
+ #new_options = self.find_options_type(fstab)[0]
+ new_options = "nofail,x-systemd.device-timeout=1"
+ new_fstab_list[0]="UUID=%s" %self.uuid
+ new_fstab_list[1]=self.mount_point
+ new_fstab_list[3]=new_options
+ if self.fstype == "xfs":
+ new_fstab_list[5]="0"
+ self.append_fstab(new_fstab_list)
def mount_disk(self,no_mount=False):
try:
@@ -1124,7 +1018,6 @@ def usage():
(if user enables MythTV storage groups)
Write out the disk config file to /etc/storage.d/
Create disk# symlink at /data/storage/
- Create /myth symlink (if applicable)
Create MythTV storage group paths in MythTV database
(if user enables MythTV storage groups)
@@ -1142,7 +1035,7 @@ def usage():
partition on a disk and ignores all others.
--no_mount: Do not mount the disk.
All other normal operations will be performed.
- --reconstruct: Recreate mount point, /myth symlink, fstab entry,
+ --reconstruct: Recreate mount point, fstab entry,
/data/storage/disk# symlink, and mount the disk.
--no_mount is the only option that works with
--reconstruct.
@@ -1215,9 +1108,7 @@ if __name__ == "__main__":
if "--reconstruct_sg" in sys.argv:
reconstruct_sg = True
- if "--double_myth" in sys.argv:
- myth_main(no_mount, install_call, dir_sg)
- elif reconstruct == True:
+ if reconstruct == True:
reconstruct_mounts(no_mount)
elif reconstruct_sg == True:
reconstruct_storagegroups()
diff --git a/linhes/linhes-system/be_check.py b/linhes/linhes-system/be_check.py
index b5f7a64..1a8dc58 100755
--- a/linhes/linhes-system/be_check.py
+++ b/linhes/linhes-system/be_check.py
@@ -2,33 +2,10 @@
#simple program to check if mythbackend is up and running
#exit code of 0 is success, anything else means it can't connect
import sys
-class Logger(object):
- def __init__(self, filename="/tmp/Default.log"):
- #self.terminal = sys.stdout
- try:
- self.log = open(filename, "a")
- except:
- pass
-
- def write(self, message):
- try:
- #self.terminal.write(message)
- self.log.write(message)
- except:
- pass
-
-sys.stdout = Logger("/tmp/be_check.log")
-
-
from MythTV import MythBE,MythDB
-#import datetime,time,sys,subprocess
-
-
-
-
try:
- be=MythBE()
+ be = MythBE()
db = MythDB()
except:
sys.exit(1)
diff --git a/linhes/linhes-system/diskspace.sh b/linhes/linhes-system/diskspace.sh
index f28cf46..1ab6dd7 100755
--- a/linhes/linhes-system/diskspace.sh
+++ b/linhes/linhes-system/diskspace.sh
@@ -17,7 +17,7 @@ AWK='/usr/bin/awk'
CUT='/usr/bin/cut'
HOSTNAME='/usr/bin/hostnamectl hostname'
DATE='/usr/bin/date'
-MSG_CLIENT='/usr/bin/notify-send'
+MSG_CLIENT='/usr/bin/lh_notify-send'
#
# Static System Variables
@@ -59,7 +59,7 @@ $DF -HPl | $GREP -E "^/dev/" | $AWK '{ print $5 " " $6 " " $1 }' | while read OU
if [ ${USED_PCENT} -ge $ALERT ]; then
echo "WARNING: Partition (${PARTITION}) on (${DEVICE}) is ${USED_PCENT}% full on ${THIS_HOST}"
if [ $OSD = true ] && { [ ${PARTITION} = / ] || [ ${PARTITION} = /home ] || [ ${PARTITION} = /data/srv/mysql ]; } then
- $MSG_CLIENT "Disk Space WARNING" "Partition (${PARTITION}) on (${DEVICE}) is ${USED_PCENT}% full."
+ $MSG_CLIENT --app-name="Disk Space WARNING" "Partition (${PARTITION}) on (${DEVICE}) is ${USED_PCENT}% full."
fi
fi
done
diff --git a/linhes/linhes-system/find_orphans.py b/linhes/linhes-system/find_orphans.py
index 964d6e4..8072b8f 100755
--- a/linhes/linhes-system/find_orphans.py
+++ b/linhes/linhes-system/find_orphans.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python2
+#!/usr/bin/env python
from MythTV import MythDB, MythBE, Recorded, MythError
from socket import timeout
diff --git a/linhes/linhes-system/lh_notify-send b/linhes/linhes-system/lh_notify-send
new file mode 100755
index 0000000..dd98ede
--- /dev/null
+++ b/linhes/linhes-system/lh_notify-send
@@ -0,0 +1,12 @@
+#!/bin/bash
+
+#Detect the name of the display in use
+display=":$(ls /tmp/.X11-unix/* | sed 's#/tmp/.X11-unix/X##' | head -n 1)"
+
+#Detect the user using such display
+user=$(who | grep '('$display')' | awk '{print $1}' | head -n 1)
+
+#Detect the id of the user
+uid=$(id -u $user)
+
+sudo -u $user DISPLAY=$display DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/$uid/bus notify-send "$@"
diff --git a/linhes/linhes-system/lh_system_start.sh b/linhes/linhes-system/lh_system_start.sh
index 24c35d5..42f4b67 100755
--- a/linhes/linhes-system/lh_system_start.sh
+++ b/linhes/linhes-system/lh_system_start.sh
@@ -5,7 +5,7 @@
#SystemType=Masterbackend
function msg(){
- /usr/bin/notify-send --app-name="LinHES" --icon=dialog-information "$1" "$2"
+ /usr/bin/lh_notify-send --app-name="LinHES" --icon=dialog-information "$1" "$2"
}
function check_installer_user(){
@@ -55,6 +55,7 @@ function nanorc_setup(){
}
function storage_scan(){
+ sudo add_storage.py --report > /dev/null
if [ -e /tmp/scan_report ]; then
msg "New Storage Found" "Run add_storage.py for details."
fi
@@ -107,10 +108,14 @@ function first_configure(){
fi
}
-
+function start_myth() {
+ STARTCMD="/usr/bin/mythfrontend
+ $STARTCMD 2>&1 &
+}
#-------MAIN-------
check_installer_user
first_configure
/usr/bin/enableIRWake.sh &
storage_scan
+start_myth