mirror of
https://codeberg.org/privacy1st/exec-notify
synced 2024-12-22 23:16:04 +01:00
add notify
This commit is contained in:
parent
1197cf1f87
commit
d32db6c1f0
3
Makefile
3
Makefile
@ -7,15 +7,18 @@ clean: remove
|
||||
install: permissions
|
||||
|
||||
permissions: copy
|
||||
chmod 755 /usr/local/bin/notify
|
||||
chmod 755 /usr/local/bin/execNotify
|
||||
find /usr/local/bin/execNotifyDir \( -type d -exec chmod 755 {} + \) -o \( -type f -exec chmod 644 {} + \)
|
||||
chown root:root /usr/local/bin/execNotify
|
||||
chown -R root:root /usr/local/bin/execNotifyDir
|
||||
|
||||
copy:
|
||||
cp notify /usr/local/bin/notify
|
||||
cp execNotify /usr/local/bin/execNotify
|
||||
cp -r execNotifyDir/ /usr/local/bin/
|
||||
|
||||
remove:
|
||||
rm /usr/local/bin/notify
|
||||
rm /usr/local/bin/execNotify
|
||||
rm -r /usr/local/bin/execNotifyDir
|
||||
|
31
execNotify
31
execNotify
@ -7,19 +7,9 @@ from execNotifyDir import exec, config, mail
|
||||
|
||||
|
||||
def main():
|
||||
prevMailError = checkPrevError()
|
||||
|
||||
if len(argv) >= 2:
|
||||
success = executeCommand(argv[1:])
|
||||
else:
|
||||
success = True
|
||||
|
||||
if prevMailError:
|
||||
tryToInform()
|
||||
|
||||
if not success:
|
||||
if not executeCommand(argv[1:]):
|
||||
exit(1)
|
||||
else:
|
||||
exit(0)
|
||||
|
||||
|
||||
@ -44,22 +34,7 @@ def executeCommand(command: List) -> bool:
|
||||
return True
|
||||
|
||||
|
||||
def checkPrevError():
|
||||
return config.getErrorFile().exists()
|
||||
|
||||
|
||||
def tryToInform():
|
||||
"""
|
||||
Try to inform user via mail about previous error(s) that could not be sent to him before.
|
||||
Maybe this time sending of an email works ;)
|
||||
"""
|
||||
|
||||
SUBJECT = '{} | Some mails not sent!'.format(socket.gethostname())
|
||||
BODY = 'Please check the file {} for mails which could previously not be sent to you!\n' \
|
||||
'Note: You may delete the file after reading it ;)'.format(
|
||||
config.getErrorFile())
|
||||
mail.sendMail(SUBJECT=SUBJECT, BODY=BODY)
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
main()
|
||||
if mail.prevMailNotSent():
|
||||
mail.informAboutOldMail()
|
||||
|
@ -1,6 +1,7 @@
|
||||
import sys
|
||||
import datetime
|
||||
import smtplib, ssl
|
||||
import socket
|
||||
|
||||
from email.mime.text import MIMEText
|
||||
from email.mime.multipart import MIMEMultipart
|
||||
@ -66,3 +67,20 @@ def saveMail(SUBJECT: str, BODY: str):
|
||||
except Exception as e:
|
||||
print('Error: Could not write to file!', file=sys.stderr)
|
||||
print(e, file=sys.stderr)
|
||||
|
||||
|
||||
def prevMailNotSent():
|
||||
return config.getErrorFile().exists()
|
||||
|
||||
|
||||
def informAboutOldMail():
|
||||
"""
|
||||
Try to inform user via mail about previous error(s) that could not be sent to him before.
|
||||
Maybe this time sending of an email works ;)
|
||||
"""
|
||||
|
||||
SUBJECT = '{} | Some mails not sent!'.format(socket.gethostname())
|
||||
BODY = 'Please check the file {} for mails which could previously not be sent to you!\n' \
|
||||
'Note: You may delete the file after reading it ;)' \
|
||||
.format(config.getErrorFile())
|
||||
sendMail(SUBJECT=SUBJECT, BODY=BODY)
|
||||
|
36
notify
Executable file
36
notify
Executable file
@ -0,0 +1,36 @@
|
||||
#!/usr/bin/env python3
|
||||
from sys import argv, stderr, stdin
|
||||
import socket
|
||||
from execNotifyDir import exec, config, mail
|
||||
|
||||
|
||||
def main():
|
||||
"""
|
||||
echo <body> | ./notify
|
||||
echo <body> | ./notify <subject>
|
||||
./notify <subject> <body_1> <body_2> ... <body_n>
|
||||
"""
|
||||
|
||||
BODY = None
|
||||
subj = None
|
||||
hostname = socket.gethostname()
|
||||
|
||||
if len(argv) >= 2:
|
||||
subj = argv[1]
|
||||
if len(argv) >= 3:
|
||||
BODY = str(argv[2:])
|
||||
if subj is None:
|
||||
subj = "notify"
|
||||
if BODY is None:
|
||||
BODY = "=== stdin ===\n" + stdin.read()
|
||||
|
||||
SUBJECT = "{} | {}".format(hostname, subj)
|
||||
print(BODY)
|
||||
|
||||
mail.sendMailOrWriteToFile(SUBJECT=SUBJECT, BODY=BODY)
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
main()
|
||||
if mail.prevMailNotSent():
|
||||
mail.informAboutOldMail()
|
Loading…
Reference in New Issue
Block a user