zrb 0.26.2__py3-none-any.whl → 0.28.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (31) hide show
  1. zrb/__init__.py +0 -3
  2. zrb/action/runner.py +0 -2
  3. zrb/builtin/devtool/install/zsh/install.sh +1 -1
  4. zrb/builtin/project/add/fastapp/app/template/_automate/snake_zrb_app_name/container/microservices/start.py +7 -2
  5. zrb/builtin/project/add/fastapp/app/template/_automate/snake_zrb_app_name/container/monolith/start.py +7 -2
  6. zrb/builtin/project/add/fastapp/app/template/_automate/snake_zrb_app_name/container/remove.py +8 -2
  7. zrb/builtin/project/add/fastapp/app/template/_automate/snake_zrb_app_name/container/stop.py +8 -2
  8. zrb/builtin/project/add/fastapp/app/template/_automate/snake_zrb_app_name/container/support/start.py +15 -3
  9. zrb/config/config.py +0 -9
  10. zrb/helper/asyncio_task.py +15 -5
  11. zrb/task/base_task/base_task.py +39 -9
  12. zrb/task/cmd_task.py +9 -10
  13. zrb/task/docker_compose_start_task.py +30 -27
  14. zrb/task/docker_compose_task.py +64 -33
  15. zrb/task/looper.py +1 -1
  16. zrb/task/remote_cmd_task.py +55 -18
  17. zrb/task/rsync_task.py +57 -23
  18. {zrb-0.26.2.dist-info → zrb-0.28.0.dist-info}/METADATA +2 -2
  19. {zrb-0.26.2.dist-info → zrb-0.28.0.dist-info}/RECORD +22 -31
  20. zrb/builtin/project/add/fastapp/app/template/_automate/snake_zrb_app_name/container/_helper.py +0 -8
  21. zrb/builtin/project/add/fastapp/app/template/_automate/snake_zrb_app_name/container/microservices/_helper.py +0 -24
  22. zrb/builtin/project/add/fastapp/app/template/_automate/snake_zrb_app_name/container/monolith/_helper.py +0 -22
  23. zrb/builtin/project/add/fastapp/app/template/_automate/snake_zrb_app_name/container/support/_helper.py +0 -30
  24. zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/.generator-version +0 -1
  25. zrb/shell-scripts/ensure-podman-is-installed.sh +0 -55
  26. zrb/shell-scripts/rsync-util.sh +0 -12
  27. zrb/shell-scripts/ssh-util.sh +0 -12
  28. zrb/task/base_remote_cmd_task.py +0 -354
  29. {zrb-0.26.2.dist-info → zrb-0.28.0.dist-info}/LICENSE +0 -0
  30. {zrb-0.26.2.dist-info → zrb-0.28.0.dist-info}/WHEEL +0 -0
  31. {zrb-0.26.2.dist-info → zrb-0.28.0.dist-info}/entry_points.txt +0 -0
@@ -6,6 +6,7 @@ from typing import Any, Optional, Union
6
6
  from zrb.helper.accessories.color import colored
7
7
  from zrb.helper.log import logger
8
8
  from zrb.helper.typecheck import typechecked
9
+ from zrb.helper.typing import JinjaTemplate
9
10
  from zrb.task.any_task import AnyTask
10
11
  from zrb.task.any_task_event_handler import (
11
12
  OnFailed,
@@ -16,9 +17,8 @@ from zrb.task.any_task_event_handler import (
16
17
  OnTriggered,
17
18
  OnWaiting,
18
19
  )
19
- from zrb.task.base_remote_cmd_task import BaseRemoteCmdTask, RemoteConfig
20
20
  from zrb.task.cmd_task import CmdTask, CmdVal
21
- from zrb.task_env.env import Env
21
+ from zrb.task_env.env import Env, PrivateEnv
22
22
  from zrb.task_env.env_file import EnvFile
23
23
  from zrb.task_group.group import Group
24
24
  from zrb.task_input.any_input import AnyInput
@@ -27,8 +27,6 @@ logger.debug(colored("Loading zrb.task.remote_cmd_task", attrs=["dark"]))
27
27
 
28
28
  _CURRENT_DIR = os.path.dirname(__file__)
29
29
  _SHELL_SCRIPT_DIR = os.path.join(_CURRENT_DIR, "..", "shell-scripts")
30
- with open(os.path.join(_SHELL_SCRIPT_DIR, "ssh-util.sh")) as file:
31
- _SSH_UTIL_SCRIPT = file.read()
32
30
 
33
31
  ensure_ssh_is_installed = CmdTask(
34
32
  name="ensure-ssh-is-installed",
@@ -37,15 +35,17 @@ ensure_ssh_is_installed = CmdTask(
37
35
  os.path.join(_SHELL_SCRIPT_DIR, "ensure-ssh-is-installed.sh"),
38
36
  ],
39
37
  preexec_fn=None,
38
+ should_print_cmd_result=False,
39
+ should_show_cmd=False,
40
+ should_show_working_directory=False,
40
41
  )
41
42
 
42
43
 
43
44
  @typechecked
44
- class RemoteCmdTask(BaseRemoteCmdTask):
45
+ class RemoteCmdTask(CmdTask):
45
46
  def __init__(
46
47
  self,
47
48
  name: str,
48
- remote_configs: Iterable[RemoteConfig],
49
49
  group: Optional[Group] = None,
50
50
  inputs: Iterable[AnyInput] = [],
51
51
  envs: Iterable[Env] = [],
@@ -54,9 +54,15 @@ class RemoteCmdTask(BaseRemoteCmdTask):
54
54
  color: Optional[str] = None,
55
55
  description: str = "",
56
56
  executable: Optional[str] = None,
57
+ remote_host: JinjaTemplate = "localhost",
58
+ remote_port: Union[JinjaTemplate, int] = 22,
59
+ remote_user: JinjaTemplate = "root",
60
+ remote_password: JinjaTemplate = "",
61
+ remote_ssh_key: JinjaTemplate = "",
57
62
  cmd: CmdVal = "",
58
63
  cmd_path: CmdVal = "",
59
64
  cwd: Optional[Union[str, pathlib.Path]] = None,
65
+ should_render_cwd: bool = True,
60
66
  upstreams: Iterable[AnyTask] = [],
61
67
  fallbacks: Iterable[AnyTask] = [],
62
68
  on_triggered: Optional[OnTriggered] = None,
@@ -74,31 +80,26 @@ class RemoteCmdTask(BaseRemoteCmdTask):
74
80
  max_error_line: int = 1000,
75
81
  preexec_fn: Optional[Callable[[], Any]] = os.setsid,
76
82
  should_execute: Union[bool, str, Callable[..., bool]] = True,
83
+ return_upstream_result: bool = False,
84
+ should_print_cmd_result: bool = True,
85
+ should_show_cmd: bool = True,
86
+ should_show_working_directory: bool = True,
77
87
  ):
78
- pre_cmd = "\n".join(
79
- [
80
- _SSH_UTIL_SCRIPT,
81
- "_SCRIPT=\"$(cat <<'ENDSCRIPT'",
82
- ]
83
- )
84
- post_cmd = "\n".join(["ENDSCRIPT", ')"', 'auth_ssh "$_SCRIPT"'])
85
- BaseRemoteCmdTask.__init__(
88
+ CmdTask.__init__(
86
89
  self,
87
90
  name=name,
88
- remote_configs=remote_configs,
89
91
  group=group,
90
92
  inputs=inputs,
91
- envs=envs,
93
+ envs=envs + [PrivateEnv(name="_ZRB_SSH_PASSWORD", default=remote_password)],
92
94
  env_files=env_files,
93
95
  icon=icon,
94
96
  color=color,
95
97
  description=description,
96
98
  executable=executable,
97
- pre_cmd=pre_cmd,
98
99
  cmd=cmd,
99
100
  cmd_path=cmd_path,
100
- post_cmd=post_cmd,
101
101
  cwd=cwd,
102
+ should_render_cwd=should_render_cwd,
102
103
  upstreams=[ensure_ssh_is_installed] + upstreams,
103
104
  fallbacks=fallbacks,
104
105
  on_triggered=on_triggered,
@@ -116,4 +117,40 @@ class RemoteCmdTask(BaseRemoteCmdTask):
116
117
  max_error_line=max_error_line,
117
118
  preexec_fn=preexec_fn,
118
119
  should_execute=should_execute,
120
+ return_upstream_result=return_upstream_result,
121
+ should_print_cmd_result=should_print_cmd_result,
122
+ should_show_cmd=should_show_cmd,
123
+ should_show_working_directory=should_show_working_directory,
124
+ )
125
+ self._remote_host = remote_host
126
+ self._remote_port = remote_port
127
+ self._remote_user = remote_user
128
+ self._remote_password = remote_password
129
+ self._remote_ssh_key = remote_ssh_key
130
+
131
+ def get_cmd_script(self, *args: Any, **kwargs: Any) -> str:
132
+ cmd_script = self._create_cmd_script(self._cmd_path, self._cmd, *args, **kwargs)
133
+ cmd_script = "\n".join(
134
+ [
135
+ "_SCRIPT=$(cat << 'ENDSCRIPT'",
136
+ cmd_script,
137
+ "ENDSCRIPT",
138
+ ")",
139
+ ]
119
140
  )
141
+ ssh_command = self._get_ssh_command()
142
+ return "\n".join([cmd_script, ssh_command])
143
+
144
+ def _get_ssh_command(self) -> str:
145
+ host = self.render_str(self._remote_host)
146
+ port = self.render_str(self._remote_port)
147
+ user = self.render_str(self._remote_user)
148
+ password = self.render_str(self._remote_password)
149
+ key = self.render_str(self._remote_ssh_key)
150
+ if key != "" and password != "":
151
+ return f'sshpass -p "$_ZRB_SSH_PASSWORD" ssh -t -p "{port}" -i "{key}" "{user}@{host}" "$_SCRIPT"' # noqa
152
+ if key != "":
153
+ return f'ssh -t -p "{port}" -i "{key}" "{user}@{host}" "$_SCRIPT"'
154
+ if password != "":
155
+ return f'sshpass -p "$_ZRB_SSH_PASSWORD" ssh -t -p "{port}" "{user}@{host}" "$_SCRIPT"' # noqa
156
+ return f'ssh -t -p "{port}" "{user}@{host}" "$_SCRIPT"'
zrb/task/rsync_task.py CHANGED
@@ -17,9 +17,8 @@ from zrb.task.any_task_event_handler import (
17
17
  OnTriggered,
18
18
  OnWaiting,
19
19
  )
20
- from zrb.task.base_remote_cmd_task import BaseRemoteCmdTask, RemoteConfig
21
20
  from zrb.task.cmd_task import CmdTask
22
- from zrb.task_env.env import Env
21
+ from zrb.task_env.env import Env, PrivateEnv
23
22
  from zrb.task_env.env_file import EnvFile
24
23
  from zrb.task_group.group import Group
25
24
  from zrb.task_input.any_input import AnyInput
@@ -28,8 +27,6 @@ logger.debug(colored("Loading zrb.task.rsync_task", attrs=["dark"]))
28
27
 
29
28
  _CURRENT_DIR = os.path.dirname(__file__)
30
29
  _SHELL_SCRIPT_DIR = os.path.join(_CURRENT_DIR, "..", "shell-scripts")
31
- with open(os.path.join(_SHELL_SCRIPT_DIR, "rsync-util.sh")) as file:
32
- _RSYNC_UTIL_SCRIPT = file.read()
33
30
 
34
31
  ensure_rsync_is_installed = CmdTask(
35
32
  name="ensure-ssh-is-installed",
@@ -39,19 +36,17 @@ ensure_rsync_is_installed = CmdTask(
39
36
  os.path.join(_SHELL_SCRIPT_DIR, "ensure-rsync-is-installed.sh"),
40
37
  ],
41
38
  preexec_fn=None,
39
+ should_print_cmd_result=False,
40
+ should_show_cmd=False,
41
+ should_show_working_directory=False,
42
42
  )
43
43
 
44
44
 
45
45
  @typechecked
46
- class RsyncTask(BaseRemoteCmdTask):
46
+ class RsyncTask(CmdTask):
47
47
  def __init__(
48
48
  self,
49
49
  name: str,
50
- remote_configs: Iterable[RemoteConfig],
51
- src: JinjaTemplate,
52
- dst: JinjaTemplate,
53
- src_is_remote: bool = False,
54
- dst_is_remote: bool = True,
55
50
  group: Optional[Group] = None,
56
51
  inputs: Iterable[AnyInput] = [],
57
52
  envs: Iterable[Env] = [],
@@ -60,7 +55,17 @@ class RsyncTask(BaseRemoteCmdTask):
60
55
  color: Optional[str] = None,
61
56
  description: str = "",
62
57
  executable: Optional[str] = None,
63
- cwd: Optional[Union[str, pathlib.Path]] = None,
58
+ remote_host: JinjaTemplate = "localhost",
59
+ remote_port: Union[JinjaTemplate, int] = 22,
60
+ remote_user: JinjaTemplate = "root",
61
+ remote_password: JinjaTemplate = "",
62
+ remote_ssh_key: JinjaTemplate = "",
63
+ src_path: JinjaTemplate = ".",
64
+ src_is_remote: bool = False,
65
+ dst_path: JinjaTemplate = ".",
66
+ dst_is_remote: bool = True,
67
+ cwd: Optional[Union[JinjaTemplate, pathlib.Path]] = None,
68
+ should_render_cwd: bool = True,
64
69
  upstreams: Iterable[AnyTask] = [],
65
70
  fallbacks: Iterable[AnyTask] = [],
66
71
  on_triggered: Optional[OnTriggered] = None,
@@ -78,25 +83,24 @@ class RsyncTask(BaseRemoteCmdTask):
78
83
  max_error_line: int = 1000,
79
84
  preexec_fn: Optional[Callable[[], Any]] = os.setsid,
80
85
  should_execute: Union[bool, str, Callable[..., bool]] = True,
86
+ return_upstream_result: bool = False,
87
+ should_print_cmd_result: bool = True,
88
+ should_show_cmd: bool = True,
89
+ should_show_working_directory: bool = True,
81
90
  ):
82
- parsed_src = self._get_parsed_path(src_is_remote, src)
83
- parsed_dst = self._get_parsed_path(dst_is_remote, dst)
84
- cmd = f'auth_rsync "{parsed_src}" "{parsed_dst}"'
85
- BaseRemoteCmdTask.__init__(
91
+ CmdTask.__init__(
86
92
  self,
87
93
  name=name,
88
- remote_configs=remote_configs,
89
94
  group=group,
90
95
  inputs=inputs,
91
- envs=envs,
96
+ envs=envs + [PrivateEnv(name="_ZRB_SSH_PASSWORD", default=remote_password)],
92
97
  env_files=env_files,
93
98
  icon=icon,
94
99
  color=color,
95
100
  description=description,
96
101
  executable=executable,
97
- pre_cmd=_RSYNC_UTIL_SCRIPT,
98
- cmd=cmd,
99
102
  cwd=cwd,
103
+ should_render_cwd=should_render_cwd,
100
104
  upstreams=[ensure_rsync_is_installed] + upstreams,
101
105
  fallbacks=fallbacks,
102
106
  on_triggered=on_triggered,
@@ -114,9 +118,39 @@ class RsyncTask(BaseRemoteCmdTask):
114
118
  max_error_line=max_error_line,
115
119
  preexec_fn=preexec_fn,
116
120
  should_execute=should_execute,
121
+ return_upstream_result=return_upstream_result,
122
+ should_print_cmd_result=should_print_cmd_result,
123
+ should_show_cmd=should_show_cmd,
124
+ should_show_working_directory=should_show_working_directory,
117
125
  )
126
+ self._remote_host = remote_host
127
+ self._remote_port = remote_port
128
+ self._remote_user = remote_user
129
+ self._remote_password = remote_password
130
+ self._remote_ssh_key = remote_ssh_key
131
+ self._src_path = src_path
132
+ self._src_is_remote = src_is_remote
133
+ self._dst_path = dst_path
134
+ self._dst_is_remote = dst_is_remote
135
+
136
+ def get_cmd_script(self, *args: Any, **kwargs: Any) -> str:
137
+ port = self.render_str(self._remote_port)
138
+ password = self.render_str(self._remote_password)
139
+ key = self.render_str(self._remote_ssh_key)
140
+ src = self._get_path(self._src_path, self._src_is_remote)
141
+ dst = self._get_path(self._dst_path, self._dst_is_remote)
142
+ if key != "" and password != "":
143
+ return f'sshpass -p "$_ZRB_SSH_PASSWORD" rsync --mkpath -avz -e "ssh -i {key} -p {port}" {src} {dst}' # noqa
144
+ if key != "":
145
+ return f'rsync --mkpath -avz -e "ssh -i {key} -p {port}" {src} {dst}'
146
+ if password != "":
147
+ return f'sshpass -p "$_ZRB_SSH_PASSWORD" rsync --mkpath -avz -e "ssh -p {port}" {src} {dst}' # noqa
148
+ return f'rsync --mkpath -avz -e "ssh -p {port}" {src} {dst}'
118
149
 
119
- def _get_parsed_path(self, is_remote: bool, path: str) -> str:
120
- if not is_remote:
121
- return path
122
- return "${_CONFIG_USER}@${_CONFIG_HOST}:" + path
150
+ def _get_path(self, resource_path: str, is_remote: bool) -> str:
151
+ rendered_path = self.render_str(resource_path)
152
+ if is_remote:
153
+ host = self.render_str(self._remote_host)
154
+ user = self.render_str(self._remote_user)
155
+ return f"{user}@{host}:{rendered_path}"
156
+ return rendered_path
@@ -1,10 +1,10 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: zrb
3
- Version: 0.26.2
3
+ Version: 0.28.0
4
4
  Summary: A Framework to Enhance Your Workflow
5
5
  Home-page: https://github.com/state-alchemists/zrb
6
6
  License: AGPL-3.0-or-later
7
- Keywords: Automation,Task Runner,Code Generator,Low Code
7
+ Keywords: Automation,Task Runner,Code Generator,Monorepo,Low Code
8
8
  Author: Go Frendi Gunawan
9
9
  Author-email: gofrendiasgard@gmail.com
10
10
  Requires-Python: >=3.10.0,<4.0.0
@@ -1,7 +1,7 @@
1
- zrb/__init__.py,sha256=vmWT2ODW6tlhL3hyqOjMT_ezG2fafIK1gZ6G6IBYEgM,2994
1
+ zrb/__init__.py,sha256=dQs1S6z3XbG1BeQ62YYxc6cUs5ejw9T9ajkPgNVEs34,2875
2
2
  zrb/__main__.py,sha256=-_k0XOahDF-06n41Uly-oUMkZ8XDSxO-WUUImWz6GiA,171
3
3
  zrb/action/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
4
- zrb/action/runner.py,sha256=aB46inPOs7CDckfIsS_mlgQ92_bfKltcnb77PjW6Tfw,5179
4
+ zrb/action/runner.py,sha256=pSQMtJKP7xb0IZ1X5iGPX0y4ZA8COO7gGQGfjlVKKtc,5140
5
5
  zrb/advertisement.py,sha256=E-8Dv0oPhw0j-bKEc_IsWV9NPUIs24r1Jgp0p0exAMU,664
6
6
  zrb/builtin/__init__.py,sha256=Nw3gZS1S-HKt_LTQuhffZT4NcZAdelJabCSFdkm6E8g,3407
7
7
  zrb/builtin/_helper/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -59,7 +59,7 @@ zrb/builtin/devtool/install/terraform/terraform.py,sha256=jBtBFoSEh6jrDV2_mUOqty
59
59
  zrb/builtin/devtool/install/tmux/install.sh,sha256=RsmLzKVzY9O7wBNMc-xE7S1sH0aJDsCiVgEXsRXqQ8w,1229
60
60
  zrb/builtin/devtool/install/tmux/resource/config.sh,sha256=wQCb4Q-mNkxIPOcvpN84X9RUWkGY16u3Vd-pOhVidgg,416
61
61
  zrb/builtin/devtool/install/tmux/tmux.py,sha256=Qvv9mSZhzBtoPRL5zs49G2GdJpY674s8Bt4nFWbIF-o,1322
62
- zrb/builtin/devtool/install/zsh/install.sh,sha256=wHOLrsEKdqtJWoJbfixxJVsVoTGH7gitKIepgDcZMZ0,1720
62
+ zrb/builtin/devtool/install/zsh/install.sh,sha256=J2GdFuTRo8s33LcFmjKMYpCZ_wZB4iK0aEeL7XtcYyE,1719
63
63
  zrb/builtin/devtool/install/zsh/resource/config.sh,sha256=2ZEmmiu5KS-FSMlj48IDPh5dhx5fnbzri86CtzI5Np0,5068
64
64
  zrb/builtin/devtool/install/zsh/zsh.py,sha256=JJMyNSDt0uMTJppYRT2bWy446D8ArQ8ZRPZLV117s7g,1325
65
65
  zrb/builtin/docker/__init__.py,sha256=H6mkl7hojJYiHArn2Q1ppw9yZC8TxTRnrYajRJcR77Y,142
@@ -226,23 +226,19 @@ zrb/builtin/project/add/fastapp/app/template/_automate/snake_zrb_app_name/config
226
226
  zrb/builtin/project/add/fastapp/app/template/_automate/snake_zrb_app_name/container/__init__.py,sha256=UllmGaHqIT4JrsyVN6kQAcSVA32sUdYpBpOQpxmLQ_M,988
227
227
  zrb/builtin/project/add/fastapp/app/template/_automate/snake_zrb_app_name/container/_env.py,sha256=2ysgQ6yJWb6h3u0tMvNXFgXwbUEE7CJX6k_8VxOOnNg,333
228
228
  zrb/builtin/project/add/fastapp/app/template/_automate/snake_zrb_app_name/container/_group.py,sha256=WbQq0AprHwudJPP38VpDB0cTnQP1HCZK_xVJY8_D1n0,240
229
- zrb/builtin/project/add/fastapp/app/template/_automate/snake_zrb_app_name/container/_helper.py,sha256=uXHHTi3qjmgPd-hBsXdbCjyXHVxl84nZQao1eaQb5xk,280
230
229
  zrb/builtin/project/add/fastapp/app/template/_automate/snake_zrb_app_name/container/_input.py,sha256=uBXfLqOQxiVn8UGfGhgTbUV_1Se6nNVQZKxF9mpTW6k,246
231
230
  zrb/builtin/project/add/fastapp/app/template/_automate/snake_zrb_app_name/container/_service_config.py,sha256=lOvwhfIbdMuQ-QYoibG5FMW2U-ZuOWcLd-puWAVcj-A,2048
232
231
  zrb/builtin/project/add/fastapp/app/template/_automate/snake_zrb_app_name/container/microservices/__init__.py,sha256=ftU92OGyRh2VZr-fkR1rJA-VLxevBlIypHqrlNW3OMc,250
233
232
  zrb/builtin/project/add/fastapp/app/template/_automate/snake_zrb_app_name/container/microservices/_group.py,sha256=PI6pgBfZRyG6YQqLoEZQLD9TKVZcrn2Yx8wqpunROwo,292
234
- zrb/builtin/project/add/fastapp/app/template/_automate/snake_zrb_app_name/container/microservices/_helper.py,sha256=_SY-bY7aG3HDI7AZpTPPb7TelLijXXeA0kY-xD0Bt5I,903
235
- zrb/builtin/project/add/fastapp/app/template/_automate/snake_zrb_app_name/container/microservices/start.py,sha256=NHvC5A1A--bM0hQ53Zu1rJMtFUm5UVBwhD4-SJ67L0Y,2216
233
+ zrb/builtin/project/add/fastapp/app/template/_automate/snake_zrb_app_name/container/microservices/start.py,sha256=h-a72rEk0ZwSVwZ_xXBAqe0Y280ieLUKfxS9yZHXumw,2459
236
234
  zrb/builtin/project/add/fastapp/app/template/_automate/snake_zrb_app_name/container/monolith/__init__.py,sha256=1ELaHwNeMmFO9Hy9foqsM-EHgesKYlnQsbUI_i_KYiA,230
237
235
  zrb/builtin/project/add/fastapp/app/template/_automate/snake_zrb_app_name/container/monolith/_group.py,sha256=u-vUVCZ8Q8LIVlw4lpduZYImIpSsNmO5FfUqsGrVFLc,277
238
- zrb/builtin/project/add/fastapp/app/template/_automate/snake_zrb_app_name/container/monolith/_helper.py,sha256=1Eu33q5vR3xcT2wAN9aEjMXaZvnNQky7pbxNxTOR7yY,867
239
- zrb/builtin/project/add/fastapp/app/template/_automate/snake_zrb_app_name/container/monolith/start.py,sha256=b-2vArVVxa-bSzlSriVmEOMEFD0BtFD_Kim6lN1xBzs,2185
240
- zrb/builtin/project/add/fastapp/app/template/_automate/snake_zrb_app_name/container/remove.py,sha256=sZaecjWGYqv834hh_MyDr5yKOFj8HkdraMREmR5AJI8,956
241
- zrb/builtin/project/add/fastapp/app/template/_automate/snake_zrb_app_name/container/stop.py,sha256=SAOiJdc2wSOnpzsx5pBtX1qwP2BYbZCT2peqD-8YT4s,994
236
+ zrb/builtin/project/add/fastapp/app/template/_automate/snake_zrb_app_name/container/monolith/start.py,sha256=9QTneFfh5lxwaiIJrUM6fAhbj38sgevj6ZVjDKzhaKo,2433
237
+ zrb/builtin/project/add/fastapp/app/template/_automate/snake_zrb_app_name/container/remove.py,sha256=A87V06Du_V4kG1EK9aWlrFAwvazu8ucv9Rak6_Nu1kQ,1016
238
+ zrb/builtin/project/add/fastapp/app/template/_automate/snake_zrb_app_name/container/stop.py,sha256=rxtG4P4MFVYGhTq2Al6WooGghaQ2xmplXWo_mZXuxHU,1054
242
239
  zrb/builtin/project/add/fastapp/app/template/_automate/snake_zrb_app_name/container/support/__init__.py,sha256=TKNXysArhYcwaeLWCTrim3U599JXs_IkgKF0y7urYVI,226
243
240
  zrb/builtin/project/add/fastapp/app/template/_automate/snake_zrb_app_name/container/support/_group.py,sha256=NbgCdPT5lGEd9ce4bid_HuFVp9loDKDA7qA7KfPsowA,274
244
- zrb/builtin/project/add/fastapp/app/template/_automate/snake_zrb_app_name/container/support/_helper.py,sha256=gL36Db-0Qu6lTc161YjwzJfrk5xTD2NrIpMn1UziQAY,1176
245
- zrb/builtin/project/add/fastapp/app/template/_automate/snake_zrb_app_name/container/support/start.py,sha256=Q_j94fC3moUi_xxbna6JbCdsUYmlUEg77y58B_FSh1w,1773
241
+ zrb/builtin/project/add/fastapp/app/template/_automate/snake_zrb_app_name/container/support/start.py,sha256=DK-gEEsxAafI0Ai9viaLABaumJ8QtKctmEdkC2r6pmI,2198
246
242
  zrb/builtin/project/add/fastapp/app/template/_automate/snake_zrb_app_name/destroy.py,sha256=hMwW7c-kRfDAc_ndLJ--1yu4KbPzdhM5bcOq1wpml1A,1161
247
243
  zrb/builtin/project/add/fastapp/app/template/_automate/snake_zrb_app_name/destroy.sh,sha256=Yc-jb01oostiRMtrsTNWJXn_Fee5iDfv16L4DaoklEA,29
248
244
  zrb/builtin/project/add/fastapp/app/template/_automate/snake_zrb_app_name/frontend/__init__.py,sha256=oUAubQE0KGRd04wSURGC87ZRoCl58yPGccRiey7tJBQ,299
@@ -278,7 +274,6 @@ zrb/builtin/project/add/fastapp/app/template/_automate/snake_zrb_app_name/monoli
278
274
  zrb/builtin/project/add/fastapp/app/template/_automate/snake_zrb_app_name/monolith/start.sh,sha256=KI-PqiOes-xWA2thSW2icD3VEgxRJUxjRmc_3y9mS14,57
279
275
  zrb/builtin/project/add/fastapp/app/template/_automate/snake_zrb_app_name/test.py,sha256=RuZGmP2OTPZcDOuBX5p-j5TizakkDxEClWhB2Fg64M4,1826
280
276
  zrb/builtin/project/add/fastapp/app/template/_automate/snake_zrb_app_name/test.sh,sha256=ibnoS4kV1p-3JREJKlX2UsziP009zHzP9miPxID1tpk,308
281
- zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/.generator-version,sha256=7kobEqGURA6fqyUvQGmQgHfJ7qsL3tXgh_8IUo4M7PY,10
282
277
  zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/.gitignore,sha256=YFrq8n_0yn9FT0XqcPVftHmKj31DSh4ftIY8EvQm0ik,53
283
278
  zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/README.md,sha256=mIE-CBlKzx_wEQdGIuiJbzDX_bCC13ckMnOYU8erHpI,15200
284
279
  zrb/builtin/project/add/fastapp/app/template/src/kebab-zrb-app-name/all-module-disabled.env,sha256=eIbYiufwRJ-artnA7Cw2y4YzGrPw2XtEb-ih_f4tCuw,56
@@ -1327,7 +1322,7 @@ zrb/builtin/update.py,sha256=89i_fPUlL27IXczLI7Lr7k4STMpnxyw2je8daCKUTQo,225
1327
1322
  zrb/builtin/version.py,sha256=i0pnnLQFLdTwcVqZs6xsGkbAY-IPbmelip7HuZVjgv0,384
1328
1323
  zrb/builtin/watch_changes.py,sha256=Vr__e_T31nnbefcPftvyn78dT3-UXqNRpH0KO-COeKQ,1220
1329
1324
  zrb/config/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
1330
- zrb/config/config.py,sha256=k_3HaOljqKWr1TKZ0Ap7_E2BRqejkVNChMMA13PqEwM,1891
1325
+ zrb/config/config.py,sha256=CBzfexBmP5cFPYuOM0SruCT4jWha73qe8YqwV9T8fdM,1625
1331
1326
  zrb/helper/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
1332
1327
  zrb/helper/accessories/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
1333
1328
  zrb/helper/accessories/color.py,sha256=7bj2-K_sn1leXN_C9eeOWXZBfnsBAFOzfirSiM8vCMw,964
@@ -1335,7 +1330,7 @@ zrb/helper/accessories/icon.py,sha256=uKm3w5G1fV454MUhz_CZMy48AD99kBV9j2zRlJWzB1
1335
1330
  zrb/helper/accessories/name.py,sha256=e1uvU3MzuvDb5j6YIWBA048y4qeM-LfrxRKWlMehliE,1638
1336
1331
  zrb/helper/accessories/untyped_color.py,sha256=4wRbHSClbCzPRWtW-Cy2agOMozANVi7u4p8lMXMSuJg,194
1337
1332
  zrb/helper/advertisement.py,sha256=GOaCtWYL9Oj_tAg4jqsCuFsdinHaOSH_6d57y8BbsVU,912
1338
- zrb/helper/asyncio_task.py,sha256=0CYQZcMnIO3514b8P0FJnTF9z7UasjJCf9TTDHfZLzM,686
1333
+ zrb/helper/asyncio_task.py,sha256=UcE2axvWDh8GCFYtPUZCrSZ8VfRS-lsffyDEupjK1-8,1021
1339
1334
  zrb/helper/callable.py,sha256=usatPKPkK_67G9dWreaGXskOaGHd_hE8MiTWAUhfojE,563
1340
1335
  zrb/helper/cli.py,sha256=cb82aZCX5NoOHQNTx3wtdKOAQJP79ky4HA6w0VjVBh0,2603
1341
1336
  zrb/helper/codemod/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -1384,18 +1379,14 @@ zrb/helper/util.py,sha256=s3Wdg-hYbhkttW7o2-C8erQqMuxStSpR8f2psgZzP68,3836
1384
1379
  zrb/runner.py,sha256=9huyeIi8gqbMQV3u6CRBeB8s9WVynECR0jECuCAYm9c,261
1385
1380
  zrb/shell-scripts/_common-util.sh,sha256=8zvSAbDp8z4JWxMT6s6bSnNBCfCB88gLLpK5LOhyPBg,229
1386
1381
  zrb/shell-scripts/ensure-docker-is-installed.sh,sha256=8CL5gYs428LPWcF43X-1O1i2YyWAOGzXTKZttiS9J1Q,2999
1387
- zrb/shell-scripts/ensure-podman-is-installed.sh,sha256=RvLLQIBN5cfLEsFkTpomgl_PxJZ6z0Wl0VGGtjIA5JM,1529
1388
1382
  zrb/shell-scripts/ensure-rsync-is-installed.sh,sha256=ffr8avoCUSoDQkEBWmeelgn-EtF9reQTaM0wfW6B0hc,1146
1389
1383
  zrb/shell-scripts/ensure-ssh-is-installed.sh,sha256=w5pCzsbEa3bnxT07q6gX0nWn-7HXsMiwBRrg7dMD57w,2414
1390
1384
  zrb/shell-scripts/notify.ps1,sha256=6_xPoIwuxARpYljcjVV-iRJS3gJqGfx-B6kj719cJ9o,843
1391
- zrb/shell-scripts/rsync-util.sh,sha256=QzdhSBvUNMxB4U2B4m0Dxg9czGckRjB7Vk4A1ObG0-k,353
1392
- zrb/shell-scripts/ssh-util.sh,sha256=9lXDzw6oO8HuA4vdbfps_uQMMwKyNYX9fZkZgpK52g8,401
1393
1385
  zrb/task/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
1394
1386
  zrb/task/any_task.py,sha256=SlAp6LY-8TGopaQm3eZD3ZEx3wxvCff8UfcnYyu-aiY,39344
1395
1387
  zrb/task/any_task_event_handler.py,sha256=ay4v7eXatF4sCiXpUYaHVJZljpnKlvBbFIwvZqXW8Mo,541
1396
- zrb/task/base_remote_cmd_task.py,sha256=EhAT7grnIxFeMfwm8FV6GF6n0kOYESAyIIVzqgZBRBg,12324
1397
1388
  zrb/task/base_task/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
1398
- zrb/task/base_task/base_task.py,sha256=oihVRUHAvNMwlfLEWQoixt5OwyMLyW9w6bSGD9WGVIk,20457
1389
+ zrb/task/base_task/base_task.py,sha256=iieOSoDvKVJpDpTH1LdO-uA1yBPRHxMDPyEgS0wKwmc,21434
1399
1390
  zrb/task/base_task/component/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
1400
1391
  zrb/task/base_task/component/base_task_model.py,sha256=EuTWvY54mD_ATy4-VFZw4uCOu3Mfe8hgZikwTnIjmkY,10381
1401
1392
  zrb/task/base_task/component/common_task_model.py,sha256=X_Ubu5kNycQJ-dFiLMARvC6GWQ9pIjBCdxh3MVelc-A,13544
@@ -1403,22 +1394,22 @@ zrb/task/base_task/component/pid_model.py,sha256=RjJIqOpavucDssnd3q3gT4q8QnP8I9S
1403
1394
  zrb/task/base_task/component/renderer.py,sha256=xxcMbHhWPMUgAO3DWec_E-OeqlCKtwCBGFzLoc5g8BE,4484
1404
1395
  zrb/task/base_task/component/trackers.py,sha256=3G4dMhh1kVaJrmRwiGzWQSbr1fB-w9xXjBKz_vRifYc,2063
1405
1396
  zrb/task/checker.py,sha256=mh_2ajZqpNdJQ8AFVQ6ZArYtBUOXST3aZSisINuEivk,3400
1406
- zrb/task/cmd_task.py,sha256=B3kRtpb0QVjusPWAMLjpfGxvAdEfgD9_N0jiU55S3rA,14718
1397
+ zrb/task/cmd_task.py,sha256=BcWXiikCQqFHIYs-PPSnvFTM10HKntj76h3wCE6sqKs,14701
1407
1398
  zrb/task/decorator.py,sha256=SuajollezbwiSOs29bv8A6PmFcFs_RH4pr4TPcQPDHM,3081
1408
- zrb/task/docker_compose_start_task.py,sha256=n4mLejebyy8sF4rbcfWZucPcBiqPSkDAdGZvOhk4Xt8,5335
1409
- zrb/task/docker_compose_task.py,sha256=QGJ-jlD0jCKIb5avzri1Z29zdIL3Cn6m4kaEOko3U6M,15615
1399
+ zrb/task/docker_compose_start_task.py,sha256=XjE2bV9bnqaMhgtElR-gC1as1uM9_-ozX7qzubyteQY,5453
1400
+ zrb/task/docker_compose_task.py,sha256=6nywyIMrOuQMJ5bsDaWEyUm91NkIP6HL0nnmKI_IEf8,17081
1410
1401
  zrb/task/flow_task.py,sha256=wkvvUCrt6n1ul-o3STCPMdrlBuGBrNCRgtRzGyXir9o,5079
1411
1402
  zrb/task/http_checker.py,sha256=gXqBlEStMnIhzmQ7FX9Zo-nG3-wsiVEML8IOJiSG5JI,5705
1412
- zrb/task/looper.py,sha256=zInLRgcQlReGXz4Ffxc2W99RovSChj6kHuGEGmaPb-Q,1432
1403
+ zrb/task/looper.py,sha256=tYMG9rTMEd5-FP0CIBfbcWfahsg6W-ED66AV5C-kCrk,1441
1413
1404
  zrb/task/notifier.py,sha256=xjqT5Vydr_0cc1m4jA-odhHMZg6CSGciFCs0rhVkvPM,6265
1414
1405
  zrb/task/parallel.py,sha256=Xz9az51hHfkeEmOEo3Xb-B7GPoOT_DxuakpAfCbzzV0,1176
1415
1406
  zrb/task/path_checker.py,sha256=xkOpxlLUaEXlsiWh1o-ghqQNWYadXvTl3QV4yeIC2Rc,4677
1416
1407
  zrb/task/path_watcher.py,sha256=aKWhT7Kuc_UJMr8SSY7ZZym-_rV526tEeIaKRRz3XYU,7419
1417
1408
  zrb/task/port_checker.py,sha256=SG2yrAxdJgxdR6xymviB48K529o3Rnq_WhDJZDKgAQg,4605
1418
1409
  zrb/task/recurring_task.py,sha256=wtZhi0DCDdVM7ecIgoXghQPTOQemrEvCY8xDJoaG1mo,7444
1419
- zrb/task/remote_cmd_task.py,sha256=jl4lcAiRwy30H-wGVJr4111xGZ7n3p0cTL2zRPi8dqY,3970
1410
+ zrb/task/remote_cmd_task.py,sha256=-kNkRVSIDrNJcVRBfMpc-fXYOHh6Fs2PTsiOzWwimTM,5793
1420
1411
  zrb/task/resource_maker.py,sha256=e6nmFJsVHHo8_sW5F-lBfkO_2RszrlXNoubh4rwM6UY,7644
1421
- zrb/task/rsync_task.py,sha256=qu5vyQUIkypgLH-974qICNtjs3ZGg3Cp1e904kxs44I,4235
1412
+ zrb/task/rsync_task.py,sha256=NdfKtendGyH9Kg17hEsavl1NoeIJ04FTii2OaXg_S6g,6022
1422
1413
  zrb/task/server.py,sha256=zC8swQOu_3YkRtGFXuRGZqz6yEu--ZhNRgNwbR44uUA,6741
1423
1414
  zrb/task/task.py,sha256=iHDyUMUh1uVGlMCQdVewdT3epCOHKNRKblC3G1WSKS0,2493
1424
1415
  zrb/task/time_watcher.py,sha256=v01whCMTvul_vraVccy8A9rDBk-CL7HFvPOu8g1BC5s,5130
@@ -1441,8 +1432,8 @@ zrb/task_input/multiline_input.py,sha256=KNto5k5X1C6KE_A-vX0OjpQyjgCRJ6BR2PwHXNQ
1441
1432
  zrb/task_input/password_input.py,sha256=95NlJ9xIq7z_evpAyR2XsBpeuWpBXd2Ezn3P7oDOttk,4360
1442
1433
  zrb/task_input/str_input.py,sha256=0nje7vI9fs_xqQBbmKB8Yn7wevlWp9Qebv7f8-GmiXs,4350
1443
1434
  zrb/task_input/task_input.py,sha256=WTj_qIQyRs-04-VotjNTcVyIuf6b2afInVoCQHoRmr0,2327
1444
- zrb-0.26.2.dist-info/LICENSE,sha256=WfnGCl8G60EYOPAEkuc8C9m9pdXWDe08NsKj3TBbxsM,728
1445
- zrb-0.26.2.dist-info/METADATA,sha256=-wlbBUk5VeBxb07XicBQtuBGBnUwDhCGYR1pfZwVUmE,17085
1446
- zrb-0.26.2.dist-info/WHEEL,sha256=FMvqSimYX_P7y0a7UY-_Mc83r5zkBZsCYPm7Lr0Bsq4,88
1447
- zrb-0.26.2.dist-info/entry_points.txt,sha256=xTgXc1kBKYhJHEujdaSPHUcJT3-hbyP1mLgwkv-5sSk,40
1448
- zrb-0.26.2.dist-info/RECORD,,
1435
+ zrb-0.28.0.dist-info/LICENSE,sha256=WfnGCl8G60EYOPAEkuc8C9m9pdXWDe08NsKj3TBbxsM,728
1436
+ zrb-0.28.0.dist-info/METADATA,sha256=8s4Xo9naikz0tPFxZQNrd56DsKyZnP-uwENR26YzldQ,17094
1437
+ zrb-0.28.0.dist-info/WHEEL,sha256=FMvqSimYX_P7y0a7UY-_Mc83r5zkBZsCYPm7Lr0Bsq4,88
1438
+ zrb-0.28.0.dist-info/entry_points.txt,sha256=xTgXc1kBKYhJHEujdaSPHUcJT3-hbyP1mLgwkv-5sSk,40
1439
+ zrb-0.28.0.dist-info/RECORD,,
@@ -1,8 +0,0 @@
1
- from typing import Any
2
-
3
-
4
- def activate_all_compose_profile(*args: Any, **kwargs: Any) -> str:
5
- compose_profile_str = ",".join(
6
- ["monitoring", "monolith", "microservices", "kafka", "postgres", "rabbitmq"]
7
- )
8
- return f"export COMPOSE_PROFILES={compose_profile_str}"
@@ -1,24 +0,0 @@
1
- from typing import Any
2
-
3
- from ..support._helper import get_support_container_compose_profiles
4
-
5
-
6
- def activate_microservices_compose_profile(*args: Any, **kwargs: Any) -> str:
7
- compose_profiles = _get_microservices_container_compose_profiles(*args, **kwargs)
8
- compose_profile_str = ",".join(compose_profiles)
9
- return f"export COMPOSE_PROFILES={compose_profile_str}"
10
-
11
-
12
- def should_start_microservices_container(*args: Any, **kwargs: Any) -> bool:
13
- if not kwargs.get("local_snake_zrb_app_name", True):
14
- return False
15
- compose_profiles = _get_microservices_container_compose_profiles(*args, **kwargs)
16
- return len(compose_profiles) > 0
17
-
18
-
19
- def _get_microservices_container_compose_profiles(
20
- *args: Any, **kwargs: Any
21
- ) -> list[str]:
22
- compose_profiles = get_support_container_compose_profiles(*args, **kwargs)
23
- compose_profiles.append("microservices")
24
- return compose_profiles
@@ -1,22 +0,0 @@
1
- from typing import Any
2
-
3
- from ..support._helper import get_support_container_compose_profiles
4
-
5
-
6
- def activate_monolith_compose_profile(*args: Any, **kwargs: Any) -> str:
7
- compose_profiles = _get_monolith_container_compose_profiles(*args, **kwargs)
8
- compose_profile_str = ",".join(compose_profiles)
9
- return f"export COMPOSE_PROFILES={compose_profile_str}"
10
-
11
-
12
- def should_start_monolith_container(*args: Any, **kwargs: Any) -> bool:
13
- if not kwargs.get("local_snake_zrb_app_name", True):
14
- return False
15
- compose_profiles = _get_monolith_container_compose_profiles(*args, **kwargs)
16
- return len(compose_profiles) > 0
17
-
18
-
19
- def _get_monolith_container_compose_profiles(*args: Any, **kwargs: Any) -> list[str]:
20
- compose_profiles = get_support_container_compose_profiles(*args, **kwargs)
21
- compose_profiles.append("monolith")
22
- return compose_profiles
@@ -1,30 +0,0 @@
1
- from typing import Any
2
-
3
- from zrb import Task
4
-
5
-
6
- def activate_support_compose_profile(*args: Any, **kwargs: Any) -> str:
7
- compose_profiles = get_support_container_compose_profiles(*args, **kwargs)
8
- compose_profile_str = ",".join(compose_profiles)
9
- return f"export COMPOSE_PROFILES={compose_profile_str}"
10
-
11
-
12
- def should_start_support_container(*args: Any, **kwargs: Any) -> bool:
13
- if not kwargs.get("local_snake_zrb_app_name", True):
14
- return False
15
- compose_profiles = get_support_container_compose_profiles(*args, **kwargs)
16
- return len(compose_profiles) > 0
17
-
18
-
19
- def get_support_container_compose_profiles(*args: Any, **kwargs: Any) -> list[str]:
20
- task: Task = kwargs.get("_task")
21
- env_map = task.get_env_map()
22
- compose_profiles: list[str] = []
23
- if env_map.get("APP_DB_CONNECTION", "").startswith("postgresql"):
24
- compose_profiles.append("postgres")
25
- broker_type = env_map.get("APP_BROKER_TYPE", "rabbitmq")
26
- if broker_type in ["rabbitmq", "kafka"]:
27
- compose_profiles.append(broker_type)
28
- if kwargs.get("enable_snake_zrb_app_name_monitoring", False):
29
- compose_profiles.append("monitoring")
30
- return compose_profiles
@@ -1,55 +0,0 @@
1
- set -e
2
- if command_exists podman
3
- then
4
- log_info "Podman is already installed."
5
- else
6
- log_info "Installing Podman..."
7
- if [ "$OS_TYPE" = "Darwin" ]
8
- then
9
- if command_exists brew
10
- then
11
- brew install --cask podman
12
- log_info "Please start Podman before proceeding."
13
- else
14
- log_info "Homebrew not found. Please install Homebrew and try again."
15
- exit 1
16
- fi
17
- elif [ "$OS_TYPE" = "Linux" ]
18
- then
19
- if command_exists apt
20
- then
21
- try_sudo apt update
22
- try_sudo apt install -y podman
23
- elif command_exists yum
24
- then
25
- try_sudo yum install -y podman
26
- elif command_exists dnf
27
- then
28
- try_sudo dnf install -y podman
29
- elif command_exists pacman
30
- then
31
- try_sudo pacman -Syu --noconfirm podman
32
- else
33
- log_info "No known package manager found. Please install Podman manually."
34
- exit 1
35
- fi
36
- else
37
- log_info "Unsupported OS type. Please install Podman manually."
38
- exit 1
39
- fi
40
- fi
41
-
42
- if ! command_exists podman-compose
43
- then
44
- log_info "Installing Podman Compose plugin..."
45
- pip install podman-compose
46
- fi
47
-
48
- # Check Podman Compose plugin installation
49
- if command_exists podman && command_exists podman-compose
50
- then
51
- log_info "Podman Compose plugin is already installed."
52
- else
53
- log_info "Podman Compose plugin is not installed or podman is not running. Please check your installation."
54
- exit 1
55
- fi
@@ -1,12 +0,0 @@
1
- set -e
2
- auth_rsync(){
3
- if [ "$_CONFIG_SSH_KEY" != "" ]
4
- then
5
- rsync --mkpath -avz -e "ssh -i $_CONFIG_SSH_KEY -p $_CONFIG_PORT" $@
6
- elif [ "$_CONFIG_PASSWORD" != "" ]
7
- then
8
- sshpass -p "$_CONFIG_PASSWORD" rsync --mkpath -avz -e "ssh -p $_CONFIG_PORT" $@
9
- else
10
- rsync --mkpath -avz -e "ssh -p $_CONFIG_PORT" $@
11
- fi
12
- }
@@ -1,12 +0,0 @@
1
- set -e
2
- auth_ssh(){
3
- if [ "$_CONFIG_SSH_KEY" != "" ]
4
- then
5
- ssh -t -p "$_CONFIG_PORT" -i "$_CONFIG_SSH_KEY" "${_CONFIG_USER}@${_CONFIG_HOST}" "$1"
6
- elif [ "$_CONFIG_PASSWORD" != "" ]
7
- then
8
- sshpass -p "$_CONFIG_PASSWORD" ssh -t -p "$_CONFIG_PORT" "${_CONFIG_USER}@${_CONFIG_HOST}" "$1"
9
- else
10
- ssh -t -p "$_CONFIG_PORT" "${_CONFIG_USER}@${_CONFIG_HOST}" "$1"
11
- fi
12
- }