machineconfig 4.97__py3-none-any.whl → 4.99__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.

Potentially problematic release.


This version of machineconfig might be problematic. Click here for more details.

Files changed (55) hide show
  1. machineconfig/cluster/remote/script_execution.py +1 -1
  2. machineconfig/jobs/installer/custom/gh.py +68 -39
  3. machineconfig/jobs/installer/custom/hx.py +1 -1
  4. machineconfig/jobs/installer/custom_dev/bypass_paywall.py +1 -1
  5. machineconfig/jobs/installer/custom_dev/wezterm.py +68 -35
  6. machineconfig/jobs/installer/installer_data.json +1 -1
  7. machineconfig/jobs/installer/package_groups.py +2 -1
  8. machineconfig/jobs/python/python_ve_symlink.py +1 -1
  9. machineconfig/profile/create.py +59 -40
  10. machineconfig/profile/shell.py +1 -1
  11. machineconfig/scripts/python/cloud_copy.py +1 -1
  12. machineconfig/scripts/python/cloud_mount.py +1 -1
  13. machineconfig/scripts/python/cloud_repo_sync.py +1 -1
  14. machineconfig/scripts/python/croshell.py +1 -1
  15. machineconfig/scripts/python/devops.py +1 -1
  16. machineconfig/scripts/python/devops_add_identity.py +1 -1
  17. machineconfig/scripts/python/devops_add_ssh_key.py +1 -1
  18. machineconfig/scripts/python/devops_backup_retrieve.py +1 -1
  19. machineconfig/scripts/python/devops_update_repos.py +135 -65
  20. machineconfig/scripts/python/dotfile.py +41 -15
  21. machineconfig/scripts/python/fire_jobs.py +1 -1
  22. machineconfig/scripts/python/ftpx.py +101 -49
  23. machineconfig/scripts/python/helpers/helpers2.py +2 -2
  24. machineconfig/scripts/python/helpers/helpers4.py +1 -1
  25. machineconfig/scripts/python/helpers/repo_sync_helpers.py +1 -1
  26. machineconfig/scripts/python/interactive.py +1 -1
  27. machineconfig/scripts/python/mount_nfs.py +13 -7
  28. machineconfig/scripts/python/mount_ssh.py +1 -1
  29. machineconfig/scripts/python/repos.py +7 -6
  30. machineconfig/scripts/python/repos_helper_action.py +1 -1
  31. machineconfig/scripts/python/repos_helper_clone.py +4 -4
  32. machineconfig/scripts/python/repos_helper_record.py +1 -1
  33. machineconfig/scripts/python/sessions.py +5 -1
  34. machineconfig/scripts/python/share_terminal.py +14 -7
  35. machineconfig/scripts/python/start_slidev.py +1 -1
  36. machineconfig/scripts/python/wsl_windows_transfer.py +1 -1
  37. machineconfig/setup_windows/wt_and_pwsh/set_wt_settings.py +1 -1
  38. machineconfig/utils/code.py +1 -1
  39. machineconfig/utils/installer.py +1 -1
  40. machineconfig/{scripts/python/devops_devapps_install.py → utils/installer_utils/installer.py} +2 -3
  41. machineconfig/utils/installer_utils/installer_abc.py +1 -1
  42. machineconfig/utils/installer_utils/installer_class.py +1 -1
  43. machineconfig/utils/links.py +1 -1
  44. machineconfig/utils/path_extended.py +4 -2
  45. machineconfig/utils/path_helper.py +1 -1
  46. machineconfig/utils/scheduler.py +1 -1
  47. {machineconfig-4.97.dist-info → machineconfig-4.99.dist-info}/METADATA +1 -1
  48. {machineconfig-4.97.dist-info → machineconfig-4.99.dist-info}/RECORD +54 -55
  49. machineconfig/cluster/templates/utils.py +0 -51
  50. /machineconfig/cluster/{templates → remote}/run_cloud.py +0 -0
  51. /machineconfig/cluster/{templates → remote}/run_cluster.py +0 -0
  52. /machineconfig/cluster/{templates → remote}/run_remote.py +0 -0
  53. {machineconfig-4.97.dist-info → machineconfig-4.99.dist-info}/WHEEL +0 -0
  54. {machineconfig-4.97.dist-info → machineconfig-4.99.dist-info}/entry_points.txt +0 -0
  55. {machineconfig-4.97.dist-info → machineconfig-4.99.dist-info}/top_level.txt +0 -0
@@ -8,10 +8,11 @@ in the event that username@github.com is not mentioned in the remote url.
8
8
 
9
9
  import typer
10
10
  from typing import Annotated, Optional
11
+ from pathlib import Path
11
12
 
12
13
 
13
14
  def main(
14
- directory: Annotated[str, typer.Argument(help="📁 Folder containing repos to record or a specs JSON file to follow.")] = "",
15
+ directory: Annotated[Optional[str], typer.Argument(help="📁 Folder containing repos to record or a specs JSON file to follow.")] = None,
15
16
  push: Annotated[bool, typer.Option("--push", help="🚀 Push changes.")] = False,
16
17
  pull: Annotated[bool, typer.Option("--pull", help="⬇️ Pull changes.")] = False,
17
18
  commit: Annotated[bool, typer.Option("--commit", help="💾 Commit changes.")] = False,
@@ -30,15 +31,15 @@ def main(
30
31
 
31
32
  from machineconfig.utils.io import read_ini
32
33
  from machineconfig.utils.source_of_truth import CONFIG_PATH, DEFAULTS_PATH
33
- from machineconfig.utils.path_extended import PathExtended as PathExtended
34
+ from machineconfig.utils.path_extended import PathExtended
34
35
  from machineconfig.scripts.python.repos_helper_record import main as record_repos
35
36
  from machineconfig.scripts.python.repos_helper_clone import clone_repos
36
37
  from machineconfig.scripts.python.repos_helper_action import perform_git_operations
37
38
 
38
- if directory == "":
39
- repos_root = PathExtended.home().joinpath("code") # it is a positional argument, can never be empty.
40
- else:
41
- repos_root = PathExtended(directory).expanduser().absolute()
39
+ if directory is None:
40
+ directory = Path.cwd().as_posix()
41
+ print(f"📁 Using directory: {directory}")
42
+ repos_root = PathExtended(directory).expanduser().absolute()
42
43
  auto_sync = not no_sync # Enable auto sync by default, disable with --no-sync
43
44
  if record:
44
45
  save_path = record_repos(repos_root=repos_root)
@@ -1,4 +1,4 @@
1
- from machineconfig.utils.path_extended import PathExtended as PathExtended
1
+ from machineconfig.utils.path_extended import PathExtended
2
2
  from machineconfig.utils.accessories import randstr
3
3
  from machineconfig.scripts.python.repos_helper_update import update_repository
4
4
 
@@ -1,5 +1,6 @@
1
1
  from __future__ import annotations
2
2
 
3
+ from pathlib import Path
3
4
  from typing import Literal, Optional, cast
4
5
 
5
6
  from git import Repo as GitRepo
@@ -7,7 +8,6 @@ from git.exc import GitCommandError
7
8
  from rich import print as pprint
8
9
  from rich.progress import BarColumn, MofNCompleteColumn, Progress, SpinnerColumn, TextColumn, TimeElapsedColumn
9
10
 
10
- from machineconfig.utils.path_extended import PathExtended as PathExtended
11
11
  from machineconfig.utils.schemas.repos.repos_types import RepoRecordDict, RepoRecordFile, RepoRemote
12
12
  from machineconfig.utils.io import read_json
13
13
 
@@ -26,8 +26,8 @@ def choose_remote(remotes: list[RepoRemote], preferred_remote: Optional[str]) ->
26
26
  return remotes[0] if len(remotes) > 0 else None
27
27
 
28
28
 
29
- def ensure_destination(parent_dir: str, name: str) -> PathExtended:
30
- parent_path = PathExtended(parent_dir).expanduser().absolute()
29
+ def ensure_destination(parent_dir: str, name: str) -> Path:
30
+ parent_path = Path(parent_dir).expanduser().absolute()
31
31
  parent_path.mkdir(parents=True, exist_ok=True)
32
32
  return parent_path.joinpath(name)
33
33
 
@@ -94,7 +94,7 @@ def clone_single_repo(repo_spec: RepoRecordDict, preferred_remote: Optional[str]
94
94
  return (status, message)
95
95
 
96
96
 
97
- def clone_repos(spec_path: PathExtended, preferred_remote: Optional[str], checkout_branch_flag: bool, checkout_commit_flag: bool) -> list[tuple[CloneStatus, str]]:
97
+ def clone_repos(spec_path: Path, preferred_remote: Optional[str], checkout_branch_flag: bool, checkout_commit_flag: bool) -> list[tuple[CloneStatus, str]]:
98
98
  data = cast(RepoRecordFile, read_json(path=spec_path))
99
99
  repos = data["repos"]
100
100
  results: list[tuple[CloneStatus, str]] = []
@@ -1,4 +1,4 @@
1
- from machineconfig.utils.path_extended import PathExtended as PathExtended
1
+ from machineconfig.utils.path_extended import PathExtended
2
2
  from machineconfig.utils.schemas.repos.repos_types import GitVersionInfo, RepoRecordDict, RepoRemote
3
3
 
4
4
  from machineconfig.utils.schemas.repos.repos_types import RepoRecordFile
@@ -69,7 +69,8 @@ def find_layout_file(layout_path: str, ) -> Path:
69
69
  return choice_file
70
70
 
71
71
 
72
- def launch(layout_path: str = typer.Argument(..., help="Path to the layout.json file"),
72
+ def launch(ctx: typer.Context,
73
+ layout_path: Optional[str] = typer.Argument(None, help="Path to the layout.json file"),
73
74
  max_tabs: int = typer.Option(10, help="A Sanity checker that throws an error if any layout exceeds the maximum number of tabs to launch."),
74
75
  max_layouts: int = typer.Option(10, help="A Sanity checker that throws an error if the total number of layouts exceeds this number."),
75
76
  sleep_inbetween: float = typer.Option(1.0, help="Sleep time in seconds between launching layouts"),
@@ -82,6 +83,9 @@ def launch(layout_path: str = typer.Argument(..., help="Path to the layout.json
82
83
  """
83
84
  Launch terminal sessions based on a layout configuration file.
84
85
  """
86
+ if layout_path is None:
87
+ typer.echo(ctx.get_help())
88
+ raise typer.Exit()
85
89
  layout_path_resolved = find_layout_file(layout_path=layout_path)
86
90
  layouts_selected = select_layout(layouts_json_file=layout_path_resolved, selected_layouts_names=choose.split(",") if choose else None, select_interactively=choose_interactively)
87
91
 
@@ -7,7 +7,6 @@ import typer
7
7
 
8
8
 
9
9
  """
10
- uv run --python 3.13 --with machineconfig
11
10
  reference:
12
11
  # https://github.com/tsl0922/ttyd/wiki/Serving-web-fonts
13
12
  # -t "fontFamily=CaskaydiaCove" bash
@@ -58,7 +57,7 @@ def install_ttyd():
58
57
  print("✅ ttyd is already installed.")
59
58
  return
60
59
  print("⏳ ttyd not found. Installing...")
61
- from machineconfig.scripts.python.devops_devapps_install import main
60
+ from machineconfig.utils.installer_utils.installer import main
62
61
  main(which="ttyd")
63
62
 
64
63
 
@@ -67,6 +66,7 @@ def main(
67
66
  port: Annotated[Optional[int], typer.Option("--port", "-p", help="Port to run the terminal server on (default: 7681)")] = None,
68
67
  username: Annotated[Optional[str], typer.Option("--username", "-u", help="Username for terminal access (default: current user)")] = None,
69
68
  password: Annotated[Optional[str], typer.Option("--password", "-w", help="Password for terminal access (default: from ~/dotfiles/creds/passwords/quick_password)")] = None,
69
+ start_command: Annotated[Optional[str], typer.Option("--start-command", "-s", help="Command to run on terminal start (default: bash/powershell)")] = None,
70
70
  ssl: Annotated[bool, typer.Option("--ssl", "-S", help="Enable SSL")] = False,
71
71
  ssl_cert: Annotated[Optional[str], typer.Option("--ssl-cert", "-C", help="SSL certificate file path")] = None,
72
72
  ssl_key: Annotated[Optional[str], typer.Option("--ssl-key", "-K", help="SSL key file path")] = None,
@@ -121,12 +121,19 @@ def main(
121
121
  ssl_args = f"--ssl --ssl-cert {ssl_cert} --ssl-key {ssl_key}"
122
122
  if ssl_ca:
123
123
  ssl_args += f" --ssl-ca {ssl_ca}"
124
-
125
- code = f"""#!/bin/bash
126
- ttyd --writable -t enableSixel=true {ssl_args} --port {port} --credential "{username}:{password}" -t 'theme={{"background": "black"}}' bash
124
+
125
+ if start_command is None:
126
+ import platform
127
+ if platform.system().lower() == "windows":
128
+ start_command = "powershell"
129
+ else:
130
+ start_command = "bash"
131
+ code = f"""
132
+ #!/bin/bash
133
+ ttyd --writable -t enableSixel=true {ssl_args} --port {port} --credential "{username}:{password}" -t 'theme={{"background": "black"}}' {start_command}
127
134
  """
128
- import subprocess
129
- subprocess.run(code, shell=True, check=True)
135
+ from machineconfig.utils.code import run_script
136
+ run_script(code)
130
137
 
131
138
 
132
139
  def main_with_parser():
@@ -4,7 +4,7 @@ slidev
4
4
 
5
5
  from machineconfig.utils.source_of_truth import CONFIG_PATH
6
6
  from machineconfig.utils.code import print_code
7
- from machineconfig.utils.path_extended import PathExtended as PathExtended
7
+ from machineconfig.utils.path_extended import PathExtended
8
8
  from machineconfig.utils.terminal import Response
9
9
  from typing import Annotated, Optional
10
10
  import typer
@@ -1,6 +1,6 @@
1
1
  """TWSL"""
2
2
 
3
- from machineconfig.utils.path_extended import PathExtended as PathExtended
3
+ from machineconfig.utils.path_extended import PathExtended
4
4
  from typing import Annotated, Optional
5
5
  import typer
6
6
  import platform
@@ -1,7 +1,7 @@
1
1
  """Set Windows Terminal Settings"""
2
2
 
3
3
  from machineconfig.utils.accessories import randstr
4
- from machineconfig.utils.path_extended import PathExtended as PathExtended
4
+ from machineconfig.utils.path_extended import PathExtended
5
5
  from machineconfig.utils.io import read_json, save_json
6
6
  import platform
7
7
 
@@ -7,7 +7,7 @@ from rich.syntax import Syntax
7
7
 
8
8
  from machineconfig.utils.accessories import randstr
9
9
  from machineconfig.utils.ve import get_ve_activate_line
10
- from machineconfig.utils.path_extended import PathExtended as PathExtended
10
+ from machineconfig.utils.path_extended import PathExtended
11
11
 
12
12
 
13
13
  def get_shell_script_executing_python_file(python_file: str, func: Optional[str], ve_path: str, strict_execution: bool = True):
@@ -8,7 +8,7 @@ from machineconfig.jobs.installer.package_groups import PACKAGE_GROUPS, PACKAGE_
8
8
  from rich.console import Console
9
9
  from rich.panel import Panel
10
10
 
11
- from machineconfig.utils.path_extended import PathExtended as PathExtended
11
+ from machineconfig.utils.path_extended import PathExtended
12
12
  from machineconfig.utils.source_of_truth import INSTALL_VERSION_ROOT, LINUX_INSTALL_PATH, LIBRARY_ROOT
13
13
  from machineconfig.utils.io import read_json
14
14
 
@@ -162,12 +162,11 @@ def install_clis(clis_names: list[str]):
162
162
 
163
163
  total_messages: list[str] = []
164
164
  for a_which in clis_names:
165
- all_installers = get_installers(os=get_os_name(), arch=get_normalized_arch(), which_cats=["ESSENTIAL", "DEV"])
165
+ all_installers = get_installers(os=get_os_name(), arch=get_normalized_arch(), which_cats=None)
166
166
  selected_installer = None
167
167
  for installer in all_installers:
168
- exe_name = installer["appName"]
169
168
  app_name = installer["appName"]
170
- if exe_name == a_which or app_name == a_which:
169
+ if app_name.lower() == a_which.lower():
171
170
  selected_installer = installer
172
171
  break
173
172
  if selected_installer is None:
@@ -1,5 +1,5 @@
1
1
 
2
- from machineconfig.utils.path_extended import PathExtended as PathExtended
2
+ from machineconfig.utils.path_extended import PathExtended
3
3
  from machineconfig.utils.source_of_truth import WINDOWS_INSTALL_PATH, LINUX_INSTALL_PATH, INSTALL_VERSION_ROOT
4
4
 
5
5
  from pathlib import Path
@@ -1,4 +1,4 @@
1
- from machineconfig.utils.path_extended import PathExtended as PathExtended
1
+ from machineconfig.utils.path_extended import PathExtended
2
2
  from machineconfig.utils.installer_utils.installer_abc import find_move_delete_linux, find_move_delete_windows
3
3
  from machineconfig.utils.source_of_truth import INSTALL_TMP_DIR, INSTALL_VERSION_ROOT, LIBRARY_ROOT
4
4
  from machineconfig.utils.installer_utils.installer_abc import check_tool_exists
@@ -1,4 +1,4 @@
1
- from machineconfig.utils.path_extended import PathExtended as PathExtended, PLike
1
+ from machineconfig.utils.path_extended import PathExtended, PLike
2
2
  from machineconfig.utils.accessories import randstr
3
3
  from rich.console import Console
4
4
  from rich.panel import Panel
@@ -9,8 +9,6 @@ import os
9
9
  from platform import system
10
10
  from typing import Any, Optional, Union, Callable, TypeAlias, Literal
11
11
 
12
- from machineconfig.utils.terminal import Response
13
-
14
12
 
15
13
  OPLike: TypeAlias = Union[str, "PathExtended", Path, None]
16
14
  PLike: TypeAlias = Union[str, "PathExtended", Path]
@@ -925,6 +923,8 @@ class PathExtended(type(Path()), Path): # type: ignore # pylint: disable=E0241
925
923
  shell_to_use = "powershell" if sys.platform == "win32" else "bash"
926
924
  command = f"rclone link '{cloud}:{rp.as_posix()}'"
927
925
  completed = _run_shell_command(command, shell_to_use)
926
+ from machineconfig.utils.terminal import Response
927
+
928
928
  res = Response.from_completed_process(completed).capture()
929
929
  tmp = res.op2path(strict_err=False, strict_returncode=False)
930
930
  if tmp is None:
@@ -1001,6 +1001,8 @@ class PathExtended(type(Path()), Path): # type: ignore # pylint: disable=E0241
1001
1001
  stdout_target: Optional[int] = None if verbose else subprocess.PIPE
1002
1002
  stderr_target: Optional[int] = None if verbose else subprocess.PIPE
1003
1003
  completed = _run_shell_command(rclone_cmd, shell_to_use, stdout=stdout_target, stderr=stderr_target)
1004
+ from machineconfig.utils.terminal import Response
1005
+
1004
1006
  res = Response.from_completed_process(completed)
1005
1007
  success = res.is_successful(strict_err=False, strict_returcode=True)
1006
1008
  if not success:
@@ -1,4 +1,4 @@
1
- from machineconfig.utils.path_extended import PathExtended as PathExtended
1
+ from machineconfig.utils.path_extended import PathExtended
2
2
  from machineconfig.utils.options import choose_from_options
3
3
  from machineconfig.utils.source_of_truth import EXCLUDE_DIRS
4
4
  from rich.console import Console
@@ -4,7 +4,7 @@ import logging
4
4
  import time
5
5
  from datetime import datetime, timezone, timedelta
6
6
  from machineconfig.utils.io import from_pickle
7
- from machineconfig.utils.path_extended import PathExtended as PathExtended
7
+ from machineconfig.utils.path_extended import PathExtended
8
8
 
9
9
 
10
10
  class LoggerTemplate(Protocol):
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: machineconfig
3
- Version: 4.97
3
+ Version: 4.99
4
4
  Summary: Dotfiles management package
5
5
  Author-email: Alex Al-Saffar <programmer@usa.com>
6
6
  License: Apache 2.0
@@ -8,7 +8,10 @@ machineconfig/cluster/remote/file_manager.py,sha256=w1edpBcH8mHDEzRF5tqQDu5MJYsy
8
8
  machineconfig/cluster/remote/job_params.py,sha256=_t5QKqRHReShaBlJfSgVS5E3_oHYcRUIRO_Uz1mbA-k,7698
9
9
  machineconfig/cluster/remote/loader_runner.py,sha256=Ia62ALepM3TP7kHaymfp0jEMuHJ0HjF31VbNJOCYYtM,7061
10
10
  machineconfig/cluster/remote/remote_machine.py,sha256=xRuoHKNsIT0-FTFSvF1q7scnGKz8Qp6bxuzYdQLUOVA,19670
11
- machineconfig/cluster/remote/script_execution.py,sha256=4U70FDtjOh6A6C2Ei-Xh90S888q64VhRPbExoEbdepk,9980
11
+ machineconfig/cluster/remote/run_cloud.py,sha256=0o4-v5yFEqvlHzoKDXljRCR5ikx_r5w4oYE5OCtVIK8,2378
12
+ machineconfig/cluster/remote/run_cluster.py,sha256=ZFNl4EDybicedWKX5qBwSSeKKfdV2lQFD_1kcAyjHYM,4691
13
+ machineconfig/cluster/remote/run_remote.py,sha256=vCc56t8BUAUJp7tyb0PFfwy5hlmIdRdzcjlpP9gcLdc,3247
14
+ machineconfig/cluster/remote/script_execution.py,sha256=HHENJ4hmWmiVii394EbgIaTdJUQwxprFQh0ItaYJZ2E,9977
12
15
  machineconfig/cluster/remote/script_notify_upon_completion.py,sha256=GRxnnbnOl1-hTovTN-zI_M9wdV7x293yA77_mou9I1o,2032
13
16
  machineconfig/cluster/sessions_managers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
14
17
  machineconfig/cluster/sessions_managers/ffile.py,sha256=QzkBU5Ysnah9SxlzODsGprx4Q_VskWntChoejaOCEdw,52
@@ -37,20 +40,16 @@ machineconfig/cluster/sessions_managers/zellij_utils/session_manager.py,sha256=7
37
40
  machineconfig/cluster/sessions_managers/zellij_utils/status_reporter.py,sha256=AtpIoko_ghhOXENGAfgiS2jA4IYBFRMjEbyIy_P6HIM,3758
38
41
  machineconfig/cluster/templates/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
39
42
  machineconfig/cluster/templates/cli_trogon.py,sha256=PFWGy8SFYIhT9r3ZV4oIEYfImsQwzAHH_04stPuV5bY,647
40
- machineconfig/cluster/templates/run_cloud.py,sha256=0o4-v5yFEqvlHzoKDXljRCR5ikx_r5w4oYE5OCtVIK8,2378
41
- machineconfig/cluster/templates/run_cluster.py,sha256=ZFNl4EDybicedWKX5qBwSSeKKfdV2lQFD_1kcAyjHYM,4691
42
- machineconfig/cluster/templates/run_remote.py,sha256=vCc56t8BUAUJp7tyb0PFfwy5hlmIdRdzcjlpP9gcLdc,3247
43
- machineconfig/cluster/templates/utils.py,sha256=5lHgjHvodoSPBD31AwluHBBNgwimwThUsDNWGN8iH9I,1647
44
43
  machineconfig/jobs/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
45
44
  machineconfig/jobs/installer/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
46
- machineconfig/jobs/installer/installer_data.json,sha256=tBf8X6TEfdhRrvTbp5qyKUs0nEYxE62C8XgDkPCJnfc,72128
47
- machineconfig/jobs/installer/package_groups.py,sha256=hG9-RLfEXlGg5u7-8x9PrNLr9mNtuoVLVrfDN9hqzQ0,6735
48
- machineconfig/jobs/installer/custom/gh.py,sha256=iZZI4ND87eiWlj-Y5uJ7LuN8ln2QkqjJyeOMFZ0o-YA,2963
49
- machineconfig/jobs/installer/custom/hx.py,sha256=FrUD0mlhWG2GxrnarccVIaW_sHJ5mxeF6yyzbBWyx6w,5840
45
+ machineconfig/jobs/installer/installer_data.json,sha256=K6B6EPD8IXIeOzkY7sIIpphBmDVwnV_tczULAx-Y2ps,72114
46
+ machineconfig/jobs/installer/package_groups.py,sha256=VuI4WZEDpgApBptxqu7mbfKxrQ99JY52L1n2devP-y0,6822
47
+ machineconfig/jobs/installer/custom/gh.py,sha256=gn7TUSrsLx7uqFqj1Z-iYglS0EYBSgtJ9jWHxaJIfXM,4119
48
+ machineconfig/jobs/installer/custom/hx.py,sha256=ahtnne0zLvnBDjbKPaEk987R_mub8KJhwWpe4fe0kCU,5824
50
49
  machineconfig/jobs/installer/custom_dev/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
51
50
  machineconfig/jobs/installer/custom_dev/alacritty.py,sha256=dQJ7EZ-23N3UOeWwccC-HTbrpfKDRxrzdmfqeIPKwQE,2738
52
51
  machineconfig/jobs/installer/custom_dev/brave.py,sha256=6-jsdvvVEQDkqHbhnEubitF6fy7AXBB9Q-GLgIEOLoM,2987
53
- machineconfig/jobs/installer/custom_dev/bypass_paywall.py,sha256=2DHZtMKjeH6BBVBaZKsup3PwzPfl4Cxmn9xlR7fzAkg,1904
52
+ machineconfig/jobs/installer/custom_dev/bypass_paywall.py,sha256=ZF8yF2srljLChe1tOw_fEsalOkts4RpNwlzX9GtWh2g,1888
54
53
  machineconfig/jobs/installer/custom_dev/code.py,sha256=0Hb4ToMLQX4WWyG4xfUEJMTwN01ad5VZGogu3Llqtbc,2480
55
54
  machineconfig/jobs/installer/custom_dev/cursor.py,sha256=3xoFAYFdZqurSHXeEG-vbG0KU1TNQpBMaMgL1eW6X4k,4326
56
55
  machineconfig/jobs/installer/custom_dev/espanso.py,sha256=H1rZb4xnjs72lL0_mB0M4d7NrDyVv1sAG3NOkOrCB64,4137
@@ -59,7 +58,7 @@ machineconfig/jobs/installer/custom_dev/lvim.py,sha256=2-wbh_IClTFcFkSYk9EsRiv88
59
58
  machineconfig/jobs/installer/custom_dev/nerdfont.py,sha256=dsPmiqP9AJCack7mNeJ8Qzo4dSOwC0bsupH0Hn3gqSg,4149
60
59
  machineconfig/jobs/installer/custom_dev/nerfont_windows_helper.py,sha256=6IRg95ToIfw1oGNxZNZPwsjrwgJgbjQHE6My8rTe36o,6073
61
60
  machineconfig/jobs/installer/custom_dev/redis.py,sha256=bReDLsgy37eJyTU4TXE7FQpKFi-_usQC7bwhfXvZuBU,3259
62
- machineconfig/jobs/installer/custom_dev/wezterm.py,sha256=BuTVRqV5WQUS2C7FpWMU4pQWgkPt4p3VVGcE6fTVG-0,2311
61
+ machineconfig/jobs/installer/custom_dev/wezterm.py,sha256=73BzfUdY8mXM4l4jVFIBxR1qXSE4g_PAyxefanrVkFU,3555
63
62
  machineconfig/jobs/installer/custom_dev/winget.py,sha256=gLdwM20jKMf2bMV3BAcOg4MkuzwF09CU5OhXvLkPoHo,5738
64
63
  machineconfig/jobs/installer/linux_scripts/brave.sh,sha256=m01xquA4YZW3YrhJiTCvTZuLliELmRI1avYFyuE5-Ws,2119
65
64
  machineconfig/jobs/installer/linux_scripts/docker.sh,sha256=xP219QeQ5eLwhvOHsNYqOERMGdjBqvrL5jeoZj749XE,5347
@@ -82,7 +81,7 @@ machineconfig/jobs/python/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJW
82
81
  machineconfig/jobs/python/check_installations.py,sha256=ksuENfJg0NAo1mWLRnsj1MpZw7Ee7eKw1nWyUQeO7fg,11096
83
82
  machineconfig/jobs/python/create_bootable_media.py,sha256=KKtcPk0rFLQc4eNVP6nbeYX-P7Gpqi0HvfIcUM6rVVs,827
84
83
  machineconfig/jobs/python/python_cargo_build_share.py,sha256=vy1v32-7Tui4NK4wG5XC5hxavQ4BeMpKprUtqzBjut0,2081
85
- machineconfig/jobs/python/python_ve_symlink.py,sha256=HYVkNLIOm4Zk6zX8cNOKNLSKA7un9hXiZfBjq8vcwRs,1156
84
+ machineconfig/jobs/python/python_ve_symlink.py,sha256=Mw2SK_TDLK5Ct_mEESh_Pd-Rn-B1oBSp7a_9y_eZbqw,1140
86
85
  machineconfig/jobs/python/tasks.py,sha256=hrBDQOnBmcXtauTkicVgC8J2AOGcfdFfyx0K8eI6Coc,150
87
86
  machineconfig/jobs/python/vscode/api.py,sha256=Et0G-VUj13D1rshYMdDrw_CUYSO7Q6XRrEQO0WjVIKU,1683
88
87
  machineconfig/jobs/python/vscode/sync_code.py,sha256=f9hxMg_nkIsC0xvfQMboJbc-Jhap9YQrV7k7a5YSI1c,2333
@@ -94,8 +93,8 @@ machineconfig/jobs/windows/archive/openssh-server_copy-ssh-id.ps1,sha256=-7pElYi
94
93
  machineconfig/jobs/windows/msc/cli_agents.bat,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
95
94
  machineconfig/jobs/windows/msc/cli_agents.ps1,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
96
95
  machineconfig/profile/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
97
- machineconfig/profile/create.py,sha256=R-k5lIQqnhQfAO4vBfGhkprf9_ePl4Zb9W26jgKcvXQ,6498
98
- machineconfig/profile/shell.py,sha256=rseM8irNSv8xAUj8pDucjCuuqJZoNtpSgKt9JOntoM0,9215
96
+ machineconfig/profile/create.py,sha256=-BsFb-5-4ZweLGirRtTshBTtGuTtl1hCAC3tD12xgMQ,7745
97
+ machineconfig/profile/shell.py,sha256=eAAmYoROXX1V3vk9-jcRSnv03P2Wx3_N4UgFtUDLtKU,9199
99
98
  machineconfig/profile/records/generic/shares.toml,sha256=FduDztfyQtZcr5bfx-RSKhEEweweQSWfVXkKWnx8hCY,143
100
99
  machineconfig/profile/records/linux/apps_summary_report.csv,sha256=pw9djvaRUPalKDLn2sl3odcbD2_Zx3aEupsQ8UPfaaY,2738
101
100
  machineconfig/profile/records/linux/apps_summary_report.md,sha256=l77oofA6Rliql0ZgKGIZi8bstFoGyyGTxeS8p2PtOj0,5634
@@ -142,52 +141,51 @@ machineconfig/scripts/linux/z_ls,sha256=ATZtu0ccN3AKvAOxkwLq1xgQjJ3en5byEWJ3Q8af
142
141
  machineconfig/scripts/python/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
143
142
  machineconfig/scripts/python/agents.py,sha256=iMR-lpkdIzpm1CEin092IRCq2RbXLD-8Z_SOcV0g33Q,9897
144
143
  machineconfig/scripts/python/choose_wezterm_theme.py,sha256=Hlu_EOQhLM6wYdAdY25jcqEK11BkVwQYwkz04xnIBVU,3397
145
- machineconfig/scripts/python/cloud_copy.py,sha256=_pxA8o3ar5vH9DkrAdwafHcZMiqNCbY_IfNzKCOMJ5k,8395
144
+ machineconfig/scripts/python/cloud_copy.py,sha256=fcWbSo2nGiubtMYjGci8s5tVjZ9D-u8mteCawZmbw3I,8379
146
145
  machineconfig/scripts/python/cloud_manager.py,sha256=YN0DYLzPKtMBaks-EAVwFmkCu3XeHWMr1D21uqX5dDk,3429
147
- machineconfig/scripts/python/cloud_mount.py,sha256=RFMzRUep2D5HtVXANIi-pab3EkI-W8P1IJ32k1W7xQA,6756
148
- machineconfig/scripts/python/cloud_repo_sync.py,sha256=PTZ4gyhMFwW77DxE86GyNQK0JDFLcMUSF69AM80SvxY,9781
146
+ machineconfig/scripts/python/cloud_mount.py,sha256=GwcXbd5ohoHGESfX5edtCEl2-umDDxH_AZapmFSzc9E,6740
147
+ machineconfig/scripts/python/cloud_repo_sync.py,sha256=8dnlHbQqRymPRU0v01pNIuaIvFeY4fReP7ewNSSCt34,9765
149
148
  machineconfig/scripts/python/cloud_sync.py,sha256=RWGpAfJ9fnN18yNBSgN44dzA38Hmd4879JL5r2pcyrM,3514
150
- machineconfig/scripts/python/croshell.py,sha256=wYi8xWkzYzpfg8YNppmu22mvx0Gxtbs979ERO3kZS2w,8587
151
- machineconfig/scripts/python/devops.py,sha256=fTEut6gTDfmNqzS8-gRyRAsmWJYPGGIt8X35Irj7Cl8,3434
152
- machineconfig/scripts/python/devops_add_identity.py,sha256=JfN3ZrYMCgmt4ks_VCfnV9BIIHAsOYO3E0W0wZ15FR8,3791
153
- machineconfig/scripts/python/devops_add_ssh_key.py,sha256=KaoX83KltBsmutfKhSfZjd7nP_R1hJ2OLAWRhbswO7o,6889
154
- machineconfig/scripts/python/devops_backup_retrieve.py,sha256=jZe5Vki7E2GCMG8hvqUZeOONFC4cNzISoGzq_dMG4GA,5601
155
- machineconfig/scripts/python/devops_devapps_install.py,sha256=2MZsR5aOY_z7dhgrdeffxVhq1i3kxeuthtHLpKmCA18,9333
156
- machineconfig/scripts/python/devops_update_repos.py,sha256=c5qBc9cuTGDEqDHufkjDT4d_vvJsswv3tlqk9MAulYk,8063
157
- machineconfig/scripts/python/dotfile.py,sha256=SRcX-9Ak1jRvF-killBTTm2IWcsNxfiLucH6ZsytAFA,2202
149
+ machineconfig/scripts/python/croshell.py,sha256=parFHSL859H00ExDpDBPHBFe_E_DrfVq6P8CpCGVK9A,8571
150
+ machineconfig/scripts/python/devops.py,sha256=C2aHrYJqXcvgTOam1zucWflLjUYZnNwpFrZ7ccltqXk,3428
151
+ machineconfig/scripts/python/devops_add_identity.py,sha256=wvjNgqsLmqD2SxbNCW_usqfp0LI-TDvcJJKGOWt2oFw,3775
152
+ machineconfig/scripts/python/devops_add_ssh_key.py,sha256=BXB-9RvuSZO0YTbnM2azeABW2ngLW4SKhhAGAieMzfw,6873
153
+ machineconfig/scripts/python/devops_backup_retrieve.py,sha256=JLJHmi8JmZ_qVTeMW-qBEAYGt1fmfWXzZ7Gm-Q-GDcU,5585
154
+ machineconfig/scripts/python/devops_update_repos.py,sha256=8c58RDyIOelUfxaY7CEhuV53KL9QMlFl2QCWqHuZqww,9427
155
+ machineconfig/scripts/python/dotfile.py,sha256=iaCTflkr2Tmc4FJ7ppdE-dZtvKQkmDah-OdSoxebi6s,2424
158
156
  machineconfig/scripts/python/fire_agents_help_launch.py,sha256=1ymWiszfjCyPv3ofinWzfOmbzLEt3d7ntac_afLh-V4,5017
159
157
  machineconfig/scripts/python/fire_agents_help_search.py,sha256=qIfSS_su2YJ1Gb0_lu4cbjlJlYMBw0v52NTGiSrGjk8,2991
160
158
  machineconfig/scripts/python/fire_agents_helper_types.py,sha256=zKu8Vr6iucaGSkCm_Tkt_WrYU7-6Nript3coYyzTXzY,295
161
159
  machineconfig/scripts/python/fire_agents_load_balancer.py,sha256=mpqx3uaQdBXYieuvhdK-qsvLepf9oIMo3pwPj9mSEDI,1079
162
- machineconfig/scripts/python/fire_jobs.py,sha256=CqtFt4VGtdEP0tbmRRZ-qU5G232jQj0umlS8C_qtQRM,15911
160
+ machineconfig/scripts/python/fire_jobs.py,sha256=Mg7M6pm3PvyJlnMGYas8hEVYLIJYiyy-pBiRWCGLFjQ,15895
163
161
  machineconfig/scripts/python/fire_jobs_args_helper.py,sha256=-gl5I-26Op12nToIpAA-YEpvn8MMkNlI5XjhUbj50I0,4273
164
162
  machineconfig/scripts/python/fire_jobs_route_helper.py,sha256=EFWsg6F9TeSAtYQec57WtPopUbm2euGZTUZv6J4RhNE,3026
165
163
  machineconfig/scripts/python/fire_jobs_streamlit_helper.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
166
- machineconfig/scripts/python/ftpx.py,sha256=l_gdJS0QB2wVZErubtZvm4HJD9HZAJxSP68sbY73xwo,10278
164
+ machineconfig/scripts/python/ftpx.py,sha256=QfQTp-6jQP6yxfbLc5sKxiMtTgAgc8sjN7d17_uLiZc,9400
167
165
  machineconfig/scripts/python/get_zellij_cmd.py,sha256=e35-18hoXM9N3PFbvbizfkNY_-63iMicieWE3TbGcCQ,576
168
166
  machineconfig/scripts/python/gh_models.py,sha256=3BLfW25mBRiPO5VKtVm-nMlKLv-PaZDw7mObajq6F6M,5538
169
- machineconfig/scripts/python/interactive.py,sha256=W0NIGTZb0RFyoJIcp02pToRUv_WP5F7-67AOX5N46G4,11797
170
- machineconfig/scripts/python/mount_nfs.py,sha256=5HmtsAelFSVzl8o_F9mBoKiuVNIyRHjvdqKzFJR1P64,3376
167
+ machineconfig/scripts/python/interactive.py,sha256=NHAniZPgEfhgA3higTRD3U76nHIDpZLygWebhKc6ld0,11791
168
+ machineconfig/scripts/python/mount_nfs.py,sha256=aECrL64j9g-9rF49sVJAjGmzaoGgcMnl3g9v17kQF4c,3239
171
169
  machineconfig/scripts/python/mount_nw_drive.py,sha256=iru6AtnTyvyuk6WxlK5R4lDkuliVpPV5_uBTVVhXtjQ,1550
172
- machineconfig/scripts/python/mount_ssh.py,sha256=7dYCBtkJE43rwuvhxiYzyTlJ230RFQbZOA29veYQbuU,2284
170
+ machineconfig/scripts/python/mount_ssh.py,sha256=k2fKq3f5dKq_7anrFOlqvJoI_3U4EWNHLRZ1o3Lsy6M,2268
173
171
  machineconfig/scripts/python/onetimeshare.py,sha256=bmGsNnskym5OWfIhpOfZG5jq3m89FS0a6dF5Sb8LaZM,2539
174
172
  machineconfig/scripts/python/pomodoro.py,sha256=SPkfeoZGv8rylGiOyzQ7UK3aXZ3G2FIOuGkSuBUggOI,2019
175
- machineconfig/scripts/python/repos.py,sha256=Mz-d0ubynOZaKwC6YXKiZq9ojMnKFi4J6n0UbiJYZyY,4449
176
- machineconfig/scripts/python/repos_helper_action.py,sha256=f0vFjPj9WEA361961ux3SIEg9riVGHtyuf6BnO6lnvU,13336
177
- machineconfig/scripts/python/repos_helper_clone.py,sha256=xW5YZEoNt3k7h9NIULhUhOnh53-B63eiXF2FjOl1IKQ,5535
178
- machineconfig/scripts/python/repos_helper_record.py,sha256=YEEQORfEiLddOIIgePo5eEkyQUFruFg3kc8npMvRL-o,10927
173
+ machineconfig/scripts/python/repos.py,sha256=bZKEnsMqB8ifKwmL8fL7lW94YbCtNkq6PiyR6HYFtSs,4442
174
+ machineconfig/scripts/python/repos_helper_action.py,sha256=6bQln9x2L_lOnvWwnTM_nJjkugl5LDDGHedVsz2zuI4,13320
175
+ machineconfig/scripts/python/repos_helper_clone.py,sha256=9vGb9NCXT0lkerPzOJjmFfhU8LSzE-_1LDvjkhgnal0,5461
176
+ machineconfig/scripts/python/repos_helper_record.py,sha256=I4CsIPMZR-JcUuKyyinynws0ul0xb2Lb5F1QCnS9HBY,10911
179
177
  machineconfig/scripts/python/repos_helper_update.py,sha256=AYyKIB7eQ48yoYmFjydIhRI1lV39TBv_S4_LCa-oKuQ,11042
180
178
  machineconfig/scripts/python/scheduler.py,sha256=rKhssuxkD697EY6qaV6CSdNhxpAQLDWO4fE8GMCQ9FA,3061
181
- machineconfig/scripts/python/sessions.py,sha256=moLdAPHMn90zd6blugplQ2V__xurOcMBH2WRYqRf-hA,8415
182
- machineconfig/scripts/python/share_terminal.py,sha256=biuG35YiknTMVr3Mzs4bBZwEq53JcuBRlzMTp6eY90M,5009
179
+ machineconfig/scripts/python/sessions.py,sha256=e8gL0fVWOZ5WcJsA3ZWfqJBc5c7g-rMlVf0SF63rIaU,8547
180
+ machineconfig/scripts/python/share_terminal.py,sha256=pqKnly6QRtcPmw0lLyRN6NRuK2bntM1hOdqQfw5jJnc,5324
183
181
  machineconfig/scripts/python/snapshot.py,sha256=aDvKeoniZaeTSNv9zWBUajaj2yagAxVdfuvO1_tgq5Y,1026
184
- machineconfig/scripts/python/start_slidev.py,sha256=0rVK7uQL70FAYvVk1SQ-tKRlT1fEj-5wIKCLAnM4-9M,4913
182
+ machineconfig/scripts/python/start_slidev.py,sha256=FAJ1_WkAQ7KcbRZ3cSN_72NDgV_flRrwxmXv1imyulI,4897
185
183
  machineconfig/scripts/python/start_terminals.py,sha256=DRWbMZumhPmL0DvvsCsbRNFL5AVQn1SgaziafTio3YQ,6149
186
184
  machineconfig/scripts/python/t4.py,sha256=cZ45iWzS254V5pmVvq8wCw7jAuDhzr8G2Arzay76saU,316
187
185
  machineconfig/scripts/python/viewer.py,sha256=heQNjB9fwn3xxbPgMofhv1Lp6Vtkl76YjjexWWBM0pM,2041
188
186
  machineconfig/scripts/python/viewer_template.py,sha256=ve3Q1-iKhCLc0VJijKvAeOYp2xaFOeIOC_XW956GWCc,3944
189
187
  machineconfig/scripts/python/wifi_conn.py,sha256=4GdLhgma9GRmZ6OFg3oxOX-qY3sr45njPckozlpM_A0,15566
190
- machineconfig/scripts/python/wsl_windows_transfer.py,sha256=WDZccDZwi4L8cNXqvZYWYQG4_j2SyD-qA2Bwlr4bZUc,3405
188
+ machineconfig/scripts/python/wsl_windows_transfer.py,sha256=534zlYe3Xsr0mqegAnZrVru8Fif-9jZyQK38Q90AtDo,3389
191
189
  machineconfig/scripts/python/ai/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
192
190
  machineconfig/scripts/python/ai/generate_files.py,sha256=Vfjgd0skJu-WTgqUxmOVFzaNMfSFBaFmY5oGGVY7MZY,2860
193
191
  machineconfig/scripts/python/ai/initai.py,sha256=FJriMm1-x44xx6yEnqgI-F5lfRw44xleOluv4TcRs0I,2237
@@ -217,10 +215,10 @@ machineconfig/scripts/python/ai/solutions/opencode/opencode.json,sha256=nahHKRw1
217
215
  machineconfig/scripts/python/ai/solutions/opencode/opencode.py,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
218
216
  machineconfig/scripts/python/helpers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
219
217
  machineconfig/scripts/python/helpers/cloud_helpers.py,sha256=GA-bxXouUmknk9fyQAsPT-Xl3RG9-yBed71a2tu9Pig,4914
220
- machineconfig/scripts/python/helpers/helpers2.py,sha256=ZdqeF1MLlaBRwoqsQAqnHi4b8rW0byFCBnbyCrPKkoA,7336
221
- machineconfig/scripts/python/helpers/helpers4.py,sha256=rwAy7HK1CbKQZORzQMQULSKNHj0i4jo7KbUXj3qLG9I,4765
218
+ machineconfig/scripts/python/helpers/helpers2.py,sha256=2QeQ2aii6hVc4S-oi3SVTSyPxKPTDUWBD7GnkCEr7Qs,7304
219
+ machineconfig/scripts/python/helpers/helpers4.py,sha256=iKR5vVJygaDIpFXhcdma9jOpyxKtUhmqcmalFxJmY0w,4749
222
220
  machineconfig/scripts/python/helpers/helpers5.py,sha256=dPBvA9Tcyx9TMgM6On49A1CueGMhBdRzikDnlJGf3J0,1123
223
- machineconfig/scripts/python/helpers/repo_sync_helpers.py,sha256=umN6ktxjddkraC_h8w50D72olxHcyT4kn-CUq6_C_xI,5448
221
+ machineconfig/scripts/python/helpers/repo_sync_helpers.py,sha256=7n9feSfWw1p0Nie-uWg_NTe_IiYRUjeCvaNxsZyV13s,5432
224
222
  machineconfig/scripts/windows/agents.ps1,sha256=DqdrC_Xc2rwQ6kGzT0xh5CJz4B_0p5ZwB7s8XE6rPCM,77
225
223
  machineconfig/scripts/windows/choose_wezterm_theme.ps1,sha256=LiXJ0a4LKjb6E-oH_bAg6DjegV4SqDUdiMp_svGCFlI,95
226
224
  machineconfig/scripts/windows/cloud_copy.ps1,sha256=llTFhN2uInZTcoZYZuuhJcf5Ifo5MF226I5MpOzvc3A,82
@@ -377,19 +375,19 @@ machineconfig/setup_windows/web_shortcuts/croshell.ps1,sha256=cTQnegGLGYhuFY3Yuu
377
375
  machineconfig/setup_windows/web_shortcuts/interactive.ps1,sha256=-76toOluRnxtgo6NuAHgHWMnZQT3zroeCBBLkMTd13g,522
378
376
  machineconfig/setup_windows/web_shortcuts/ssh.ps1,sha256=Tj9axEugJE7I3AQ0w1eUGLPb8ufME5jvU5S7VUjlLJE,424
379
377
  machineconfig/setup_windows/wt_and_pwsh/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
380
- machineconfig/setup_windows/wt_and_pwsh/set_wt_settings.py,sha256=D_U_q31sqyzR7QRi_FUFMYuOgVbp15VBlKc51VbFjp0,6807
378
+ machineconfig/setup_windows/wt_and_pwsh/set_wt_settings.py,sha256=ogxJnwpdcpH7N6dFJu95UCNoGYirZKQho_3X0F_hmXs,6791
381
379
  machineconfig/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
382
380
  machineconfig/utils/accessories.py,sha256=W_9dLzjwNTW5JQk_pe3B2ijQ1nA2-8Kdg2r7VBtzgQs,4340
383
- machineconfig/utils/code.py,sha256=5W6kP9SMWdApbFDq0fklI_31RWt7E9ByioxU7XX00HE,5662
384
- machineconfig/utils/installer.py,sha256=p2Mr5GQ8ZsUriV9qatXDwllBqGvYNfI-TQEKXwA8gcA,9961
381
+ machineconfig/utils/code.py,sha256=S7uY5kLPxLcLlR7B2KHeYkenlysAYSPcxFiUYHXSxX8,5646
382
+ machineconfig/utils/installer.py,sha256=xYM6tyctqLmr2lLXUKWgobTRufGIua31uspMXP4HGjY,9945
385
383
  machineconfig/utils/io.py,sha256=ZXB3aataS1IZ_0WMcCRSmoN1nbkvEO-bWYcs-TpngqU,2872
386
- machineconfig/utils/links.py,sha256=riNUrG8aGElRszdOPOic4M2AyOcpdcth_-y8JEiZpJ4,10253
384
+ machineconfig/utils/links.py,sha256=CndE3K0dRtEjp8qfjffs-DE3WzwNUJLRHikZE_dkWm0,10237
387
385
  machineconfig/utils/notifications.py,sha256=vvdsY5IX6XEiILTnt5lNyHxhCi0ljdGX2T_67VRfrG4,9009
388
386
  machineconfig/utils/options.py,sha256=8pG-apcc28xxJ5BQiACsGNTKwWtkQyH3hCtzBEhokK8,8366
389
- machineconfig/utils/path_extended.py,sha256=0Ev2BgkiruTDAYFHxsGzPvQ9EU3OGCGzx5ozZpO6UU8,53129
390
- machineconfig/utils/path_helper.py,sha256=jqOf3TAlw5cqSp4HBAlOqjAR_bzC8_fvjA-_-CooI6Y,8030
387
+ machineconfig/utils/path_extended.py,sha256=Xjdn2AVnB8p1jfNMNe2kJutVa5zGnFFJVGZbw-Bp_hg,53200
388
+ machineconfig/utils/path_helper.py,sha256=0e3Xh3BAEv27oqcezNeVLHJllGmLEgLH4T1l90m-650,8014
391
389
  machineconfig/utils/procs.py,sha256=Bm-yopmj19yiBO9tywJHEcs9rZmeRyJqbgTSe216LTU,11349
392
- machineconfig/utils/scheduler.py,sha256=bUHDviS_HE9_6LaA1k9Nnfz5rr2FJIfrk5qO2FJ-oUs,15119
390
+ machineconfig/utils/scheduler.py,sha256=pOzpOowapfC6Fl_k82JbESmLS8eh-zk4FyjJyUX1b4I,15103
393
391
  machineconfig/utils/scheduling.py,sha256=RF1iXJpqf4Dg18jdZWtBixz97KAHC6VKYqTFSpdLWuc,11188
394
392
  machineconfig/utils/source_of_truth.py,sha256=GnjcVkKm11RyZFHGnPbne5YDEBYoZ5yryBNkpfGC7O4,854
395
393
  machineconfig/utils/ssh.py,sha256=KTUp42nT4Vuh350_EvArQoR2N5iVXrc2BFld93fRUX4,20919
@@ -402,14 +400,15 @@ machineconfig/utils/cloud/onedrive/setup_oauth.py,sha256=ZTVkqgrwbV_EoPvyT8dyOTU
402
400
  machineconfig/utils/cloud/onedrive/transaction.py,sha256=m-aNcnWj_gfZVvJOSpkdIqjZxU_3nXx2CA-qKbQgP3I,26232
403
401
  machineconfig/utils/installer_utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
404
402
  machineconfig/utils/installer_utils/github_release_bulk.py,sha256=WJf_qZlF02SmIc6C7o1h4Gy4gAaJAfeAS8O9s2Itj-k,6535
405
- machineconfig/utils/installer_utils/installer_abc.py,sha256=MRVfkjCPlPgCQQcSxXdVJMVnr_9CC3SQbFVDJxWy1zI,10813
406
- machineconfig/utils/installer_utils/installer_class.py,sha256=6IQswaC9mxIdeaMG-rOt-vqyKGYibBRMvC0UglZ_3mI,20268
403
+ machineconfig/utils/installer_utils/installer.py,sha256=_XcatwArhwRepMYfaGYpjd-lqNGfijnjeZB8l4uKd-c,9266
404
+ machineconfig/utils/installer_utils/installer_abc.py,sha256=9qtFt0_gz_VgaDCCVoXNiOgR42dRF1zU9054o135vs4,10797
405
+ machineconfig/utils/installer_utils/installer_class.py,sha256=fN4Nfqn4tlSfQGW52A_Ipi6GT6utC30ZuSj5WM_yxIY,20252
407
406
  machineconfig/utils/schemas/fire_agents/fire_agents_input.py,sha256=pTxvLzIpD5RF508lUUBBkWcc4V1B10J4ylvVgVGkcM0,2037
408
407
  machineconfig/utils/schemas/installer/installer_types.py,sha256=QClRY61QaduBPJoSpdmTIdgS9LS-RvE-QZ-D260tD3o,1214
409
408
  machineconfig/utils/schemas/layouts/layout_types.py,sha256=TcqlZdGVoH8htG5fHn1KWXhRdPueAcoyApppZsPAPto,2020
410
409
  machineconfig/utils/schemas/repos/repos_types.py,sha256=ECVr-3IVIo8yjmYmVXX2mnDDN1SLSwvQIhx4KDDQHBQ,405
411
- machineconfig-4.97.dist-info/METADATA,sha256=TASblKhYFS5DONxX0YvajOjOzNPHg_WvLeSXnkgAmFI,7061
412
- machineconfig-4.97.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
413
- machineconfig-4.97.dist-info/entry_points.txt,sha256=LcwklRJPY_uKBvStgtOJn5G_pmFCEdpgRNzUUc6twAQ,1134
414
- machineconfig-4.97.dist-info/top_level.txt,sha256=porRtB8qms8fOIUJgK-tO83_FeH6Bpe12oUVC670teA,14
415
- machineconfig-4.97.dist-info/RECORD,,
410
+ machineconfig-4.99.dist-info/METADATA,sha256=7jTDJrDrm_t2IQsrlv6opGHq4FQE1ERw0lltQycI1oA,7061
411
+ machineconfig-4.99.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
412
+ machineconfig-4.99.dist-info/entry_points.txt,sha256=LcwklRJPY_uKBvStgtOJn5G_pmFCEdpgRNzUUc6twAQ,1134
413
+ machineconfig-4.99.dist-info/top_level.txt,sha256=porRtB8qms8fOIUJgK-tO83_FeH6Bpe12oUVC670teA,14
414
+ machineconfig-4.99.dist-info/RECORD,,
@@ -1,51 +0,0 @@
1
- from typing import Optional
2
- from machineconfig.utils.path_extended import PathExtended, PLike
3
-
4
-
5
- def to_cloud(
6
- localpath: PLike,
7
- cloud: str,
8
- remotepath: Optional[PLike],
9
- zip: bool = False,
10
- encrypt: bool = False,
11
- key: Optional[bytes] = None,
12
- pwd: Optional[str] = None,
13
- rel2home: bool = False,
14
- strict: bool = True,
15
- # obfuscate: bool = False,
16
- share: bool = False,
17
- verbose: bool = True,
18
- os_specific: bool = False,
19
- transfers: int = 10,
20
- root: Optional[str] = "myhome",
21
- ) -> "PathExtended":
22
- to_del = []
23
- localpath = PathExtended(localpath).expanduser().absolute() if not PathExtended(localpath).exists() else PathExtended(localpath)
24
- if zip:
25
- localpath = localpath.zip(inplace=False)
26
- to_del.append(localpath)
27
- if encrypt:
28
- localpath = localpath.encrypt(key=key, pwd=pwd, inplace=False)
29
- to_del.append(localpath)
30
- if remotepath is None:
31
- rp = localpath.get_remote_path(root=root, os_specific=os_specific, rel2home=rel2home, strict=strict) # if rel2home else (P(root) / localpath if root is not None else localpath)
32
- else:
33
- rp = PathExtended(remotepath)
34
-
35
- from rclone_python import rclone
36
-
37
- rclone.copy(localpath.as_posix(), f"{cloud}:{rp.as_posix()}", show_progress=True)
38
-
39
- if share:
40
- if verbose:
41
- print("🔗 SHARING FILE")
42
- tmp = rclone.link(f"{cloud}:{rp.as_posix()}")
43
- return PathExtended(tmp)
44
- return localpath
45
-
46
-
47
- if __name__ == "__main__":
48
- from pathlib import Path
49
-
50
- localpath = Path.home().joinpath("Downloads", "exchangeInfo")
51
- to_cloud(localpath, "odp", remotepath=None)