machineconfig 6.91__py3-none-any.whl → 6.92__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.
- machineconfig/jobs/installer/custom/hx.py +9 -8
- machineconfig/profile/create_links.py +1 -1
- machineconfig/profile/create_links_export.py +2 -2
- machineconfig/scripts/python/env_manager/path_manager_tui.py +1 -1
- machineconfig/scripts/python/helpers_devops/cli_config.py +3 -3
- machineconfig/scripts/python/helpers_devops/cli_config_dotfile.py +1 -1
- machineconfig/scripts/python/helpers_devops/cli_nw.py +11 -1
- machineconfig/scripts/python/helpers_devops/cli_self.py +3 -3
- machineconfig/scripts/python/helpers_devops/cli_share_server.py +84 -0
- machineconfig/scripts/python/helpers_repos/cloud_repo_sync.py +1 -1
- machineconfig/scripts/python/nw/mount_nfs +1 -1
- machineconfig/scripts/windows/mounts/mount_ssh.ps1 +1 -1
- machineconfig/settings/marimo/marimo.toml +1 -1
- machineconfig/settings/marimo/snippets/globalize.py +34 -0
- machineconfig/settings/shells/starship/starship.toml +16 -0
- machineconfig/setup_linux/web_shortcuts/interactive.sh +1 -1
- machineconfig/setup_windows/web_shortcuts/interactive.ps1 +1 -1
- machineconfig/utils/links.py +12 -5
- machineconfig/utils/ssh.py +1 -1
- {machineconfig-6.91.dist-info → machineconfig-6.92.dist-info}/METADATA +1 -1
- {machineconfig-6.91.dist-info → machineconfig-6.92.dist-info}/RECORD +24 -23
- {machineconfig-6.91.dist-info → machineconfig-6.92.dist-info}/WHEEL +0 -0
- {machineconfig-6.91.dist-info → machineconfig-6.92.dist-info}/entry_points.txt +0 -0
- {machineconfig-6.91.dist-info → machineconfig-6.92.dist-info}/top_level.txt +0 -0
|
@@ -20,20 +20,21 @@ config_dict: InstallerData = {
|
|
|
20
20
|
"doc": "Helix is a post-modern modal text editor.",
|
|
21
21
|
"fileNamePattern": {
|
|
22
22
|
"amd64": {
|
|
23
|
-
"linux": "
|
|
24
|
-
"macos": "
|
|
25
|
-
"windows": "
|
|
23
|
+
"linux": "helix-{version}-x86_64-linux.tar.xz",
|
|
24
|
+
"macos": "helix-{version}-x86_64-macos.tar.xz",
|
|
25
|
+
"windows": "helix-{version}-x86_64-windows.zip",
|
|
26
26
|
},
|
|
27
27
|
"arm64": {
|
|
28
|
-
"linux": "
|
|
29
|
-
"macos": "
|
|
30
|
-
"windows": "
|
|
28
|
+
"linux": "helix-{version}-arm64-linux.tar.xz",
|
|
29
|
+
"macos": "helix-{version}-arm64-macos.tar.xz",
|
|
30
|
+
"windows": "helix-{version}-arm64-windows.zip",
|
|
31
31
|
},
|
|
32
32
|
},
|
|
33
33
|
}
|
|
34
34
|
|
|
35
35
|
|
|
36
|
-
def main(version: Optional[str], install_lib: bool = False):
|
|
36
|
+
def main(installer_data: InstallerData, version: Optional[str], install_lib: bool = False):
|
|
37
|
+
_ = installer_data
|
|
37
38
|
console = Console()
|
|
38
39
|
|
|
39
40
|
console.print(Panel(f"HELIX EDITOR INSTALLER 🧬\nPlatform: {platform.system()}\nVersion: {'latest' if version is None else version}", title="Installer", expand=False))
|
|
@@ -137,4 +138,4 @@ def main(version: Optional[str], install_lib: bool = False):
|
|
|
137
138
|
|
|
138
139
|
|
|
139
140
|
if __name__ == "__main__":
|
|
140
|
-
|
|
141
|
+
pass
|
|
@@ -79,7 +79,7 @@ def read_mapper() -> MapperFileData:
|
|
|
79
79
|
|
|
80
80
|
|
|
81
81
|
def apply_mapper(mapper_data: dict[str, list[ConfigMapper]],
|
|
82
|
-
on_conflict: Literal["
|
|
82
|
+
on_conflict: Literal["throw-error", "overwriteSelfManaged", "backupSelfManaged", "overwriteDefaultPath", "backupDefaultPath"],
|
|
83
83
|
method: Literal["symlink", "copy"]
|
|
84
84
|
):
|
|
85
85
|
operation_records: list[OperationRecord] = []
|
|
@@ -4,7 +4,7 @@ from typing import Optional, Literal, Annotated
|
|
|
4
4
|
|
|
5
5
|
|
|
6
6
|
def main_public_from_parser(method: Annotated[Literal["symlink", "copy"], typer.Option(..., help="Method to use for setting up the config file.")],
|
|
7
|
-
on_conflict: Annotated[Literal["
|
|
7
|
+
on_conflict: Annotated[Literal["throw-error", "overwriteDefaultPath", "backupDefaultPath"], typer.Option(..., help="Action to take on conflict")],
|
|
8
8
|
which: Annotated[Optional[str], typer.Option(..., help="Specific items to process")] = None,
|
|
9
9
|
interactive: Annotated[bool, typer.Option(..., help="Run in interactive mode")] = False):
|
|
10
10
|
"""Terminology:
|
|
@@ -32,7 +32,7 @@ def main_public_from_parser(method: Annotated[Literal["symlink", "copy"], typer.
|
|
|
32
32
|
|
|
33
33
|
|
|
34
34
|
def main_private_from_parser(method: Annotated[Literal["symlink", "copy"], typer.Option(..., help="Method to use for linking files")],
|
|
35
|
-
on_conflict: Annotated[Literal["
|
|
35
|
+
on_conflict: Annotated[Literal["throw-error", "overwriteSelfManaged", "backupSelfManaged", "overwriteDefaultPath", "backupDefaultPath"], typer.Option(..., help="Action to take on conflict")] = "throw-error",
|
|
36
36
|
which: Annotated[Optional[str], typer.Option(..., help="Specific items to process")] = None,
|
|
37
37
|
interactive: Annotated[bool, typer.Option(..., help="Run in interactive mode")] = False):
|
|
38
38
|
from machineconfig.profile.create_links import ConfigMapper, read_mapper
|
|
@@ -7,7 +7,7 @@ import typer
|
|
|
7
7
|
|
|
8
8
|
|
|
9
9
|
def private(method: Annotated[Literal["symlink", "copy"], typer.Option(..., "--method", "-m", help="Method to use for linking files")],
|
|
10
|
-
on_conflict: Annotated[Literal["
|
|
10
|
+
on_conflict: Annotated[Literal["throw-error", "overwriteSelfManaged", "backupSelfManaged", "overwriteDefaultPath", "backupDefaultPath"], typer.Option(..., "--on-conflict", "-o", help="Action to take on conflict")] = "throw-error",
|
|
11
11
|
which: Annotated[Optional[str], typer.Option(..., "--which", "-w", help="Specific items to process")] = None,
|
|
12
12
|
interactive: Annotated[bool, typer.Option(..., "--interactive", "-ia", help="Run in interactive mode")] = False):
|
|
13
13
|
"""🔗 Manage private configuration files."""
|
|
@@ -15,7 +15,7 @@ def private(method: Annotated[Literal["symlink", "copy"], typer.Option(..., "--m
|
|
|
15
15
|
create_links_export.main_private_from_parser(method=method, on_conflict=on_conflict, which=which, interactive=interactive)
|
|
16
16
|
|
|
17
17
|
def public(method: Annotated[Literal["symlink", "copy"], typer.Option(..., "--method", "-m", help="Method to use for setting up the config file.")],
|
|
18
|
-
on_conflict: Annotated[Literal["
|
|
18
|
+
on_conflict: Annotated[Literal["throw-error", "overwriteDefaultPath", "backupDefaultPath"], typer.Option(..., "--on-conflict", "-o", help="Action to take on conflict")] = "throw-error",
|
|
19
19
|
which: Annotated[Optional[str], typer.Option(..., "--which", "-w", help="Specific items to process")] = None,
|
|
20
20
|
interactive: Annotated[bool, typer.Option(..., "--interactive", "-ia", help="Run in interactive mode")] = False):
|
|
21
21
|
"""🔗 Manage public configuration files."""
|
|
@@ -46,7 +46,7 @@ def path():
|
|
|
46
46
|
uv_with = ["textual"]
|
|
47
47
|
uv_project_dir = None
|
|
48
48
|
if not Path.home().joinpath("code/machineconfig").exists():
|
|
49
|
-
uv_with.append("machineconfig>=6.
|
|
49
|
+
uv_with.append("machineconfig>=6.92")
|
|
50
50
|
else:
|
|
51
51
|
uv_project_dir = str(Path.home().joinpath("code/machineconfig"))
|
|
52
52
|
run_shell_script(get_uv_command_executing_python_script(python_script=path.read_text(encoding="utf-8"), uv_with=uv_with, uv_project_dir=uv_project_dir)[0])
|
|
@@ -34,7 +34,7 @@ def main(
|
|
|
34
34
|
dest_path.mkdir(parents=True, exist_ok=True)
|
|
35
35
|
new_path = dest_path.joinpath(orig_path.name)
|
|
36
36
|
|
|
37
|
-
symlink_map(config_file_default_path=orig_path, self_managed_config_file_path=new_path, on_conflict="
|
|
37
|
+
symlink_map(config_file_default_path=orig_path, self_managed_config_file_path=new_path, on_conflict="throw-error")
|
|
38
38
|
|
|
39
39
|
console.print(
|
|
40
40
|
Panel(
|
|
@@ -104,8 +104,18 @@ def get_app():
|
|
|
104
104
|
nw_apps = typer.Typer(help="🔐 [n] Network subcommands", no_args_is_help=True, add_help_option=False, add_completion=False)
|
|
105
105
|
nw_apps.command(name="share-terminal", help="📡 [t] Share terminal via web browser")(cli_terminal.main)
|
|
106
106
|
nw_apps.command(name="t", help="Share terminal via web browser", hidden=True)(cli_terminal.main)
|
|
107
|
+
|
|
107
108
|
nw_apps.command(name="share-server", help="🌐 [s] Start local/global server to share files/folders via web browser", no_args_is_help=True)(cli_share_server.main)
|
|
108
109
|
nw_apps.command(name="s", help="Start local/global server to share files/folders via web browser", hidden=True, no_args_is_help=True)(cli_share_server.main)
|
|
110
|
+
|
|
111
|
+
# app = cli_share_server.get_share_file_app()
|
|
112
|
+
# nw_apps.add_typer(app, name="share-file", help="📁 [f] Share a file via relay server", no_args_is_help=True)
|
|
113
|
+
# nw_apps.add_typer(app, name="f", help="Share a file via relay server", hidden=True, no_args_is_help=True)
|
|
114
|
+
nw_apps.command(name="send", no_args_is_help=True, hidden=False, help="📁 [sx] send files from here.")(cli_share_server.share_file_send)
|
|
115
|
+
nw_apps.command(name="sx", no_args_is_help=True, hidden=True, help="📁 [sx] send files from here.")(cli_share_server.share_file_send)
|
|
116
|
+
nw_apps.command(name="receive", no_args_is_help=True, hidden=False, help="📁 [rx] receive files to here.")(cli_share_server.share_file_receive)
|
|
117
|
+
nw_apps.command(name="rx", no_args_is_help=True, hidden=True, help="📁 [rx] receive files to here.")(cli_share_server.share_file_receive)
|
|
118
|
+
|
|
109
119
|
nw_apps.command(name="install-ssh-server", help="📡 [i] Install SSH server")(install_ssh_server)
|
|
110
120
|
nw_apps.command(name="i", help="Install SSH server", hidden=True)(install_ssh_server)
|
|
111
121
|
nw_apps.command(name="add-ssh-key", help="🔑 [k] Add SSH public key to this machine", no_args_is_help=True)(add_ssh_key)
|
|
@@ -117,7 +127,7 @@ def get_app():
|
|
|
117
127
|
nw_apps.command(name="debug-ssh", help="🐛 [d] Debug SSH connection")(debug_ssh)
|
|
118
128
|
nw_apps.command(name="d", help="Debug SSH connection", hidden=True)(debug_ssh)
|
|
119
129
|
|
|
120
|
-
nw_apps.command(name="wifi-select", no_args_is_help=True, help="
|
|
130
|
+
nw_apps.command(name="wifi-select", no_args_is_help=True, help="📶 WiFi connection utility.")(wifi_select)
|
|
121
131
|
nw_apps.command(name="w", no_args_is_help=True, hidden=True)(wifi_select)
|
|
122
132
|
|
|
123
133
|
return nw_apps
|
|
@@ -48,9 +48,9 @@ def install(no_copy_assets: Annotated[bool, typer.Option("--no-assets-copy", "-n
|
|
|
48
48
|
else:
|
|
49
49
|
import platform
|
|
50
50
|
if platform.system() == "Windows":
|
|
51
|
-
run_shell_script(r"""& "$HOME\.local\bin\uv.exe" tool install --upgrade "machineconfig>=6.
|
|
51
|
+
run_shell_script(r"""& "$HOME\.local\bin\uv.exe" tool install --upgrade "machineconfig>=6.92" """)
|
|
52
52
|
else:
|
|
53
|
-
run_shell_script("""$HOME/.local/bin/uv tool install --upgrade "machineconfig>=6.
|
|
53
|
+
run_shell_script("""$HOME/.local/bin/uv tool install --upgrade "machineconfig>=6.92" """)
|
|
54
54
|
from machineconfig.profile.create_shell_profile import create_default_shell_profile
|
|
55
55
|
if not no_copy_assets:
|
|
56
56
|
create_default_shell_profile() # involves copying assets too
|
|
@@ -75,7 +75,7 @@ def navigate():
|
|
|
75
75
|
path = Path(navigator.__file__).resolve().parent.joinpath("devops_navigator.py")
|
|
76
76
|
from machineconfig.utils.code import run_shell_script
|
|
77
77
|
if Path.home().joinpath("code/machineconfig").exists(): executable = f"""--project "{str(Path.home().joinpath("code/machineconfig"))}" --with textual"""
|
|
78
|
-
else: executable = """--with "machineconfig>=6.
|
|
78
|
+
else: executable = """--with "machineconfig>=6.92,textual" """
|
|
79
79
|
run_shell_script(f"""uv run {executable} {path}""")
|
|
80
80
|
|
|
81
81
|
|
|
@@ -96,6 +96,90 @@ def main(
|
|
|
96
96
|
p.wait()
|
|
97
97
|
|
|
98
98
|
|
|
99
|
+
def share_file_send(path: Annotated[str, typer.Argument(help="Path to the file or directory to send")]) -> None:
|
|
100
|
+
"""Send a file using croc with relay server."""
|
|
101
|
+
from machineconfig.utils.installer_utils.installer import install_if_missing
|
|
102
|
+
install_if_missing(which="croc")
|
|
103
|
+
# Get relay server IP from environment or use default
|
|
104
|
+
import socket
|
|
105
|
+
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
|
|
106
|
+
s.connect(('8.8.8.8',80))
|
|
107
|
+
local_ip_v4 = s.getsockname()[0]
|
|
108
|
+
s.close()
|
|
109
|
+
relay_port = "443"
|
|
110
|
+
import subprocess
|
|
111
|
+
cmd = f"croc --relay {local_ip_v4}:{relay_port} send {path}"
|
|
112
|
+
typer.echo(f"🚀 Sending file: {path}. Use: devops network f")
|
|
113
|
+
subprocess.run(cmd, shell=True)
|
|
114
|
+
|
|
115
|
+
|
|
116
|
+
def share_file_receive(code: Annotated[str, typer.Argument(help="Receive code (format: '7121-donor-olympic-bicycle' or full relay string)")]) -> None:
|
|
117
|
+
"""Receive a file using croc with relay server.
|
|
118
|
+
On the other computer run:
|
|
119
|
+
(For Windows)
|
|
120
|
+
croc --relay 10.17.62.206:443 0782-paris-pencil-torso
|
|
121
|
+
(For Linux/macOS)
|
|
122
|
+
CROC_SECRET="0782-paris-pencil-torso" croc --relay 10.17.62.206:443 """
|
|
123
|
+
from machineconfig.utils.installer_utils.installer import install_if_missing
|
|
124
|
+
install_if_missing(which="croc")
|
|
125
|
+
import subprocess
|
|
126
|
+
import os
|
|
127
|
+
import platform
|
|
128
|
+
import re
|
|
129
|
+
|
|
130
|
+
env = os.environ.copy()
|
|
131
|
+
is_windows = platform.system() == "Windows"
|
|
132
|
+
|
|
133
|
+
# Parse input to extract components
|
|
134
|
+
secret_code: str | None = None
|
|
135
|
+
relay_server: str | None = None
|
|
136
|
+
|
|
137
|
+
# Check if it's Linux/macOS format with CROC_SECRET
|
|
138
|
+
linux_match = re.match(r'CROC_SECRET\s*=\s*["\']?([^"\']+)["\']?\s+croc\s+--relay\s+(\S+)(?:\s+--yes)?', code)
|
|
139
|
+
if linux_match:
|
|
140
|
+
secret_code = linux_match.group(1)
|
|
141
|
+
relay_server = linux_match.group(2)
|
|
142
|
+
else:
|
|
143
|
+
# Check if it's Windows format or partial command
|
|
144
|
+
windows_match = re.match(r'(?:croc\s+)?(?:--relay\s+(\S+)\s+)?([a-z0-9-]+(?:-[a-z0-9-]+){3})(?:\s+--yes)?', code, re.IGNORECASE)
|
|
145
|
+
if windows_match:
|
|
146
|
+
relay_server = windows_match.group(1)
|
|
147
|
+
secret_code = windows_match.group(2)
|
|
148
|
+
else:
|
|
149
|
+
# Fallback: treat entire code as secret if it looks like a code
|
|
150
|
+
code_pattern = r'^[a-z0-9-]+(?:-[a-z0-9-]+){3}$'
|
|
151
|
+
if re.match(code_pattern, code.strip(), re.IGNORECASE):
|
|
152
|
+
secret_code = code.strip()
|
|
153
|
+
|
|
154
|
+
if not secret_code:
|
|
155
|
+
raise ValueError(f"Could not parse croc code from input: {code}")
|
|
156
|
+
|
|
157
|
+
# Build the appropriate command for current OS
|
|
158
|
+
if is_windows:
|
|
159
|
+
# Windows format: croc --relay server:port secret-code --yes
|
|
160
|
+
cmd = "croc"
|
|
161
|
+
if relay_server:
|
|
162
|
+
cmd += f" --relay {relay_server}"
|
|
163
|
+
cmd += f" {secret_code} --yes"
|
|
164
|
+
else:
|
|
165
|
+
# Linux/macOS format: CROC_SECRET="secret-code" croc --relay server:port --yes
|
|
166
|
+
env["CROC_SECRET"] = secret_code
|
|
167
|
+
cmd = "croc"
|
|
168
|
+
if relay_server:
|
|
169
|
+
cmd += f" --relay {relay_server}"
|
|
170
|
+
cmd += " --yes"
|
|
171
|
+
|
|
172
|
+
subprocess.run(cmd, shell=True, env=env)
|
|
173
|
+
|
|
174
|
+
|
|
175
|
+
def get_share_file_app():
|
|
176
|
+
app = typer.Typer(name="share-file", help="Send or receive files using croc with relay server.")
|
|
177
|
+
app.command(name="send", no_args_is_help=True, hidden=False, help="[s] send files from here.")(share_file_send)
|
|
178
|
+
app.command(name="s", no_args_is_help=True, hidden=True, help="[s] send files from here.")(share_file_send)
|
|
179
|
+
app.command(name="receive", no_args_is_help=True, hidden=False, help="[r] receive files to here.")(share_file_receive)
|
|
180
|
+
app.command(name="r", no_args_is_help=True, hidden=True, help="[r] receive files to here.")(share_file_receive)
|
|
181
|
+
return app
|
|
182
|
+
|
|
99
183
|
def main_with_parser():
|
|
100
184
|
typer.run(main)
|
|
101
185
|
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
# mkdir ~/data/local
|
|
6
6
|
# sudo mount -o nolock,noatime,nodiratime,proto=tcp,timeo=600,retrans=2,noac alex-p51s-5:/home/alex/data/local ./data/local
|
|
7
7
|
|
|
8
|
-
uv run --python 3.14 --with "machineconfig>=6.
|
|
8
|
+
uv run --python 3.14 --with "machineconfig>=6.92" python -m machineconfig.scripts.python.mount_nfs
|
|
9
9
|
# Check if remote server is reachable and share folder exists
|
|
10
10
|
if ! ping -c 1 "$remote_server" &> /dev/null; then
|
|
11
11
|
echo "💥 Error: Remote server $remote_server is not reachable."
|
|
@@ -7,7 +7,7 @@ $user = ''
|
|
|
7
7
|
$sharePath = ''
|
|
8
8
|
$driveLetter = ''
|
|
9
9
|
|
|
10
|
-
uv run --python 3.14 --with "machineconfig>=6.
|
|
10
|
+
uv run --python 3.14 --with "machineconfig>=6.92" python -m machineconfig.scripts.python.mount_ssh
|
|
11
11
|
|
|
12
12
|
net use T: \\sshfs.kr\$user@$host.local
|
|
13
13
|
# this worked: net use T: \\sshfs\alex@alex-p51s-5.local
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import marimo
|
|
2
|
+
from typing import Any
|
|
3
|
+
from types import FunctionType
|
|
4
|
+
|
|
5
|
+
app = marimo.App(width="full")
|
|
6
|
+
|
|
7
|
+
@app.cell(hide_code=True)
|
|
8
|
+
def _(mo: Any):
|
|
9
|
+
mo.md(r"""# Globalize Lambda to Python Script""")
|
|
10
|
+
return
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
@app.cell
|
|
14
|
+
def _(func: FunctionType):
|
|
15
|
+
# Your snippet code
|
|
16
|
+
from machineconfig.utils.meta import lambda_to_python_script
|
|
17
|
+
exec(
|
|
18
|
+
lambda_to_python_script(
|
|
19
|
+
lambda: func(),
|
|
20
|
+
in_global=True,
|
|
21
|
+
import_module=False,
|
|
22
|
+
),
|
|
23
|
+
)
|
|
24
|
+
return
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
@app.cell
|
|
28
|
+
def _():
|
|
29
|
+
import marimo as mo
|
|
30
|
+
return (mo,)
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
if __name__ == "__main__":
|
|
34
|
+
app.run()
|
|
@@ -56,3 +56,19 @@ nu_indicator = ''
|
|
|
56
56
|
unknown_indicator = 'mystery shell'
|
|
57
57
|
style = 'cyan bold'
|
|
58
58
|
disabled = false
|
|
59
|
+
|
|
60
|
+
|
|
61
|
+
[git_branch]
|
|
62
|
+
disabled = true
|
|
63
|
+
|
|
64
|
+
[git_commit]
|
|
65
|
+
disabled = true
|
|
66
|
+
|
|
67
|
+
[git_state]
|
|
68
|
+
disabled = true
|
|
69
|
+
|
|
70
|
+
[git_status]
|
|
71
|
+
disabled = true
|
|
72
|
+
|
|
73
|
+
[git_metrics]
|
|
74
|
+
disabled = true
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
#!/bin/bash
|
|
2
2
|
. <( curl -sSL "https://raw.githubusercontent.com/thisismygitrepo/machineconfig/main/src/machineconfig/setup_linux/uv.sh")
|
|
3
3
|
mcfg() {
|
|
4
|
-
"$HOME/.local/bin/uv" run --python 3.14 --with "machineconfig>=6.
|
|
4
|
+
"$HOME/.local/bin/uv" run --python 3.14 --with "machineconfig>=6.92" mcfg "$@"
|
|
5
5
|
}
|
|
6
6
|
alias d="mcfg devops"
|
|
7
7
|
alias c="mcfg cloud"
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
iex (iwr "https://raw.githubusercontent.com/thisismygitrepo/machineconfig/main/src/machineconfig/setup_windows/uv.ps1").Content
|
|
4
4
|
function mcfg {
|
|
5
|
-
& "$HOME\.local\bin\uv.exe" run --python 3.14 --with "machineconfig>=6.
|
|
5
|
+
& "$HOME\.local\bin\uv.exe" run --python 3.14 --with "machineconfig>=6.92" mcfg $args
|
|
6
6
|
}
|
|
7
7
|
function d { mcfg devops @args }
|
|
8
8
|
function c { mcfg cloud @args }
|
machineconfig/utils/links.py
CHANGED
|
@@ -96,14 +96,14 @@ def build_links(target_paths: list[tuple[PLike, str]], repo_root: PLike):
|
|
|
96
96
|
|
|
97
97
|
|
|
98
98
|
def symlink_map(config_file_default_path: PathExtended, self_managed_config_file_path: PathExtended,
|
|
99
|
-
on_conflict: Literal["
|
|
99
|
+
on_conflict: Literal["throw-error", "overwriteSelfManaged", "backupSelfManaged", "overwriteDefaultPath", "backupDefaultPath"]
|
|
100
100
|
) -> OperationResult:
|
|
101
101
|
"""helper function. creates a symlink from `config_file_default_path` to `self_managed_config_file_path`.
|
|
102
102
|
|
|
103
103
|
Returns a dict with 'action' and 'details' keys describing what was done.
|
|
104
104
|
|
|
105
105
|
on_conflict strategies:
|
|
106
|
-
-
|
|
106
|
+
- throw-error: Raise exception when files differ
|
|
107
107
|
- overwriteSelfManaged: Delete self_managed_config_file_path (self-managed), move config_file_default_path to self_managed_config_file_path, create symlink
|
|
108
108
|
- backupSelfManaged: Backup self_managed_config_file_path (self-managed), move config_file_default_path to self_managed_config_file_path, create symlink
|
|
109
109
|
- overwriteDefaultPath: Delete config_file_default_path (default path), create symlink to self_managed_config_file_path
|
|
@@ -162,7 +162,14 @@ def symlink_map(config_file_default_path: PathExtended, self_managed_config_file
|
|
|
162
162
|
config_file_default_path.delete(sure=True)
|
|
163
163
|
else:
|
|
164
164
|
# Files are different, use on_conflict strategy
|
|
165
|
-
if on_conflict == "
|
|
165
|
+
if on_conflict == "throw-error":
|
|
166
|
+
import subprocess
|
|
167
|
+
command = f"""delta --side-by-side "{config_file_default_path}" "{self_managed_config_file_path}" """
|
|
168
|
+
try:
|
|
169
|
+
console.print(Panel(f"🆘 CONFLICT DETECTED | Showing diff between {config_file_default_path} and {self_managed_config_file_path}", title="Conflict Detected", expand=False))
|
|
170
|
+
subprocess.run(command, shell=True, check=True)
|
|
171
|
+
except Exception:
|
|
172
|
+
console.print(Panel("⚠️ Could not show diff using 'delta'. Please install 'delta' for better diff visualization.", title="Delta Not Found", expand=False))
|
|
166
173
|
raise RuntimeError(f"Conflict detected: {config_file_default_path} and {self_managed_config_file_path} both exist with different content")
|
|
167
174
|
elif on_conflict == "overwriteSelfManaged":
|
|
168
175
|
action_taken = "backing_up_target"
|
|
@@ -235,7 +242,7 @@ def symlink_map(config_file_default_path: PathExtended, self_managed_config_file
|
|
|
235
242
|
return {"action": action_taken, "details": details}
|
|
236
243
|
|
|
237
244
|
|
|
238
|
-
def copy_map(config_file_default_path: PathExtended, self_managed_config_file_path: PathExtended, on_conflict: Literal["
|
|
245
|
+
def copy_map(config_file_default_path: PathExtended, self_managed_config_file_path: PathExtended, on_conflict: Literal["throw-error", "overwriteSelfManaged", "backupSelfManaged", "overwriteDefaultPath", "backupDefaultPath"]) -> OperationResult:
|
|
239
246
|
config_file_default_path = PathExtended(config_file_default_path).expanduser().absolute()
|
|
240
247
|
self_managed_config_file_path = PathExtended(self_managed_config_file_path).expanduser().absolute()
|
|
241
248
|
|
|
@@ -283,7 +290,7 @@ def copy_map(config_file_default_path: PathExtended, self_managed_config_file_pa
|
|
|
283
290
|
else:
|
|
284
291
|
# Files are different, use on_conflict strategy
|
|
285
292
|
match on_conflict:
|
|
286
|
-
case "
|
|
293
|
+
case "throw-error":
|
|
287
294
|
raise RuntimeError(f"Conflict detected: {config_file_default_path} and {self_managed_config_file_path} both exist with different content")
|
|
288
295
|
case "overwriteSelfManaged":
|
|
289
296
|
action_taken = "backing_up_target"
|
machineconfig/utils/ssh.py
CHANGED
|
@@ -8,7 +8,7 @@ from machineconfig.utils.terminal import Response
|
|
|
8
8
|
from machineconfig.utils.accessories import pprint, randstr
|
|
9
9
|
from machineconfig.utils.meta import lambda_to_python_script
|
|
10
10
|
UV_RUN_CMD = "$HOME/.local/bin/uv run" if platform.system() != "Windows" else """& "$env:USERPROFILE/.local/bin/uv" run"""
|
|
11
|
-
MACHINECONFIG_VERSION = "machineconfig>=6.
|
|
11
|
+
MACHINECONFIG_VERSION = "machineconfig>=6.92"
|
|
12
12
|
DEFAULT_PICKLE_SUBDIR = "tmp_results/tmp_scripts/ssh"
|
|
13
13
|
|
|
14
14
|
class SSH:
|
|
@@ -55,7 +55,7 @@ machineconfig/jobs/installer/installer_data.json,sha256=hF8J7-jMOZCOSFMUuko9nIsF
|
|
|
55
55
|
machineconfig/jobs/installer/package_groups.py,sha256=CvSJogQgnz5HZfGS9DoCoPfmv0qUinLfh76zw4x58Q8,5262
|
|
56
56
|
machineconfig/jobs/installer/custom/boxes.py,sha256=ws8QRbDn48oKhbQntr54I0nSfkwINbprjTy0HOpuX40,1974
|
|
57
57
|
machineconfig/jobs/installer/custom/gh.py,sha256=gn7TUSrsLx7uqFqj1Z-iYglS0EYBSgtJ9jWHxaJIfXM,4119
|
|
58
|
-
machineconfig/jobs/installer/custom/hx.py,sha256=
|
|
58
|
+
machineconfig/jobs/installer/custom/hx.py,sha256=QoTdAtr1AoqQO2bJqyVAZY8kjyWzVBbtUTj6hSd1wOY,5959
|
|
59
59
|
machineconfig/jobs/installer/custom_dev/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
60
60
|
machineconfig/jobs/installer/custom_dev/alacritty.py,sha256=STXertp5pE6VVhcjAfZSKBxAC94S2HAzas646jwd4ow,2754
|
|
61
61
|
machineconfig/jobs/installer/custom_dev/brave.py,sha256=kHgGRwgKrvpIlGzmdnWO6HJnSrnj8RlBEV_1Zz4s_Hw,2829
|
|
@@ -94,8 +94,8 @@ machineconfig/profile/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3h
|
|
|
94
94
|
machineconfig/profile/backup.toml,sha256=Hb25sIdKVvLqOF62NgiOpGZxd45I6IhsNHu623RtfQQ,766
|
|
95
95
|
machineconfig/profile/bash_shell_profiles.md,sha256=mio0xkMTwO-F3fikWIfgcdQaPCmQrmkxJMNtZsTe9TI,514
|
|
96
96
|
machineconfig/profile/create_helper.py,sha256=_iNeuwmcEGTx6sf_f40JKHfOCuJRZQRpyE8Fo_3Q6bI,1519
|
|
97
|
-
machineconfig/profile/create_links.py,sha256=
|
|
98
|
-
machineconfig/profile/create_links_export.py,sha256=
|
|
97
|
+
machineconfig/profile/create_links.py,sha256=Zz9gDtL1C33uQdBzXLMPWq8-7_OklyPQ3FQRsueWO-k,14220
|
|
98
|
+
machineconfig/profile/create_links_export.py,sha256=n5GKQZGd0YytW_YVuau_SL7CTDWuNEe4O9x1yEsHGv8,3297
|
|
99
99
|
machineconfig/profile/create_shell_profile.py,sha256=fib3YOj4QMV4dy7ysJtSzner1x-0nGtnGvnTKGyq578,10280
|
|
100
100
|
machineconfig/profile/mapper.toml,sha256=CGGKi4VbRo1-AuHU7w1g94NbAys0pxn6fI-2l-lUmY0,12469
|
|
101
101
|
machineconfig/profile/records/generic/shares.toml,sha256=FduDztfyQtZcr5bfx-RSKhEEweweQSWfVXkKWnx8hCY,143
|
|
@@ -162,7 +162,7 @@ machineconfig/scripts/python/ai/solutions/opencode/opencode.json,sha256=nahHKRw1
|
|
|
162
162
|
machineconfig/scripts/python/ai/solutions/opencode/opencode.py,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
|
|
163
163
|
machineconfig/scripts/python/env_manager/__init__.py,sha256=E4LAHbU1wo2dLjE36ntv8U7QNTe8TasujUAYK9SLvWk,6
|
|
164
164
|
machineconfig/scripts/python/env_manager/path_manager_backend.py,sha256=ZVGlGJALhg7zNABDdwXxL7MFbL2BXPebObipXSLGbic,1552
|
|
165
|
-
machineconfig/scripts/python/env_manager/path_manager_tui.py,sha256=
|
|
165
|
+
machineconfig/scripts/python/env_manager/path_manager_tui.py,sha256=OeBwVcNEx17Fh7ARc4hFCEC4kdzqSfWyyO6hZ_dbGnw,6932
|
|
166
166
|
machineconfig/scripts/python/helpers_agents/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
167
167
|
machineconfig/scripts/python/helpers_agents/fire_agents_help_launch.py,sha256=YD6-rtudHNip8tx85amSmOZZIHBP9khq4az3dF41j6U,5934
|
|
168
168
|
machineconfig/scripts/python/helpers_agents/fire_agents_help_search.py,sha256=qIfSS_su2YJ1Gb0_lu4cbjlJlYMBw0v52NTGiSrGjk8,2991
|
|
@@ -192,13 +192,13 @@ machineconfig/scripts/python/helpers_croshell/start_slidev.py,sha256=HfJReOusTPh
|
|
|
192
192
|
machineconfig/scripts/python/helpers_croshell/viewer.py,sha256=heQNjB9fwn3xxbPgMofhv1Lp6Vtkl76YjjexWWBM0pM,2041
|
|
193
193
|
machineconfig/scripts/python/helpers_croshell/viewer_template.py,sha256=ve3Q1-iKhCLc0VJijKvAeOYp2xaFOeIOC_XW956GWCc,3944
|
|
194
194
|
machineconfig/scripts/python/helpers_devops/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
195
|
-
machineconfig/scripts/python/helpers_devops/cli_config.py,sha256=
|
|
196
|
-
machineconfig/scripts/python/helpers_devops/cli_config_dotfile.py,sha256=
|
|
195
|
+
machineconfig/scripts/python/helpers_devops/cli_config.py,sha256=QygQk1aH_n1vzLMmMcsXGsBtQu0F3aY0CTrW9wmAH9A,7222
|
|
196
|
+
machineconfig/scripts/python/helpers_devops/cli_config_dotfile.py,sha256=dduLPmaxOU9eOOy76QTG8Yzi5WQdewbiJ8X615Z19wk,2487
|
|
197
197
|
machineconfig/scripts/python/helpers_devops/cli_data.py,sha256=79Xvx7YnbueruEnl69hrDg2AhVxf_zCUdlVcKfeMGyQ,1774
|
|
198
|
-
machineconfig/scripts/python/helpers_devops/cli_nw.py,sha256=
|
|
198
|
+
machineconfig/scripts/python/helpers_devops/cli_nw.py,sha256=9NcVJvPYaUDtmI_DSKthZxR4emMBeNWVM_M5f0YR8EQ,7302
|
|
199
199
|
machineconfig/scripts/python/helpers_devops/cli_repos.py,sha256=Xwkv1adqHZvTfRSPWiqSK3PZ1XADyx3llw_YkbxaKyE,12505
|
|
200
|
-
machineconfig/scripts/python/helpers_devops/cli_self.py,sha256=
|
|
201
|
-
machineconfig/scripts/python/helpers_devops/cli_share_server.py,sha256=
|
|
200
|
+
machineconfig/scripts/python/helpers_devops/cli_self.py,sha256=ijJgwxakmij26kcir7Zem54UHiD2PEoFFhmcj6OC9XM,6621
|
|
201
|
+
machineconfig/scripts/python/helpers_devops/cli_share_server.py,sha256=reQNORPFuqGPho_5pcXPRwKp-7lcKk4u4GqwkTW_KFM,7859
|
|
202
202
|
machineconfig/scripts/python/helpers_devops/cli_terminal.py,sha256=k_PzXaiGyE0vXr0Ii1XcJz2A7UvyPJrR31TRWt4RKRI,6019
|
|
203
203
|
machineconfig/scripts/python/helpers_devops/cli_utils.py,sha256=B9pnosujOxZLpwzJO4YAqeO-2rvvOFIZgrUwGREZXfM,11118
|
|
204
204
|
machineconfig/scripts/python/helpers_devops/devops_backup_retrieve.py,sha256=Dn8luB6QJzxKiiFSC-NMqiYddWZoca3A8eOjMYZDzTc,5598
|
|
@@ -225,7 +225,7 @@ machineconfig/scripts/python/helpers_navigator/search_bar.py,sha256=kDi8Jhxap8wd
|
|
|
225
225
|
machineconfig/scripts/python/helpers_repos/action.py,sha256=8je051kpGZ7A_GRsQyWKhPZ8xVW7tSm4bnPu6VjxaXk,9755
|
|
226
226
|
machineconfig/scripts/python/helpers_repos/action_helper.py,sha256=XRCtkGkNrxauqUd9qkxtfJt02Mx2gejSYDLL0jyWn24,6176
|
|
227
227
|
machineconfig/scripts/python/helpers_repos/clone.py,sha256=UULEG5xJuXlPGU0nqXH6U45jA9DOFqLw8B4iPytCwOQ,5471
|
|
228
|
-
machineconfig/scripts/python/helpers_repos/cloud_repo_sync.py,sha256=
|
|
228
|
+
machineconfig/scripts/python/helpers_repos/cloud_repo_sync.py,sha256=YpRZ7WxCVINHUglX7VMukOEmty20x1xGFb6Sl554JNk,10450
|
|
229
229
|
machineconfig/scripts/python/helpers_repos/count_lines.py,sha256=Q5c7b-DxvTlQmljoic7niTuiAVyFlwYvkVQ7uRJHiTo,16009
|
|
230
230
|
machineconfig/scripts/python/helpers_repos/count_lines_frontend.py,sha256=vSDtrF4829jziwp6WZmGt9G8MJ9jY4hfXqtf0vhkYSE,607
|
|
231
231
|
machineconfig/scripts/python/helpers_repos/entrypoint.py,sha256=WYEFGUJp9HWImlFjbs_hiFZrUqM_KEYm5VvSUjWd04I,2810
|
|
@@ -241,7 +241,7 @@ machineconfig/scripts/python/nw/add_ssh_key.py,sha256=9JLmWu8pE7PAL5VuCFd19iVEdC
|
|
|
241
241
|
machineconfig/scripts/python/nw/devops_add_identity.py,sha256=aPjcHbTLhxYwWYcandyAHdwuO15ZBu3fB82u6bI0tMQ,3773
|
|
242
242
|
machineconfig/scripts/python/nw/devops_add_ssh_key.py,sha256=CkIl85hZLtG9k7yXLSzqi88YrilHV4hIUWHAPBwxWjw,8922
|
|
243
243
|
machineconfig/scripts/python/nw/mount_drive,sha256=zemKofv7hOmRN_V3qK0q580GkfWw3VdikyVVQyiu8j8,3514
|
|
244
|
-
machineconfig/scripts/python/nw/mount_nfs,sha256=
|
|
244
|
+
machineconfig/scripts/python/nw/mount_nfs,sha256=x5_rKgP2Kza6LHCHFJqE0Ej___aUXHs-AwzcIlhYY-g,1855
|
|
245
245
|
machineconfig/scripts/python/nw/mount_nfs.py,sha256=lOMDY4RS7tx8gsCazVR5tNNwFbaRyO2PJlnwBCDQgCM,3573
|
|
246
246
|
machineconfig/scripts/python/nw/mount_nw_drive,sha256=BqjGBCbwe5ZAsZDO3L0zHhh_gJfZy1CYOcqXA4Y-WkQ,2262
|
|
247
247
|
machineconfig/scripts/python/nw/mount_nw_drive.py,sha256=iru6AtnTyvyuk6WxlK5R4lDkuliVpPV5_uBTVVhXtjQ,1550
|
|
@@ -260,7 +260,7 @@ machineconfig/scripts/windows/term.ps1,sha256=nme_OWis84qN-zI2c0rdysNcDIdoaEKajX
|
|
|
260
260
|
machineconfig/scripts/windows/mounts/mount_nfs.ps1,sha256=XrAdzpxE6a4OccSmWJ7YWHJTnsZK8uXnFE5j9GOPA20,2026
|
|
261
261
|
machineconfig/scripts/windows/mounts/mount_nw.ps1,sha256=puxcfZc3ZCJerm8pj8OZGVoTYkhzp-h7oV-MrksSqIE,454
|
|
262
262
|
machineconfig/scripts/windows/mounts/mount_smb.ps1,sha256=PzYWpIO9BpwXjdWlUQL9pnMRnOGNSkxfh4bHukJFme8,69
|
|
263
|
-
machineconfig/scripts/windows/mounts/mount_ssh.ps1,sha256=
|
|
263
|
+
machineconfig/scripts/windows/mounts/mount_ssh.ps1,sha256=OijoiRRMdxQUKD-spVh_FDdISxj9At5_oeNrUv8Iwug,322
|
|
264
264
|
machineconfig/scripts/windows/mounts/share_cloud.cmd,sha256=exD7JCdxw2LqVjw2MKCYHbVZlEqmelXtwnATng-dhJ4,1028
|
|
265
265
|
machineconfig/scripts/windows/mounts/share_smb.ps1,sha256=U7x8ULYSjbgzTtiHNSKQuTaZ_apilDvkGV5Xm5hXk5M,384
|
|
266
266
|
machineconfig/scripts/windows/mounts/unlock_bitlocker.ps1,sha256=Wv-SLscdckV-1mG3p82VXKPY9zW3hgkRmcLUXIZ1daE,253
|
|
@@ -320,7 +320,8 @@ machineconfig/settings/lvim/linux/config.lua,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRk
|
|
|
320
320
|
machineconfig/settings/lvim/windows/config.lua,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
321
321
|
machineconfig/settings/lvim/windows/archive/config_additional.lua,sha256=EM__UsSkXDIIN7tIdMV-tkQV4z_jUmDCmHhjamEyiUA,651
|
|
322
322
|
machineconfig/settings/lvim/windows/lua/user/custom_config.lua,sha256=wbSm8cZubnPfUhYDmd5HKYnVRZUYVj701FBax2ZgjtE,269
|
|
323
|
-
machineconfig/settings/marimo/marimo.toml,sha256=
|
|
323
|
+
machineconfig/settings/marimo/marimo.toml,sha256=tqEKoinBB4KpbOhqMbSjRhNAudpGiT1AvY05f3P2clc,1356
|
|
324
|
+
machineconfig/settings/marimo/snippets/globalize.py,sha256=HAS8A-gm1bW0rO7tF8SSvuE5bJMksfIpgNpMThAfzq4,600
|
|
324
325
|
machineconfig/settings/mprocs/windows/mprocs.yaml,sha256=qn_bPy8eSWMAlhA9PLVO_vxqlSlzzrQ1CldFjSKpLD4,864
|
|
325
326
|
machineconfig/settings/mprocs/windows/other,sha256=gIRC6swgxOmXAWEJPCOKmAdDfmLQ2-Vh9A1vsj0atAY,276
|
|
326
327
|
machineconfig/settings/pistol/pistol.conf,sha256=zjhSJDA3X1TDLRfimnVgJT_Dt54lDJc5hlTBB649d5A,378
|
|
@@ -341,7 +342,7 @@ machineconfig/settings/shells/nushell/config.nu,sha256=xtko80MPteDXuOJmwJHNFhXmf
|
|
|
341
342
|
machineconfig/settings/shells/nushell/env.nu,sha256=4VmaXb-qP6qnMD5TPzkXMLFNlB5QC4l9HEzCvXZE2GQ,315
|
|
342
343
|
machineconfig/settings/shells/pwsh/init.ps1,sha256=F4rcihit8wkTY28uM2lTpAnLhtYylH1oX2-JBVwU7jk,2758
|
|
343
344
|
machineconfig/settings/shells/pwsh/profile.ps1,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
344
|
-
machineconfig/settings/shells/starship/starship.toml,sha256=
|
|
345
|
+
machineconfig/settings/shells/starship/starship.toml,sha256=d5lWKC0AnTcriRAZV1opEZy76QknSpKFgJ3jyW9_vZ0,1305
|
|
345
346
|
machineconfig/settings/shells/vtm/settings.xml,sha256=5TNXd-i0eUGo2w3tuhY9aOkwoJdqih8_HO_U6uL2Dts,18262
|
|
346
347
|
machineconfig/settings/shells/wezterm/wezterm.lua,sha256=ZaUFqVNibGD5cyzlnYhIMAakTig6P7qggi5hvHGASPk,6210
|
|
347
348
|
machineconfig/settings/shells/wt/settings.json,sha256=G3MzbSfkNDoCbFfKKuS5wuSWsMff4oj6s6m-iXryNz8,10353
|
|
@@ -377,7 +378,7 @@ machineconfig/setup_linux/others/cli_installation.sh,sha256=gVvszYZJgKPRJx2SEaE3
|
|
|
377
378
|
machineconfig/setup_linux/others/mint_keyboard_shortcuts.sh,sha256=F5dbg0n9RHsKGPn8fIdZMn3p0RrHEkb8rWBGsdVGbus,1207
|
|
378
379
|
machineconfig/setup_linux/ssh/openssh_all.sh,sha256=3dg6HEUFbHQOzLfSAtzK_D_GB8rGCCp_aBnxNdnidVc,824
|
|
379
380
|
machineconfig/setup_linux/ssh/openssh_wsl.sh,sha256=1eeRGrloVB34K5z8yWVUMG5b9pV-WBfHgV9jqXiYgCQ,1398
|
|
380
|
-
machineconfig/setup_linux/web_shortcuts/interactive.sh,sha256=
|
|
381
|
+
machineconfig/setup_linux/web_shortcuts/interactive.sh,sha256=_wP2n9nlndOZeQXngmzXvTJqevcnZzE-JTk3s7ezcrI,488
|
|
381
382
|
machineconfig/setup_mac/__init__.py,sha256=Q1waupi5vCBroLqc8Rtnw69_7jLnm2Cs7_zH_GSZgMs,616
|
|
382
383
|
machineconfig/setup_mac/apps.sh,sha256=R0N6fBwLCzwy4qAormyMerXXXrHazibSkY6NrNOpTQU,2772
|
|
383
384
|
machineconfig/setup_mac/apps_gui.sh,sha256=3alvddg918oMlJB2aUWJWpGGoaq5atlxcaOwhnyXlRI,9517
|
|
@@ -392,7 +393,7 @@ machineconfig/setup_windows/others/power_options.ps1,sha256=c7Hn94jBD5GWF29CxMhm
|
|
|
392
393
|
machineconfig/setup_windows/ssh/add-sshkey.ps1,sha256=qfPdqCpd9KP3VhH4ifsUm1Xvec7c0QVl4Wt8JIAm9HQ,1653
|
|
393
394
|
machineconfig/setup_windows/ssh/add_identity.ps1,sha256=b8ZXpmNUSw3IMYvqSY7ClpdWPG39FS7MefoWnRhWN2U,506
|
|
394
395
|
machineconfig/setup_windows/ssh/openssh-server.ps1,sha256=OMlYQdvuJQNxF5EILLPizB6BZAT3jAmDsv1WcVVxpFQ,2529
|
|
395
|
-
machineconfig/setup_windows/web_shortcuts/interactive.ps1,sha256=
|
|
396
|
+
machineconfig/setup_windows/web_shortcuts/interactive.ps1,sha256=E1Atk7Cq7gFKoyfTmKThHsjYyMlAj0ikw8mygZXJib4,616
|
|
396
397
|
machineconfig/setup_windows/wt_and_pwsh/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
397
398
|
machineconfig/setup_windows/wt_and_pwsh/set_wt_settings.py,sha256=ogxJnwpdcpH7N6dFJu95UCNoGYirZKQho_3X0F_hmXs,6791
|
|
398
399
|
machineconfig/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
@@ -400,7 +401,7 @@ machineconfig/utils/accessories.py,sha256=Rs8R0GUb2Ub6YimkgXHnI02CShS5BKlrZdCigV
|
|
|
400
401
|
machineconfig/utils/code.py,sha256=3YnLsCWSPyDXHl_OlvPueIYXFv_o_jmc06GkvHAV0mw,6451
|
|
401
402
|
machineconfig/utils/installer.py,sha256=1ScBaTe_pRsfTYht9-LXmirgnNizNy8u1GgetUfEDO4,10351
|
|
402
403
|
machineconfig/utils/io.py,sha256=4dSieoqZO8Vvi4vW8lLoITDHBvmFp4dtl3kyeZHQ6Co,2528
|
|
403
|
-
machineconfig/utils/links.py,sha256=
|
|
404
|
+
machineconfig/utils/links.py,sha256=ffc8fwbQ1TVdXYn2J1rq7gCZHidxwCzlSppdyrzq4LA,24382
|
|
404
405
|
machineconfig/utils/meta.py,sha256=4ocYH3Zi6bVN6FVgXoGIfoasV6oxi67I9rQ8hvyYinc,9892
|
|
405
406
|
machineconfig/utils/notifications.py,sha256=tuXIudcip0tEioG-bm8BbLr3FMDve4f6BktlznBhKxM,9013
|
|
406
407
|
machineconfig/utils/options.py,sha256=VWYx3EKJxIp-CJ8gDGYdjclKSc1tMUhyrC8v3seeneo,7447
|
|
@@ -410,7 +411,7 @@ machineconfig/utils/procs.py,sha256=YPA_vEYQGwPd_o_Lc6nOTBo5BrB1tSs8PJ42XiGpenM,
|
|
|
410
411
|
machineconfig/utils/scheduler.py,sha256=fguwvINyaupOxdU5Uadyxalh_jXTXDzt0ioEgjEOKcM,14705
|
|
411
412
|
machineconfig/utils/scheduling.py,sha256=vcJgajeJPSWkJNlarYJSmLvasdOuCtBM4druOAB1Nwc,11089
|
|
412
413
|
machineconfig/utils/source_of_truth.py,sha256=ZAnCRltiM07ig--P6g9_6nEAvNFC4X4ERFTVcvpIYsE,764
|
|
413
|
-
machineconfig/utils/ssh.py,sha256=
|
|
414
|
+
machineconfig/utils/ssh.py,sha256=o9fIBd2kJ5YWfuuYU82dx8dvzTKGnXZ6uK6txNgDw4U,39008
|
|
414
415
|
machineconfig/utils/terminal.py,sha256=VDgsjTjBmMGgZN0YIc0pJ8YksLDrBtiXON1EThy7_is,4264
|
|
415
416
|
machineconfig/utils/tst.py,sha256=6u1GI49NdcpxH2BYGAusNfY5q9G_ytCGVzFM5b6HYpM,674
|
|
416
417
|
machineconfig/utils/upgrade_packages.py,sha256=3H-U-Le0kn7ACYf_RHMSDav2UGnWzZEqgaL9bC0Yn4s,3695
|
|
@@ -439,8 +440,8 @@ machineconfig/utils/schemas/installer/installer_types.py,sha256=QClRY61QaduBPJoS
|
|
|
439
440
|
machineconfig/utils/schemas/layouts/layout_types.py,sha256=TcqlZdGVoH8htG5fHn1KWXhRdPueAcoyApppZsPAPto,2020
|
|
440
441
|
machineconfig/utils/schemas/repos/repos_types.py,sha256=ECVr-3IVIo8yjmYmVXX2mnDDN1SLSwvQIhx4KDDQHBQ,405
|
|
441
442
|
machineconfig/utils/ssh_utils/utils.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
442
|
-
machineconfig-6.
|
|
443
|
-
machineconfig-6.
|
|
444
|
-
machineconfig-6.
|
|
445
|
-
machineconfig-6.
|
|
446
|
-
machineconfig-6.
|
|
443
|
+
machineconfig-6.92.dist-info/METADATA,sha256=L8o9zBx9GVMm_RUWgQO_gNAmieK1skgXSZhIHvHP9_o,2928
|
|
444
|
+
machineconfig-6.92.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
445
|
+
machineconfig-6.92.dist-info/entry_points.txt,sha256=uf_ZPJa02_y3Fw5Z7m22cq7PwxhYd1QV2FfPNZTl_dQ,519
|
|
446
|
+
machineconfig-6.92.dist-info/top_level.txt,sha256=porRtB8qms8fOIUJgK-tO83_FeH6Bpe12oUVC670teA,14
|
|
447
|
+
machineconfig-6.92.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|