Source code for pysyslimit.api.permission.chmod

import os

from ..base import _do_recursion
from ...models import *


[docs]def chmod(path: str, mod, recursive: bool = False): """ Overview: Set the permission of file. Arguments: - path (:obj:`str`): Path of the file going to set permission. - mod (:obj:`object`): Permission information object. - recursive (:obj:`bool`): Recursively set the subdirectories or not, \ default is ``False`` which means only apply to the current file. Examples:: >>> from pysyslimit import chmod >>> chmod('my_file', '777') # chmod 777 my_file >>> chmod('my_dir', '777', recursive=True) # chmod -R 777 my_dir """ def _single_chmod(path_): return os.chmod(path_, int(FilePermission.loads(mod))) return _do_recursion(path, _single_chmod, recursive)
[docs]def chmod_add(path, mod, recursive: bool = False): """ Overview: Append the permission of file. Arguments: - path (:obj:`str`): Path of the file going to append permission. - mod (:obj:`object`): Permission information object. - recursive (:obj:`bool`): Recursively set the subdirectories or not, \ default is ``False`` which means only apply to the current file. Examples:: >>> from pysyslimit import chmod_add >>> chmod_add('my_file', '600') # chmod +600 my_file >>> chmod_add('my_dur', '600', recursive=True) # chmod -R +600 my_dir """ def _single_chmod_add(path_): _origin_mode = FilePermission.load_from_file(path_) _add_mode = FilePermission.loads(mod) return chmod(path_, _origin_mode + _add_mode) return _do_recursion(path, _single_chmod_add, recursive)
[docs]def chmod_del(path, mod, recursive: bool = False): """ Overview: Remove the permission of file. Arguments: - path (:obj:`str`): Path of the file going to remove permission. - mod (:obj:`object`): Permission information object. - recursive (:obj:`bool`): Recursively set the subdirectories or not, \ default is ``False`` which means only apply to the current file. Examples:: >>> from pysyslimit import chmod_del >>> chmod_del('my_file', '600') # chmod -600 my_file >>> chmod_del('my_dur', '600', recursive=True) # chmod -R -600 my_dir """ def _single_chmod_del(path_): _origin_mode = FilePermission.load_from_file(path_) _del_mode = FilePermission.loads(mod) return chmod(path_, _origin_mode - _del_mode) return _do_recursion(path, _single_chmod_del, recursive)