Source code for rezplugins.shell.zsh

# SPDX-License-Identifier: Apache-2.0
# Copyright Contributors to the Rez Project


"""
Zsh shell
"""
import os
import os.path
from rez.utils.platform_ import platform_
from rezplugins.shell.sh import SH
from rez import module_root_path


[docs]class Zsh(SH): rcfile_arg = '--rcs' norc_arg = '--no-rcs'
[docs] @classmethod def name(cls): return 'zsh'
[docs] @classmethod def startup_capabilities(cls, rcfile=False, norc=False, stdin=False, command=False): if norc: cls._overruled_option('rcfile', 'norc', rcfile) rcfile = False if command is not None: cls._overruled_option('stdin', 'command', stdin) cls._overruled_option('rcfile', 'command', rcfile) stdin = False rcfile = False if stdin: cls._overruled_option('rcfile', 'stdin', rcfile) rcfile = False return (rcfile, norc, stdin, command)
[docs] @classmethod def get_startup_sequence(cls, rcfile, norc, stdin, command): rcfile, norc, stdin, command = \ cls.startup_capabilities(rcfile, norc, stdin, command) files = [] envvar = None do_rcfile = False if rcfile or norc: do_rcfile = True if rcfile and os.path.exists(os.path.expanduser(rcfile)): files.append(rcfile) else: for file_ in ( "~/.zprofile", "~/.zlogin", "~/.zshrc", "~/.zshenv"): if os.path.exists(os.path.expanduser(file_)): files.append(file_) bind_files = [ "~/.zprofile", "~/.zshrc" ] return dict( stdin=stdin, command=command, do_rcfile=do_rcfile, envvar=envvar, files=files, bind_files=bind_files, source_bind_files=True )
def _bind_interactive_rez(self): super(Zsh, self)._bind_interactive_rez() completion = os.path.join(module_root_path, "completion", "complete.zsh") self.source(completion)
[docs]def register_plugin(): if platform_.name != "windows": return Zsh