| 147 | |
| 148 | |
| 149 | class PGCli: |
| 150 | default_prompt = "\\u@\\h:\\d> " |
| 151 | max_len_prompt = 30 |
| 152 | |
| 153 | def set_default_pager(self, config): |
| 154 | configured_pager = config["main"].get("pager") |
| 155 | os_environ_pager = os.environ.get("PAGER") |
| 156 | |
| 157 | if configured_pager: |
| 158 | self.logger.info('Default pager found in config file: "%s"', configured_pager) |
| 159 | os.environ["PAGER"] = configured_pager |
| 160 | elif os_environ_pager: |
| 161 | self.logger.info( |
| 162 | 'Default pager found in PAGER environment variable: "%s"', |
| 163 | os_environ_pager, |
| 164 | ) |
| 165 | os.environ["PAGER"] = os_environ_pager |
| 166 | else: |
| 167 | self.logger.info("No default pager found in environment. Using os default pager") |
| 168 | |
| 169 | # Set default set of less recommended options, if they are not already set. |
| 170 | # They are ignored if pager is different than less. |
| 171 | if not os.environ.get("LESS"): |
| 172 | os.environ["LESS"] = "-SRXF" |
| 173 | |
| 174 | def __init__( |
| 175 | self, |
| 176 | force_passwd_prompt=False, |
| 177 | never_passwd_prompt=False, |
| 178 | pgexecute=None, |
| 179 | pgclirc_file=None, |
| 180 | row_limit=None, |
| 181 | application_name="pgcli", |
| 182 | single_connection=False, |
| 183 | less_chatty=None, |
| 184 | prompt=None, |
| 185 | prompt_dsn=None, |
| 186 | auto_vertical_output=False, |
| 187 | warn=None, |
| 188 | ssh_tunnel_url: str | None = None, |
| 189 | log_file: str | None = None, |
| 190 | ): |
| 191 | self.force_passwd_prompt = force_passwd_prompt |
| 192 | self.never_passwd_prompt = never_passwd_prompt |
| 193 | self.pgexecute = pgexecute |
| 194 | self.dsn_alias = None |
| 195 | self.watch_command = None |
| 196 | |
| 197 | # Load config. |
| 198 | c = self.config = get_config(pgclirc_file) |
| 199 | |
| 200 | # at this point, config should be written to pgclirc_file if it did not exist. Read it. |
| 201 | self.config_writer = load_config(get_config_filename(pgclirc_file)) |
| 202 | |
| 203 | # make sure to use self.config_writer, not self.config |
| 204 | NamedQueries.instance = NamedQueries.from_config(self.config_writer) |
| 205 | |
| 206 | self.logger = logging.getLogger(__name__) |
no outgoing calls