mirror of
https://codeberg.org/privacy1st/exec-notify
synced 2024-12-22 23:16:04 +01:00
41 lines
905 B
Python
Executable File
41 lines
905 B
Python
Executable File
#!/usr/bin/env python3
|
|
from sys import argv
|
|
import socket
|
|
from typing import List
|
|
|
|
from execNotifyDir import exec, config, mail
|
|
|
|
|
|
def main():
|
|
if len(argv) >= 2:
|
|
if not executeCommand(argv[1:]):
|
|
exit(1)
|
|
exit(0)
|
|
|
|
|
|
def executeCommand(command: List) -> bool:
|
|
keys = ['command', 'status', 'stderr', 'stdout']
|
|
code, stdout, stderr = exec.execute(command)
|
|
values = [str(command), str(code), stderr, stdout]
|
|
|
|
BODY = ''
|
|
for key, value in zip(keys, values):
|
|
BODY += '=== {} ===\n{}\n'.format(key, value)
|
|
print(BODY)
|
|
|
|
if code != 0:
|
|
hostname = socket.gethostname()
|
|
|
|
SUBJECT = '{} | {}'.format(hostname, str(command))
|
|
mail.sendMailOrWriteToFile(SUBJECT=SUBJECT, BODY=BODY)
|
|
|
|
return False
|
|
else:
|
|
return True
|
|
|
|
|
|
if __name__ == '__main__':
|
|
main()
|
|
if mail.prevMailNotSent():
|
|
mail.informAboutOldMail()
|