%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /opt/imunify360/venv/lib64/python3.8/site-packages/defence360agent/utils/
Upload File :
Create Path :
Current File : //opt/imunify360/venv/lib64/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)

Zerion Mini Shell 1.0