machineconfig 5.83__py3-none-any.whl → 5.85__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/profile/mapper.toml +3 -2
- machineconfig/scripts/python/croshell.py +1 -1
- machineconfig/scripts/python/devops_helpers/cli_config.py +10 -10
- machineconfig/scripts/python/devops_helpers/cli_repos.py +1 -1
- machineconfig/scripts/python/devops_helpers/cli_self.py +16 -5
- machineconfig/scripts/python/devops_helpers/devops_update_repos.py +1 -1
- machineconfig/scripts/python/helpers_fire/template.sh +2 -2
- machineconfig/scripts/python/helpers_repos/cloud_repo_sync.py +2 -2
- machineconfig/scripts/python/helpers_repos/secure_repo.py +2 -2
- machineconfig/scripts/python/interactive.py +2 -2
- machineconfig/scripts/python/nw/mount_nfs +1 -1
- machineconfig/scripts/python/repos_helpers/action.py +5 -5
- machineconfig/scripts/python/repos_helpers/count_lines_frontend.py +1 -1
- machineconfig/scripts/python/repos_helpers/entrypoint.py +2 -2
- machineconfig/scripts/python/repos_helpers/update.py +2 -2
- machineconfig/scripts/windows/mounts/mount_ssh.ps1 +1 -1
- machineconfig/settings/lf/linux/lfrc +23 -428
- machineconfig/settings/shells/bash/init.sh +19 -11
- machineconfig/settings/shells/pwsh/init.ps1 +9 -0
- machineconfig/setup_linux/web_shortcuts/interactive.sh +11 -23
- machineconfig/setup_windows/web_shortcuts/interactive.ps1 +11 -28
- machineconfig/utils/ssh.py +3 -3
- {machineconfig-5.83.dist-info → machineconfig-5.85.dist-info}/METADATA +1 -1
- {machineconfig-5.83.dist-info → machineconfig-5.85.dist-info}/RECORD +27 -28
- machineconfig/jobs/python/vscode/sync_code.py +0 -73
- {machineconfig-5.83.dist-info → machineconfig-5.85.dist-info}/WHEEL +0 -0
- {machineconfig-5.83.dist-info → machineconfig-5.85.dist-info}/entry_points.txt +0 -0
- {machineconfig-5.83.dist-info → machineconfig-5.85.dist-info}/top_level.txt +0 -0
|
@@ -33,8 +33,9 @@ config2 = {this = '~/.cli-m365-all-connections.json', to_this = '~/dotfiles/cred
|
|
|
33
33
|
config3 = {this = '~/.cli-m365-connection.json', to_this = '~/dotfiles/creds/tokens/.cli-m365-connection.json'}
|
|
34
34
|
# config2 = {this = '~/.cli-m365-tokens.json', to_this = '~/dotfiles/creds/tokens/.cli-m365-tokens.json'}
|
|
35
35
|
|
|
36
|
-
[bash_linux]
|
|
37
|
-
bashrc = {this = '~/.inputrc', to_this = '~/dotfiles/shells/bash/.inputrc'}
|
|
36
|
+
# [bash_linux]
|
|
37
|
+
# bashrc = {this = '~/.inputrc', to_this = '~/dotfiles/shells/bash/.inputrc'}
|
|
38
|
+
|
|
38
39
|
[remmina]
|
|
39
40
|
data = {this = '~/.var/app/org.remmina.Remmina/data/remmina', to_this = '~/dotfiles/creds/RDP/remmina/data/remmina'}
|
|
40
41
|
|
|
@@ -149,7 +149,7 @@ from pathlib import Path
|
|
|
149
149
|
else:
|
|
150
150
|
console.print(Panel("❌ Could not determine the local machineconfig repo root. Please ensure the `REPO_ROOT` in `source_of_truth.py` is correctly set to the local path of the machineconfig repo, or do not use the `--local` flag.", title="Error", border_style="red"))
|
|
151
151
|
return
|
|
152
|
-
else: ve_line = """--with "machineconfig[plot]>=5.
|
|
152
|
+
else: ve_line = """--with "machineconfig[plot]>=5.84" """
|
|
153
153
|
fire_line = f"uv run --python 3.14 {ve_line} {interpreter} {interactivity} {profile} {str(pyfile)}"
|
|
154
154
|
|
|
155
155
|
from machineconfig.utils.code import run_shell_script
|
|
@@ -42,7 +42,7 @@ def path():
|
|
|
42
42
|
from pathlib import Path
|
|
43
43
|
path = Path(navigator.__file__).resolve().parent.joinpath("path_manager_tui.py")
|
|
44
44
|
from machineconfig.utils.code import run_shell_script
|
|
45
|
-
run_shell_script(f"""uv run --with "machineconfig>=5.
|
|
45
|
+
run_shell_script(f"""uv run --with "machineconfig>=5.84,textual" {path}""")
|
|
46
46
|
|
|
47
47
|
def pwsh_theme():
|
|
48
48
|
"""🔗 Select powershell prompt theme."""
|
|
@@ -51,7 +51,7 @@ def pwsh_theme():
|
|
|
51
51
|
import subprocess
|
|
52
52
|
subprocess.run(["pwsh", "-File", str(file)])
|
|
53
53
|
|
|
54
|
-
def copy_assets(which: Literal["scripts", "settings", "both"] = typer.
|
|
54
|
+
def copy_assets(which: Literal["scripts", "settings", "both"] = typer.Argument(..., help="Which assets to copy")):
|
|
55
55
|
"""🔗 Copy asset files from library to machine."""
|
|
56
56
|
import machineconfig.profile.create_helper as create_helper
|
|
57
57
|
match which:
|
|
@@ -64,18 +64,18 @@ def copy_assets(which: Literal["scripts", "settings", "both"] = typer.Option(...
|
|
|
64
64
|
|
|
65
65
|
def get_app():
|
|
66
66
|
config_apps = typer.Typer(help="⚙️ [c] configuration subcommands", no_args_is_help=True)
|
|
67
|
-
config_apps.command("private", no_args_is_help=True, help="🔗 [
|
|
68
|
-
config_apps.command("
|
|
69
|
-
config_apps.command("public", no_args_is_help=True, help="🔗 [
|
|
70
|
-
config_apps.command("
|
|
67
|
+
config_apps.command("private", no_args_is_help=True, help="🔗 [v] Manage private configuration files.")(private)
|
|
68
|
+
config_apps.command("v", no_args_is_help=True, hidden=True)(private)
|
|
69
|
+
config_apps.command("public", no_args_is_help=True, help="🔗 [b] Manage public configuration files.")(public)
|
|
70
|
+
config_apps.command("b", no_args_is_help=True, help="Manage public configuration files.", hidden=True)(public)
|
|
71
71
|
config_apps.command("dotfile", no_args_is_help=True, help="🔗 [d] Manage dotfiles.")(dotfile)
|
|
72
|
-
config_apps.command("d", no_args_is_help=True,
|
|
72
|
+
config_apps.command("d", no_args_is_help=True, hidden=True)(dotfile)
|
|
73
73
|
config_apps.command("shell", no_args_is_help=False, help="🔗 [s] Configure your shell profile.")(shell)
|
|
74
74
|
config_apps.command("s", no_args_is_help=False, help="Configure your shell profile.", hidden=True)(shell)
|
|
75
|
-
config_apps.command("path", no_args_is_help=False, help="📚 [
|
|
76
|
-
config_apps.command("
|
|
75
|
+
config_apps.command("path", no_args_is_help=False, help="📚 [p] NAVIGATE PATH variable with TUI")(path)
|
|
76
|
+
config_apps.command("p", no_args_is_help=False, help="NAVIGATE PATH variable with TUI", hidden=True)(path)
|
|
77
77
|
config_apps.command("pwsh-theme", no_args_is_help=False, help="🔗 [t] Select powershell prompt theme.")(pwsh_theme)
|
|
78
78
|
config_apps.command("t", no_args_is_help=True, help="Select powershell prompt theme.", hidden=True)(pwsh_theme)
|
|
79
|
-
config_apps.command("copy-assets", no_args_is_help=True, help="🔗 [c] Copy asset files from library to machine.")
|
|
79
|
+
config_apps.command("copy-assets", no_args_is_help=True, help="🔗 [c] Copy asset files from library to machine.", hidden=False)(copy_assets)
|
|
80
80
|
config_apps.command("c", no_args_is_help=True, help="Copy asset files from library to machine.", hidden=True)(copy_assets)
|
|
81
81
|
return config_apps
|
|
@@ -166,7 +166,7 @@ def get_app():
|
|
|
166
166
|
repos_apps.command(name="P", help="Pull changes across repositories", hidden=True)(pull)
|
|
167
167
|
repos_apps.command(name="commit", help="💾 [c] Commit changes across repositories")(commit)
|
|
168
168
|
repos_apps.command(name="c", help="Commit changes across repositories", hidden=True)(commit)
|
|
169
|
-
repos_apps.command(name="sync", help="🔄 [
|
|
169
|
+
repos_apps.command(name="sync", help="🔄 [y] Pull, commit, and push changes across repositories")(sync)
|
|
170
170
|
repos_apps.command(name="s", help="Pull, commit, and push changes across repositories", hidden=True)(sync)
|
|
171
171
|
repos_apps.command(name="analyze", help="📊 [a] Analyze repository development over time")(analyze)
|
|
172
172
|
repos_apps.command(name="a", help="Analyze repository development over time", hidden=True)(analyze)
|
|
@@ -5,7 +5,18 @@ from typing import Optional
|
|
|
5
5
|
|
|
6
6
|
def update():
|
|
7
7
|
"""🔄 UPDATE uv and machineconfig"""
|
|
8
|
-
|
|
8
|
+
# from machineconfig.utils.source_of_truth import LIBRARY_ROOT
|
|
9
|
+
# repo_root = LIBRARY_ROOT.parent.parent
|
|
10
|
+
from pathlib import Path
|
|
11
|
+
if Path.home().joinpath("code", "machineconfig").exists():
|
|
12
|
+
code = """
|
|
13
|
+
uv self update
|
|
14
|
+
cd ~/code/machineconfig
|
|
15
|
+
git pull
|
|
16
|
+
uv tool install --upgrade --editable $HOME/code/machineconfig
|
|
17
|
+
"""
|
|
18
|
+
else:
|
|
19
|
+
code = """
|
|
9
20
|
uv self update
|
|
10
21
|
uv tool install --upgrade machineconfig
|
|
11
22
|
"""
|
|
@@ -30,9 +41,9 @@ def install():
|
|
|
30
41
|
# main_public_from_parser()
|
|
31
42
|
import platform
|
|
32
43
|
if platform.system() == "Windows":
|
|
33
|
-
run_shell_script(r"""$HOME\.local\bin\uv.exe tool install machineconfig>=5.
|
|
44
|
+
run_shell_script(r"""$HOME\.local\bin\uv.exe tool install machineconfig>=5.84""")
|
|
34
45
|
else:
|
|
35
|
-
run_shell_script("""$HOME/.local/bin/uv tool install machineconfig>=5.
|
|
46
|
+
run_shell_script("""$HOME/.local/bin/uv tool install machineconfig>=5.84""")
|
|
36
47
|
|
|
37
48
|
def navigate():
|
|
38
49
|
"""📚 NAVIGATE command structure with TUI"""
|
|
@@ -40,7 +51,7 @@ def navigate():
|
|
|
40
51
|
from pathlib import Path
|
|
41
52
|
path = Path(navigator.__file__).resolve().parent.joinpath("devops_navigator.py")
|
|
42
53
|
from machineconfig.utils.code import run_shell_script
|
|
43
|
-
run_shell_script(f"""uv run --with "machineconfig>=5.
|
|
54
|
+
run_shell_script(f"""uv run --with "machineconfig>=5.84,textual" {path}""")
|
|
44
55
|
|
|
45
56
|
|
|
46
57
|
def run_python(ip: str = typer.Argument(..., help="Python command to run in the machineconfig environment"),
|
|
@@ -85,7 +96,7 @@ def get_app():
|
|
|
85
96
|
cli_app.command("I", no_args_is_help=False, help="CLONE machienconfig locally and incorporate to shell profile for faster execution and nightly updates.", hidden=True)(install)
|
|
86
97
|
cli_app.command("navigate", no_args_is_help=False, help="📚 [n] NAVIGATE command structure with TUI")(navigate)
|
|
87
98
|
cli_app.command("n", no_args_is_help=False, help="NAVIGATE command structure with TUI", hidden=True)(navigate)
|
|
88
|
-
cli_app.command("python", no_args_is_help=False, help="🐍 [c] python command/file in the machineconfig environment")(run_python)
|
|
99
|
+
cli_app.command("python", no_args_is_help=False, help="🐍 [c] python command/file in the machineconfig environment", context_settings={"show_help_on_error": True})(run_python)
|
|
89
100
|
cli_app.command("c", no_args_is_help=False, help="RUN python command/file in the machineconfig environment", hidden=True)(run_python)
|
|
90
101
|
cli_app.command("readme", no_args_is_help=False, help="📚 [r] render readme markdown in terminal.")(readme)
|
|
91
102
|
cli_app.command("r", no_args_is_help=False, hidden=True)(readme)
|
|
@@ -22,7 +22,7 @@ def _process_single_repo(expanded_path: Path, allow_password_prompt: bool) -> tu
|
|
|
22
22
|
try:
|
|
23
23
|
repo = git.Repo(str(expanded_path), search_parent_directories=True)
|
|
24
24
|
# Update repository and get detailed results
|
|
25
|
-
result = update_repository(repo, allow_password_prompt=allow_password_prompt,
|
|
25
|
+
result = update_repository(repo, allow_password_prompt=allow_password_prompt, auto_uv_sync=True)
|
|
26
26
|
|
|
27
27
|
# Keep track of repos with dependency changes for additional uv sync
|
|
28
28
|
repo_path = None
|
|
@@ -11,7 +11,7 @@ AGENTS_DIR="$REPO_ROOT/.ai/agents/$JOB_NAME"
|
|
|
11
11
|
LAYOUT_PATH_UNBALANCED="$REPO_ROOT/.ai/agents/$JOB_NAME/layout_unbalanced.json"
|
|
12
12
|
|
|
13
13
|
# agents make-todo --output-path $CONTEXT_PATH
|
|
14
|
-
|
|
14
|
+
ag create \
|
|
15
15
|
--context-path "$CONTEXT_PATH" \
|
|
16
16
|
--tasks-per-prompt 1 \
|
|
17
17
|
--machine docker \
|
|
@@ -27,6 +27,6 @@ agents create \
|
|
|
27
27
|
# sessions balance-load $LAYOUT_PATH --max-thresh 6 --breaking-method moreLayouts --thresh-type number --output-path $LAYOUT_BALANCED_PATH
|
|
28
28
|
# sessions run $LAYOUT_BALANCED_PATH --kill-upon-completion
|
|
29
29
|
|
|
30
|
-
|
|
30
|
+
ses run $LAYOUT_PATH_UNBALANCED
|
|
31
31
|
|
|
32
32
|
# agents collect $AGENTS_DIR "$REPO_ROOT/.ai/agents/$JOB_NAME/collected.txt"
|
|
@@ -101,7 +101,7 @@ git pull originEnc master
|
|
|
101
101
|
return "done"
|
|
102
102
|
from machineconfig.utils.meta import function_to_script
|
|
103
103
|
program_1_py = function_to_script(func=func2, call_with_args=None, call_with_kwargs={"remote_repo": str(repo_remote_root), "local_repo": str(repo_local_root), "cloud": cloud_resolved})
|
|
104
|
-
shell_file_1 = get_shell_file_executing_python_script(python_script=program_1_py, ve_path=None, executable="""uv run --with "machineconfig>=5.
|
|
104
|
+
shell_file_1 = get_shell_file_executing_python_script(python_script=program_1_py, ve_path=None, executable="""uv run --with "machineconfig>=5.84" """)
|
|
105
105
|
# ================================================================================
|
|
106
106
|
option2 = "Delete local repo and replace it with remote copy:"
|
|
107
107
|
program_2 = f"""
|
|
@@ -122,7 +122,7 @@ sudo chmod +x $HOME/dotfiles/scripts/linux -R
|
|
|
122
122
|
inspect_repos(repo_local_root=repo_local_root, repo_remote_root=repo_remote_root)
|
|
123
123
|
return "done"
|
|
124
124
|
program_3_py = function_to_script(func=func, call_with_args=None, call_with_kwargs={"repo_local_root": str(repo_local_root), "repo_remote_root": str(repo_remote_root)})
|
|
125
|
-
shell_file_3 = get_shell_file_executing_python_script(python_script=program_3_py, ve_path=None, executable="""uv run --with "machineconfig>=5.
|
|
125
|
+
shell_file_3 = get_shell_file_executing_python_script(python_script=program_3_py, ve_path=None, executable="""uv run --with "machineconfig>=5.84" """)
|
|
126
126
|
# ================================================================================
|
|
127
127
|
|
|
128
128
|
option4 = "Remove problematic rclone file from repo and replace with remote:"
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
|
|
2
2
|
import typer
|
|
3
3
|
from typing import Optional, Literal
|
|
4
|
-
|
|
4
|
+
from pathlib import Path
|
|
5
5
|
|
|
6
6
|
|
|
7
7
|
def main(
|
|
8
8
|
cloud: Optional[str] = typer.Option(None, "--cloud", "-c", help="Cloud storage profile name. If not provided, uses default from config."),
|
|
9
|
-
repo: Optional[str] = typer.Option(
|
|
9
|
+
repo: Optional[str] = typer.Option(Path.cwd().as_posix(), "--repo", "-r", help="Path to the local repository. Defaults to cwd."),
|
|
10
10
|
message: Optional[str] = typer.Option(None, "--message", "-m", help="Commit message for local changes."),
|
|
11
11
|
on_conflict: Literal["ask", "push-local-merge", "overwrite-local", "stop-on-conflict", "remove-rclone-conflict"] = typer.Option("ask", "--on-conflict", "-oc", help="Action to take on merge conflict. Default is 'ask'."),
|
|
12
12
|
pwd: Optional[str] = typer.Option(None, "--password", help="Password for encryption/decryption of the remote repository."),
|
|
@@ -130,9 +130,9 @@ def execute_installations(selected_options: list[str]) -> None:
|
|
|
130
130
|
console.print(Panel("🐍 [bold green]PYTHON ENVIRONMENT[/bold green]\n[italic]Virtual environment setup[/italic]", border_style="green"))
|
|
131
131
|
import platform
|
|
132
132
|
if platform.system() == "Windows":
|
|
133
|
-
run_shell_script(r"""$HOME\.local\bin\uv.exe tool install machineconfig>=5.
|
|
133
|
+
run_shell_script(r"""$HOME\.local\bin\uv.exe tool install machineconfig>=5.84""")
|
|
134
134
|
else:
|
|
135
|
-
run_shell_script("""$HOME/.local/bin/uv tool install machineconfig>=5.
|
|
135
|
+
run_shell_script("""$HOME/.local/bin/uv tool install machineconfig>=5.84""")
|
|
136
136
|
if "install_ssh_server" in selected_options:
|
|
137
137
|
console.print(Panel("🔒 [bold red]SSH SERVER[/bold red]\n[italic]Remote access setup[/italic]", border_style="red"))
|
|
138
138
|
import platform
|
|
@@ -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>=5.
|
|
8
|
+
uv run --python 3.14 --with "machineconfig>=5.84" 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."
|
|
@@ -154,7 +154,7 @@ def git_action(path: PathExtended, action: GitAction, mess: Optional[str] = None
|
|
|
154
154
|
elif action == GitAction.pull:
|
|
155
155
|
# Use the enhanced update function with uv sync support
|
|
156
156
|
try:
|
|
157
|
-
update_repository(repo,
|
|
157
|
+
update_repository(repo, auto_uv_sync=auto_sync, allow_password_prompt=False)
|
|
158
158
|
print("✅ Pull completed")
|
|
159
159
|
return GitOperationResult(
|
|
160
160
|
repo_path=path,
|
|
@@ -310,7 +310,7 @@ def print_git_operations_summary(summary: GitOperationSummary, operations_perfor
|
|
|
310
310
|
console.print(f"\n[bold green]⚖️ SUMMARY: {total_operations}/{total_operations} operations succeeded (100% success rate)[/bold green]")
|
|
311
311
|
|
|
312
312
|
|
|
313
|
-
def perform_git_operations(repos_root: PathExtended, pull: bool, commit: bool, push: bool, recursive: bool,
|
|
313
|
+
def perform_git_operations(repos_root: PathExtended, pull: bool, commit: bool, push: bool, recursive: bool, auto_uv_sync: bool) -> None:
|
|
314
314
|
"""Perform git operations on all repositories and provide detailed summary."""
|
|
315
315
|
print(f"\n🔄 Performing Git actions on repositories @ `{repos_root}`...")
|
|
316
316
|
summary = GitOperationSummary()
|
|
@@ -341,7 +341,7 @@ def perform_git_operations(repos_root: PathExtended, pull: bool, commit: bool, p
|
|
|
341
341
|
|
|
342
342
|
# Now perform the actual operations
|
|
343
343
|
if pull:
|
|
344
|
-
result = git_action(path=a_path, action=GitAction.pull, r=recursive, auto_sync=
|
|
344
|
+
result = git_action(path=a_path, action=GitAction.pull, r=recursive, auto_sync=auto_uv_sync)
|
|
345
345
|
summary.pulls_attempted += 1
|
|
346
346
|
if result.success:
|
|
347
347
|
summary.pulls_successful += 1
|
|
@@ -350,7 +350,7 @@ def perform_git_operations(repos_root: PathExtended, pull: bool, commit: bool, p
|
|
|
350
350
|
summary.failed_operations.append(result)
|
|
351
351
|
|
|
352
352
|
if commit:
|
|
353
|
-
result = git_action(a_path, action=GitAction.commit, r=recursive, auto_sync=
|
|
353
|
+
result = git_action(a_path, action=GitAction.commit, r=recursive, auto_sync=auto_uv_sync)
|
|
354
354
|
summary.commits_attempted += 1
|
|
355
355
|
if result.success:
|
|
356
356
|
if result.had_changes:
|
|
@@ -362,7 +362,7 @@ def perform_git_operations(repos_root: PathExtended, pull: bool, commit: bool, p
|
|
|
362
362
|
summary.failed_operations.append(result)
|
|
363
363
|
|
|
364
364
|
if push:
|
|
365
|
-
result = git_action(a_path, action=GitAction.push, r=recursive, auto_sync=
|
|
365
|
+
result = git_action(a_path, action=GitAction.push, r=recursive, auto_sync=auto_uv_sync)
|
|
366
366
|
summary.pushes_attempted += 1
|
|
367
367
|
if result.success:
|
|
368
368
|
summary.pushes_successful += 1
|
|
@@ -7,7 +7,7 @@ def analyze_repo_development(repo_path: str = typer.Argument(..., help="Path to
|
|
|
7
7
|
from pathlib import Path
|
|
8
8
|
count_lines_path = Path(count_lines.__file__)
|
|
9
9
|
# --project $HOME/code/ machineconfig --group plot
|
|
10
|
-
cmd = f"""uv run --python 3.14 --with "machineconfig[plot]>=5.
|
|
10
|
+
cmd = f"""uv run --python 3.14 --with "machineconfig[plot]>=5.84" {count_lines_path} analyze-over-time {repo_path}"""
|
|
11
11
|
from machineconfig.utils.code import run_shell_script
|
|
12
12
|
run_shell_script(cmd)
|
|
13
13
|
|
|
@@ -24,7 +24,7 @@ def git_operations(
|
|
|
24
24
|
) -> None:
|
|
25
25
|
|
|
26
26
|
repos_root = resolve_directory(directory)
|
|
27
|
-
|
|
27
|
+
auto_uv_sync = not no_sync
|
|
28
28
|
from machineconfig.scripts.python.repos_helpers.action import perform_git_operations
|
|
29
29
|
from machineconfig.utils.path_extended import PathExtended
|
|
30
30
|
perform_git_operations(
|
|
@@ -33,7 +33,7 @@ def git_operations(
|
|
|
33
33
|
commit=commit,
|
|
34
34
|
push=push,
|
|
35
35
|
recursive=recursive,
|
|
36
|
-
|
|
36
|
+
auto_uv_sync=auto_uv_sync,
|
|
37
37
|
)
|
|
38
38
|
def resolve_spec_path(directory: Optional[str], cloud: Optional[str]) -> Path:
|
|
39
39
|
repos_root = resolve_directory(directory)
|
|
@@ -65,7 +65,7 @@ def get_file_hash(file_path: Path) -> str | None:
|
|
|
65
65
|
return hashlib.sha256(file_path.read_bytes()).hexdigest()
|
|
66
66
|
|
|
67
67
|
|
|
68
|
-
def update_repository(repo: git.Repo,
|
|
68
|
+
def update_repository(repo: git.Repo, auto_uv_sync: bool, allow_password_prompt: bool) -> RepositoryUpdateResult:
|
|
69
69
|
"""Update a single repository and return detailed information about what happened."""
|
|
70
70
|
repo_path = Path(repo.working_dir)
|
|
71
71
|
print(f"🔄 {'Updating ' + str(repo_path):.^80}")
|
|
@@ -253,7 +253,7 @@ def update_repository(repo: git.Repo, auto_sync: bool, allow_password_prompt: bo
|
|
|
253
253
|
print(f"✅ Set permissions for {lf_exe_path}")
|
|
254
254
|
|
|
255
255
|
# Run uv sync if dependencies changed and auto_sync is enabled
|
|
256
|
-
if result["dependencies_changed"] and
|
|
256
|
+
if result["dependencies_changed"] and auto_uv_sync:
|
|
257
257
|
result["uv_sync_ran"] = True
|
|
258
258
|
result["uv_sync_success"] = run_uv_sync(repo_path)
|
|
259
259
|
|
|
@@ -7,7 +7,7 @@ $user = ''
|
|
|
7
7
|
$sharePath = ''
|
|
8
8
|
$driveLetter = ''
|
|
9
9
|
|
|
10
|
-
uv run --python 3.14 --with "machineconfig>=5.
|
|
10
|
+
uv run --python 3.14 --with "machineconfig>=5.84" 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
|