diff options
| author | crupest <crupest@outlook.com> | 2023-05-31 23:55:57 +0800 | 
|---|---|---|
| committer | crupest <crupest@outlook.com> | 2023-05-31 23:55:57 +0800 | 
| commit | 4cc25bea963c09a1eb0f951bed1eabc75d196446 (patch) | |
| tree | 2f5aa4fe9684a19463255b454162cc84d35ccc2a /tool | |
| parent | 4e6260b7d03a38be65203139631d5fda523e80af (diff) | |
| download | crupest-4cc25bea963c09a1eb0f951bed1eabc75d196446.tar.gz crupest-4cc25bea963c09a1eb0f951bed1eabc75d196446.tar.bz2 crupest-4cc25bea963c09a1eb0f951bed1eabc75d196446.zip  | |
Add v2ray.
Diffstat (limited to 'tool')
| -rwxr-xr-x | tool/aio.py | 3 | ||||
| -rw-r--r-- | tool/modules/config.py | 11 | ||||
| -rwxr-xr-x | tool/modules/nginx.py | 15 | ||||
| -rw-r--r-- | tool/modules/setup.py | 4 | 
4 files changed, 23 insertions, 10 deletions
diff --git a/tool/aio.py b/tool/aio.py index 648e8b4..970c389 100755 --- a/tool/aio.py +++ b/tool/aio.py @@ -239,8 +239,7 @@ def run():                  console.print(domain)          case "nginx": -            domain = check_domain_is_defined() -            nginx(domain, console) +            raise Exception("This command is deprecated.")          case "certbot":              domain = check_domain_is_defined() diff --git a/tool/modules/config.py b/tool/modules/config.py index 534ce30..40b20d1 100644 --- a/tool/modules/config.py +++ b/tool/modules/config.py @@ -1,10 +1,11 @@ -import pwd -import grp  import os  import typing +import uuid  from rich.prompt import Prompt  from .path import config_file_path +def generate_uuid(): +    return str(uuid.uuid4())  class ConfigVar:      def __init__(self, name: str, description: str, default_value_generator: typing.Callable[[], str] | str, /, default_value_for_ask=str | None): @@ -48,6 +49,12 @@ config_var_list: list = [                "github token for fetching todos", "Please input your github token for fetching todos"),      ConfigVar("CRUPEST_GITHUB_TODO_COUNT",                "github todo count", "Please input your github todo count", 10), +    ConfigVar("CRUPEST_GITHUB_TODO_COUNT", +              "github todo count", "Please input your github todo count", 10), +    ConfigVar("CRUPEST_V2RAY_TOKEN", +              "v2ray user id", generate_uuid), +    ConfigVar("CRUPEST_V2RAY_PATH", +              "v2ray path, which will be prefixed by _", generate_uuid),  ]  config_var_name_set = set([config_var.name for config_var in config_var_list]) diff --git a/tool/modules/nginx.py b/tool/modules/nginx.py index 4f77acd..db350a7 100755 --- a/tool/modules/nginx.py +++ b/tool/modules/nginx.py @@ -50,7 +50,7 @@ def list_domains(domain: str) -> list:      return [domain, *list_subdomains(domain)] -def generate_nginx_config(domain: str, dest: str) -> None: +def generate_nginx_config(domain: str, original_config, dest: str) -> None:      if not isdir(dest):          raise ValueError('dest must be a directory')      # copy ssl.conf and https-redirect.conf which need no variable substitution @@ -58,12 +58,19 @@ def generate_nginx_config(domain: str, dest: str) -> None:          src = join(nginx_template_dir, filename)          dst = join(dest, filename)          shutil.copyfile(src, dst) -    config = {"CRUPEST_DOMAIN": domain} +    config = { +        "CRUPEST_DOMAIN": domain, +        "CRUPEST_V2RAY_TOKEN": original_config["CRUPEST_V2RAY_TOKEN"], +        "CRUPEST_V2RAY_PATH": original_config["CRUPEST_V2RAY_PATH"] +    }      # generate ssl.conf      with open(join(dest, 'ssl.conf'), 'w') as f:          f.write(ssl_template.generate(config))      # generate root.conf      with open(join(dest, f'{domain}.conf'), 'w') as f: +        root_config = config.copy() +        root_config["CRUPEST_V2RAY_TOKEN"] = config["CRUPEST_V2RAY_TOKEN"] +        root_config["CRUPEST_V2RAY_PATH"] = config["CRUPEST_V2RAY_PATH"]          f.write(root_template.generate(config))      # generate nginx config for each site      sites: list = server["sites"] @@ -113,7 +120,7 @@ def restart_nginx(force=False) -> bool:      return True -def nginx(domain: str, /, console) -> None: +def nginx(domain: str, config, /, console) -> None:      bad_files = check_nginx_config_dir(nginx_config_dir, domain)      if len(bad_files) > 0:          console.print( @@ -133,7 +140,7 @@ def nginx(domain: str, /, console) -> None:          os.mkdir(nginx_config_dir)          console.print(              f"Nginx config directory created at [magenta]{nginx_config_dir}[/]", style="green") -    generate_nginx_config(domain, dest=nginx_config_dir) +    generate_nginx_config(domain, config, dest=nginx_config_dir)      console.print("Nginx config generated.", style="green")      if restart_nginx():          console.print('Nginx restarted.', style="green") diff --git a/tool/modules/setup.py b/tool/modules/setup.py index 0e802c4..4e91302 100644 --- a/tool/modules/setup.py +++ b/tool/modules/setup.py @@ -143,7 +143,7 @@ def template_generate(console):                          "Great! Check the config file and see you next time!", style="green")                      to_gen = False -        domain = config["CRUPEST_DOMAIN"] +        domain = get_domain()          if to_gen:              console.print( @@ -186,7 +186,7 @@ def template_generate(console):                      to_gen_nginx_conf = Confirm.ask("[yellow]It seems you have already generated nginx config. Do you want to overwrite it?[/]",                                                      default=False, console=console)              if to_gen_nginx_conf: -                nginx(domain, console) +                nginx(domain, config, console)      data_dir_check(domain, console)  | 
