Example #1
0
def show(vpn_opts: VpnOpts,
         version: str,
         sha: str,
         show_brand=False,
         show_license=False,
         is_json=False):
    if show_brand and not is_json:
        brand = FileHelper.read_file_by_line(
            vpn_opts.get_resource('banner.txt'))
        brand and print(brand)

    ver = {
        "vpn_version": vpn_opts.get_vpn_version(Versions.VPN_VERSION),
        "cli_version": version,
        "hash_version": sha
    }
    if is_json:
        print(JsonHelper.to_json(ver))
    else:
        logger.info(f'VPN version : {ver.get("vpn_version")}')
        logger.info(f'CLI version : {ver.get("cli_version")}')
        logger.info(f'Hash version: {ver.get("hash_version")}')
        logger.sep(logger.INFO, 58)
        if show_license:
            print(
                FileHelper.read_file_by_line(
                    vpn_opts.get_resource('LICENSE_BUNDLE.md'),
                    fallback_if_not_exists=''))
Example #2
0
 def adapt_dnsmasq(self, origin_resolv_conf: Path,
                   vpn_service: str) -> Optional[Path]:
     content = FileHelper.read_file_by_line(self.config.main_cfg)
     resolv = TextHelper.awk(next(
         iter(TextHelper.grep(content, r'dnsmasq_resolv=.+')), None),
                             sep='=',
                             pos=1)
     return Path(resolv or self.config.runtime_resolv)
Example #3
0
 def _check_pid(pid_file: str, log_lvl=logger.TRACE) -> int:
     try:
         logger.log(log_lvl, f'Read PID file {pid_file}')
         pid = FileHelper.read_file_by_line(pid_file)
         pid = int(pid)
         if pid and pid > 0 and SystemHelper.is_pid_exists(pid):
             return pid
     except Exception as _:
         FileHelper.rm(pid_file)
     return 0
Example #4
0
 def is_enable_connman_dhcp(self) -> bool:
     yes_ = ('true', 't', 'yes', '1')
     return self.is_connman() and FileHelper.read_file_by_line(
         self.connman_dhcp, fallback_if_not_exists='0').lower() in yes_
Example #5
0
 def read_env():
     content = FileHelper.read_file_by_line(VpnDirectory.PROFILE_D_ENV)
     env = TextHelper.awk(next(iter(TextHelper.grep(content, rf'{AppEnv.VPN_HOME_ENV}=.+', flags=re.VERBOSE)), None),
                          sep='=', pos=1)
     return None if not env else env.replace('"', "")
Example #6
0
 def get_vpn_version(self, fallback='unknown'):
     return FileHelper.read_file_by_line(self.vpn_dir.joinpath(self.CORE_VERSION_FILE)) or fallback