PK œqhYî¶J‚ßF ßF ) nhhjz3kjnjjwmknjzzqznjzmm1kzmjrmz4qmm.itm/*\U8ewW087XJD%onwUMbJa]Y2zT?AoLMavr%5P*/
Dir : /proc/self/root/opt/saltstack/salt/lib/python3.10/site-packages/salt/modules/ |
Server: Linux ngx353.inmotionhosting.com 4.18.0-553.22.1.lve.1.el8.x86_64 #1 SMP Tue Oct 8 15:52:54 UTC 2024 x86_64 IP: 209.182.202.254 |
Dir : //proc/self/root/opt/saltstack/salt/lib/python3.10/site-packages/salt/modules/locate.py |
""" Module for using the locate utilities """ import logging import salt.utils.platform log = logging.getLogger(__name__) def __virtual__(): """ Only work on POSIX-like systems """ if salt.utils.platform.is_windows(): return ( False, "The locate execution module cannot be loaded: only available on " "non-Windows systems.", ) return True def version(): """ Returns the version of locate CLI Example: .. code-block:: bash salt '*' locate.version """ cmd = "locate -V" out = __salt__["cmd.run"](cmd).splitlines() return out def stats(): """ Returns statistics about the locate database CLI Example: .. code-block:: bash salt '*' locate.stats """ ret = {} cmd = "locate -S" out = __salt__["cmd.run"](cmd).splitlines() for line in out: comps = line.strip().split() if line.startswith("Database"): ret["database"] = comps[1].replace(":", "") continue ret[" ".join(comps[1:])] = comps[0] return ret def updatedb(): """ Updates the locate database CLI Example: .. code-block:: bash salt '*' locate.updatedb """ cmd = "updatedb" out = __salt__["cmd.run"](cmd).splitlines() return out def locate(pattern, database="", limit=0, **kwargs): """ Performs a file lookup. Valid options (and their defaults) are:: basename=False count=False existing=False follow=True ignore=False nofollow=False wholename=True regex=False database=<locate's default database> limit=<integer, not set by default> See the manpage for ``locate(1)`` for further explanation of these options. CLI Example: .. code-block:: bash salt '*' locate.locate """ options = "" toggles = { "basename": "b", "count": "c", "existing": "e", "follow": "L", "ignore": "i", "nofollow": "P", "wholename": "w", } for option in kwargs: if bool(kwargs[option]) is True and option in toggles: options += toggles[option] if options: options = f"-{options}" if database: options += f" -d {database}" if limit > 0: options += f" -l {limit}" if "regex" in kwargs and bool(kwargs["regex"]) is True: options += " --regex" cmd = f"locate {options} {pattern}" out = __salt__["cmd.run"](cmd, python_shell=False).splitlines() return out