%PDF- %PDF-
Direktori : /proc/2/cwd/opt/imunify360/venv/lib/python3.8/site-packages/defence360agent/utils/ |
Current File : //proc/2/cwd/opt/imunify360/venv/lib/python3.8/site-packages/defence360agent/utils/cronjob.py |
""" 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)