%PDF-
%PDF-
Mini Shell
Mini Shell
"""
This program is free software: you can redistribute it and/or modify it under
the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License,
or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>.
Copyright © 2019 Cloud Linux Software Inc.
This software is also available under ImunifyAV commercial license,
see <https://www.imunify360.com/legal/eula>
"""
from typing import Union, Optional
class CronJob(object):
__slots__ = "minute", "hour", "cmd"
def __init__(self, *,
minute: Union[int, str, None],
hour: Union[int, str, None],
cmd: Optional[str]):
self.minute = minute
self.hour = hour
self.cmd = cmd
def __str__(self):
return (
'# DO NOT EDIT. AUTOMATICALLY GENERATED BY IMUNIFY360.'
f'\n{self.minute} {self.hour} * * * root {self.cmd}\n'
)
@classmethod
def from_str(cls, data):
minute = hour = cmd = None
lines = [x for x in data.splitlines() if x[0] != '#']
if lines:
line_members = lines[0].split(' ')
minute = line_members[0]
hour = line_members[1]
cmd = ' '.join(line_members[6:])
return CronJob(minute=minute, hour=hour, cmd=cmd)
Zerion Mini Shell 1.0