machineconfig 5.84__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/devops_helpers/cli_config.py +9 -9
- machineconfig/scripts/python/devops_helpers/cli_repos.py +1 -1
- machineconfig/scripts/python/devops_helpers/cli_self.py +13 -2
- 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/secure_repo.py +2 -2
- machineconfig/scripts/python/repos_helpers/action.py +5 -5
- machineconfig/scripts/python/repos_helpers/entrypoint.py +2 -2
- machineconfig/scripts/python/repos_helpers/update.py +2 -2
- 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-5.84.dist-info → machineconfig-5.85.dist-info}/METADATA +1 -1
- {machineconfig-5.84.dist-info → machineconfig-5.85.dist-info}/RECORD +20 -21
- machineconfig/jobs/python/vscode/sync_code.py +0 -73
- {machineconfig-5.84.dist-info → machineconfig-5.85.dist-info}/WHEEL +0 -0
- {machineconfig-5.84.dist-info → machineconfig-5.85.dist-info}/entry_points.txt +0 -0
- {machineconfig-5.84.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
|
|
|
@@ -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
|
"""
|
|
@@ -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"
|
|
@@ -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."),
|
|
@@ -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
|
|
@@ -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
|
|
|
@@ -4,428 +4,7 @@ set icons true # show icons next to files
|
|
|
4
4
|
set period 1 # interval to check for directory updates
|
|
5
5
|
set hidden true # show hidden files by default
|
|
6
6
|
set incsearch true # jump to first match after each keystroke in search
|
|
7
|
-
#
|
|
8
|
-
# Based on lf documentation: https://github.com/gokcehan/lf/blob/master/doc.md
|
|
9
|
-
|
|
10
|
-
# ============================ OPTIONS ============================================
|
|
11
|
-
|
|
12
|
-
# Navigation and display
|
|
13
|
-
set scrolloff 10 # space on top and bottom of screen
|
|
14
|
-
set relativenumber false # show relative line numbers (complements number)
|
|
15
|
-
set number true # show absolute line numbers
|
|
16
|
-
set wrapscroll false # scrolling wraps around the file list
|
|
17
|
-
set wrapscan true # searching wraps around the file list
|
|
18
|
-
|
|
19
|
-
# File display
|
|
20
|
-
set hidden true # show hidden files by default
|
|
21
|
-
set hiddenfiles ".*:*.aux:*.log:*.bbl:*.bcf:*.blg:*.run.xml" # additional hidden patterns
|
|
22
|
-
set dirfirst true # show directories first
|
|
23
|
-
set dironly false # show only directories
|
|
24
|
-
set info "size:time" # show file size and modification time
|
|
25
|
-
set dircounts false # don't show item counts in directories (performance)
|
|
26
|
-
set sizeunits binary # use binary units (1024) instead of decimal (1000)
|
|
27
|
-
|
|
28
|
-
# Icons and colors
|
|
29
|
-
set icons true # show icons next to files
|
|
30
|
-
set drawbox false # don't draw borders around panes
|
|
31
|
-
set roundbox false # rounded corners for borders (when drawbox enabled)
|
|
32
|
-
|
|
33
|
-
# Search and filtering
|
|
34
|
-
set ignorecase true # ignore case in sorting and search
|
|
35
|
-
set smartcase true # override ignorecase when pattern has uppercase
|
|
36
|
-
set ignoredia true # ignore diacritics in sorting and search
|
|
37
|
-
set smartdia false # override ignoredia when pattern has diacritics
|
|
38
|
-
set incsearch true # jump to first match after each keystroke in search
|
|
39
|
-
set incfilter false # don't apply filter after each keystroke
|
|
40
|
-
set filtermethod text # filter method: text, glob, or regex
|
|
41
|
-
set searchmethod text # search method: text, glob, or regex
|
|
42
|
-
set anchorfind true # find command starts matching from beginning
|
|
43
|
-
set findlen 1 # number of characters for find command
|
|
44
|
-
|
|
45
|
-
# File operations
|
|
46
|
-
set preserve "mode" # preserve file attributes when copying
|
|
47
|
-
set dupfilefmt "%f.~%n~" # format for duplicate files
|
|
48
|
-
set selmode all # selection mode: all or dir
|
|
49
|
-
|
|
50
|
-
# Preview
|
|
51
|
-
set preview true # preview files on the right pane
|
|
52
|
-
set previewer ~/.config/machineconfig/settings/lf/linux/exe/previewer.sh
|
|
53
|
-
set cleaner ~/.config/machineconfig/settings/lf/linux/exe/cleaner.sh
|
|
54
|
-
set dirpreviews false # don't preview directories by default
|
|
55
|
-
|
|
56
|
-
# Performance and monitoring
|
|
57
|
-
set period 0 # disable periodic directory updates (0 = disabled)
|
|
58
|
-
set watch false # don't watch filesystem for changes (can be slow)
|
|
59
|
-
|
|
60
|
-
# Mouse and interaction
|
|
61
|
-
set mouse false # disable mouse support
|
|
62
|
-
set showbinds true # show key bindings
|
|
63
|
-
|
|
64
|
-
# UI layout
|
|
65
|
-
set ratios "1:2:3" # ratio of pane widths
|
|
66
|
-
|
|
67
|
-
# Truncation
|
|
68
|
-
set truncatechar "~" # character to show when filename is truncated
|
|
69
|
-
set truncatepct 100 # percentage of space for filename before extension
|
|
70
|
-
|
|
71
|
-
# History and persistence
|
|
72
|
-
set history true # save command history
|
|
73
|
-
|
|
74
|
-
# Special files and behavior
|
|
75
|
-
set ifs "\n" # internal field separator for shell commands
|
|
76
|
-
set shell sh # shell to use
|
|
77
|
-
set shellflag -c # shell flag
|
|
78
|
-
set shellopts "" # shell options
|
|
79
|
-
set waitmsg "Press any key to continue"
|
|
80
|
-
|
|
81
|
-
# Formatting (colors and styles)
|
|
82
|
-
set promptfmt "\033[32;1m%u@%h\033[0m:\033[34;1m%d\033[0m\033[1m%f\033[0m"
|
|
83
|
-
set cursoractivefmt "\033[7m"
|
|
84
|
-
set cursorparentfmt "\033[7m"
|
|
85
|
-
set cursorpreviewfmt "\033[4m"
|
|
86
|
-
set numberfmt "\033[33m"
|
|
87
|
-
set copyfmt "\033[7;33m"
|
|
88
|
-
set cutfmt "\033[7;31m"
|
|
89
|
-
set selectfmt "\033[7;35m"
|
|
90
|
-
set visualfmt "\033[7;36m"
|
|
91
|
-
set errorfmt "\033[7;31;47m"
|
|
92
|
-
set borderfmt "\033[0m"
|
|
93
|
-
set menufmt "\033[0m"
|
|
94
|
-
set menuheaderfmt "\033[1m"
|
|
95
|
-
set menuselectfmt "\033[7m"
|
|
96
|
-
|
|
97
|
-
# Ruler and status
|
|
98
|
-
set rulerfmt " %a| %p| \033[7;31m %m \033[0m| \033[7;33m %c \033[0m| \033[7;35m %s \033[0m| \033[7;36m %v \033[0m| \033[7;34m %f \033[0m| %i/%t"
|
|
99
|
-
set statfmt "\033[36m%p\033[0m| %c| %u| %g| %S| %t| -> %l"
|
|
100
|
-
|
|
101
|
-
# Sorting
|
|
102
|
-
set sortby natural # sort by: natural, name, ext, size, time, atime, btime, ctime
|
|
103
|
-
set reverse false # don't reverse sort order
|
|
104
|
-
|
|
105
|
-
# Tabstops and display
|
|
106
|
-
set tabstop 8 # number of spaces for tab character
|
|
107
|
-
|
|
108
|
-
# User options (can be accessed in scripts)
|
|
109
|
-
# set user_option value
|
|
110
|
-
|
|
111
|
-
# ============================ KEY BINDINGS ============================================
|
|
112
|
-
|
|
113
|
-
# Clear default mappings that might conflict
|
|
114
|
-
clearmaps
|
|
115
|
-
|
|
116
|
-
# Navigation (vim-like)
|
|
117
|
-
map <up> up
|
|
118
|
-
map <down> down
|
|
119
|
-
map <left> updir
|
|
120
|
-
map <right> open
|
|
121
|
-
map k up
|
|
122
|
-
map j down
|
|
123
|
-
map h updir
|
|
124
|
-
map l open
|
|
125
|
-
map gg top
|
|
126
|
-
map G bottom
|
|
127
|
-
map H high
|
|
128
|
-
map M middle
|
|
129
|
-
map L low
|
|
130
|
-
|
|
131
|
-
# Scrolling
|
|
132
|
-
map <c-u> half-up
|
|
133
|
-
map <c-d> half-down
|
|
134
|
-
map <c-b> page-up
|
|
135
|
-
map <c-f> page-down
|
|
136
|
-
map <c-y> scroll-up
|
|
137
|
-
map <c-e> scroll-down
|
|
138
|
-
|
|
139
|
-
# Jumping
|
|
140
|
-
map ] jump-next
|
|
141
|
-
map [ jump-prev
|
|
142
|
-
|
|
143
|
-
# File operations
|
|
144
|
-
map y copy
|
|
145
|
-
map d cut
|
|
146
|
-
map p paste
|
|
147
|
-
map c clear
|
|
148
|
-
map x delete
|
|
149
|
-
map r rename
|
|
150
|
-
|
|
151
|
-
# Selection and marking
|
|
152
|
-
map v invert
|
|
153
|
-
map u unselect
|
|
154
|
-
map t tag-toggle
|
|
155
|
-
map <space> :toggle; down
|
|
156
|
-
|
|
157
|
-
# Search and find
|
|
158
|
-
map / search
|
|
159
|
-
map ? search-back
|
|
160
|
-
map n search-next
|
|
161
|
-
map N search-prev
|
|
162
|
-
map f find
|
|
163
|
-
map F find-back
|
|
164
|
-
map ; find-next
|
|
165
|
-
map , find-prev
|
|
166
|
-
|
|
167
|
-
# Filter
|
|
168
|
-
map f filter
|
|
169
|
-
|
|
170
|
-
# Marks
|
|
171
|
-
map m mark-save
|
|
172
|
-
map ' mark-load
|
|
173
|
-
map " mark-remove
|
|
174
|
-
|
|
175
|
-
# Commands
|
|
176
|
-
map : read
|
|
177
|
-
map $ shell
|
|
178
|
-
map % shell-pipe
|
|
179
|
-
map ! shell-wait
|
|
180
|
-
map & shell-async
|
|
181
|
-
|
|
182
|
-
# Special
|
|
183
|
-
map . set hidden!
|
|
184
|
-
map zh set hidden!
|
|
185
|
-
map zr set reverse!
|
|
186
|
-
map zn set info
|
|
187
|
-
map zs set info size
|
|
188
|
-
map zt set info time
|
|
189
|
-
map za set info size:time
|
|
190
|
-
|
|
191
|
-
# Sorting shortcuts
|
|
192
|
-
map sn :set sortby natural; set info
|
|
193
|
-
map ss :set sortby size; set info size
|
|
194
|
-
map st :set sortby time; set info time
|
|
195
|
-
map sa :set sortby atime; set info atime
|
|
196
|
-
map sb :set sortby btime; set info btime
|
|
197
|
-
map sc :set sortby ctime; set info ctime
|
|
198
|
-
map se :set sortby ext; set info
|
|
199
|
-
|
|
200
|
-
# UI
|
|
201
|
-
map <c-l> redraw
|
|
202
|
-
map <c-r> reload
|
|
203
|
-
|
|
204
|
-
# Quit
|
|
205
|
-
map q quit
|
|
206
|
-
map ZZ quit
|
|
207
|
-
map ZQ quit!
|
|
208
|
-
|
|
209
|
-
# Help
|
|
210
|
-
map <f-1> help
|
|
211
|
-
|
|
212
|
-
# ============================ CUSTOM COMMANDS =====================================
|
|
213
|
-
|
|
214
|
-
# Open files with appropriate applications
|
|
215
|
-
cmd open &{{
|
|
216
|
-
case $(file --mime-type -Lb "$f") in
|
|
217
|
-
text/*) $EDITOR "$f" ;;
|
|
218
|
-
image/*) imv "$f" ;;
|
|
219
|
-
video/*) mpv "$f" ;;
|
|
220
|
-
audio/*) mpv "$f" ;;
|
|
221
|
-
application/pdf) zathura "$f" ;;
|
|
222
|
-
*) xdg-open "$f" ;;
|
|
223
|
-
esac
|
|
224
|
-
}}
|
|
225
|
-
|
|
226
|
-
# Enhanced paste with progress
|
|
227
|
-
cmd paste &{{
|
|
228
|
-
# Use lf's built-in paste but with custom handling if needed
|
|
229
|
-
# This is a fallback - lf handles paste internally by default
|
|
230
|
-
lf -remote "send $id paste"
|
|
231
|
-
}}
|
|
232
|
-
|
|
233
|
-
# Enhanced delete with trash
|
|
234
|
-
cmd delete &{{
|
|
235
|
-
printf "Delete %d files? [y/N] " $(echo "$fx" | wc -l)
|
|
236
|
-
read -r ans
|
|
237
|
-
[ "$ans" = "y" ] || [ "$ans" = "Y" ] || exit 1
|
|
238
|
-
|
|
239
|
-
# Move to trash instead of permanent deletion
|
|
240
|
-
mkdir -p ~/.trash
|
|
241
|
-
mv "$fx" ~/.trash/
|
|
242
|
-
}}
|
|
243
|
-
|
|
244
|
-
# Bulk rename with vidir
|
|
245
|
-
cmd rename %vidir
|
|
246
|
-
|
|
247
|
-
# Create directories
|
|
248
|
-
cmd mkdir &{{
|
|
249
|
-
printf "Directory name: "
|
|
250
|
-
read -r dirname
|
|
251
|
-
mkdir -p "$dirname"
|
|
252
|
-
}}
|
|
253
|
-
|
|
254
|
-
# Create files
|
|
255
|
-
cmd mkfile &{{
|
|
256
|
-
printf "File name: "
|
|
257
|
-
read -r filename
|
|
258
|
-
$EDITOR "$filename"
|
|
259
|
-
}}
|
|
260
|
-
|
|
261
|
-
# Change permissions
|
|
262
|
-
cmd chmod %{{
|
|
263
|
-
printf "Mode bits: "
|
|
264
|
-
read -r mode
|
|
265
|
-
chmod "$mode" "$fx"
|
|
266
|
-
lf -remote "send $id reload"
|
|
267
|
-
}}
|
|
268
|
-
|
|
269
|
-
# Directory size calculation
|
|
270
|
-
cmd calcdirsize &{{
|
|
271
|
-
for dir in "$fx"; do
|
|
272
|
-
if [ -d "$dir" ]; then
|
|
273
|
-
size=$(du -sh "$dir" | cut -f1)
|
|
274
|
-
lf -remote "send $id addcustominfo \"$dir\" \"$size\""
|
|
275
|
-
fi
|
|
276
|
-
done
|
|
277
|
-
}}
|
|
278
|
-
|
|
279
|
-
# Git status indicators
|
|
280
|
-
cmd git-status &{{
|
|
281
|
-
if git rev-parse --git-dir >/dev/null 2>&1; then
|
|
282
|
-
for file in "$@"; do
|
|
283
|
-
if [ -e "$file" ]; then
|
|
284
|
-
status=$(git status --porcelain "$file" 2>/dev/null | head -n1 | cut -c1-2)
|
|
285
|
-
[ -n "$status" ] && lf -remote "send $id addcustominfo \"$file\" \"$status\""
|
|
286
|
-
fi
|
|
287
|
-
done
|
|
288
|
-
fi
|
|
289
|
-
}}
|
|
290
|
-
|
|
291
|
-
# Fuzzy jump with fzf
|
|
292
|
-
cmd fzf-jump &{{
|
|
293
|
-
dest=$(find . -type d | fzf --height 40% --reverse --header="Jump to directory")
|
|
294
|
-
[ -n "$dest" ] && lf -remote "send $id cd \"$dest\""
|
|
295
|
-
}}
|
|
296
|
-
|
|
297
|
-
# Fuzzy search with ripgrep and fzf
|
|
298
|
-
cmd fzf-search &{{
|
|
299
|
-
RG_PREFIX="rg --column --line-number --no-heading --color=always --smart-case"
|
|
300
|
-
result=$(
|
|
301
|
-
FZF_DEFAULT_COMMAND="$RG_PREFIX ''" \
|
|
302
|
-
fzf --bind "change:reload:$RG_PREFIX {q} || true" \
|
|
303
|
-
--ansi --layout=reverse --header 'Search in files' \
|
|
304
|
-
--disabled
|
|
305
|
-
)
|
|
306
|
-
[ -n "$result" ] && file=$(echo "$result" | cut -d: -f1) && lf -remote "send $id select \"$file\""
|
|
307
|
-
}}
|
|
308
|
-
|
|
309
|
-
# Zoxide integration
|
|
310
|
-
cmd zi &{{
|
|
311
|
-
result="$(zoxide query -i)"
|
|
312
|
-
[ -n "$result" ] && lf -remote "send $id cd \"$result\""
|
|
313
|
-
}}
|
|
314
|
-
|
|
315
|
-
# Tere integration (if available)
|
|
316
|
-
cmd tere &{{
|
|
317
|
-
result="$(tere)"
|
|
318
|
-
[ -n "$result" ] && lf -remote "send $id cd \"$result\""
|
|
319
|
-
}}
|
|
320
|
-
|
|
321
|
-
# Bulk operations
|
|
322
|
-
cmd bulk-rename %{{
|
|
323
|
-
vidir "$@"
|
|
324
|
-
}}
|
|
325
|
-
|
|
326
|
-
cmd bulk-chmod %{{
|
|
327
|
-
printf "New permissions: "
|
|
328
|
-
read -r perms
|
|
329
|
-
chmod -R "$perms" "$@"
|
|
330
|
-
lf -remote "send $id reload"
|
|
331
|
-
}}
|
|
332
|
-
|
|
333
|
-
# Archive operations
|
|
334
|
-
cmd extract &{{
|
|
335
|
-
for file in "$@"; do
|
|
336
|
-
case "$file" in
|
|
337
|
-
*.tar.bz2|*.tbz2) tar xjf "$file" ;;
|
|
338
|
-
*.tar.gz|*.tgz) tar xzf "$file" ;;
|
|
339
|
-
*.tar.xz|*.txz) tar xJf "$file" ;;
|
|
340
|
-
*.tar.zst) tar --zstd -xf "$file" ;;
|
|
341
|
-
*.tar) tar xf "$file" ;;
|
|
342
|
-
*.bz2) bunzip2 "$file" ;;
|
|
343
|
-
*.gz) gunzip "$file" ;;
|
|
344
|
-
*.xz) unxz "$file" ;;
|
|
345
|
-
*.zip) unzip "$file" ;;
|
|
346
|
-
*.7z) 7z x "$file" ;;
|
|
347
|
-
*.rar) unrar x "$file" ;;
|
|
348
|
-
*) echo "Unsupported archive: $file" ;;
|
|
349
|
-
esac
|
|
350
|
-
done
|
|
351
|
-
lf -remote "send $id reload"
|
|
352
|
-
}}
|
|
353
|
-
|
|
354
|
-
cmd compress &{{
|
|
355
|
-
printf "Archive name (without extension): "
|
|
356
|
-
read -r name
|
|
357
|
-
printf "Format (tar.gz/zip/7z): "
|
|
358
|
-
read -r format
|
|
359
|
-
|
|
360
|
-
case "$format" in
|
|
361
|
-
tar.gz) tar czf "$name.tar.gz" "$@" ;;
|
|
362
|
-
zip) zip -r "$name.zip" "$@" ;;
|
|
363
|
-
7z) 7z a "$name.7z" "$@" ;;
|
|
364
|
-
*) echo "Unsupported format" ;;
|
|
365
|
-
esac
|
|
366
|
-
lf -remote "send $id reload"
|
|
367
|
-
}}
|
|
368
|
-
|
|
369
|
-
# ============================ SPECIAL COMMANDS ===================================
|
|
370
|
-
|
|
371
|
-
# Directory change hooks
|
|
372
|
-
cmd on-cd &{{
|
|
373
|
-
# Update terminal title
|
|
374
|
-
lf -remote "send $id tty-write \"\033]0;lf: $PWD\007\""
|
|
375
|
-
}}
|
|
376
|
-
|
|
377
|
-
cmd on-load &git-status
|
|
378
|
-
|
|
379
|
-
# ============================ LEGACY/COMPATIBILITY ==============================
|
|
380
|
-
|
|
381
|
-
# Old mappings (kept for compatibility but prefer new ones above)
|
|
382
|
-
# map Q !~/.config/machineconfig/settings/lf/linux/exe/previewer.sh "$f"
|
|
383
|
-
# map I !cat $f | gum pager
|
|
384
|
-
# map R $~/scripts/croshell -r $f
|
|
385
|
-
# map O $~/scripts/croshell -rj $f
|
|
386
|
-
|
|
387
|
-
# Old jump mappings
|
|
388
|
-
# map jc cd ~/code
|
|
389
|
-
# map jd cd ~/data
|
|
390
|
-
# map jD cd ~/Downloads
|
|
391
|
-
# map jx cd ~/dotfiles
|
|
392
|
-
# map jh cd ~
|
|
393
|
-
# map jj $~/scripts/croshell -j --read $f
|
|
394
|
-
|
|
395
|
-
# Old operation mappings
|
|
396
|
-
# map od cut
|
|
397
|
-
# map op paste
|
|
398
|
-
# map oy copy
|
|
399
|
-
# map oc $echo $f | xclip
|
|
400
|
-
# map or rename
|
|
401
|
-
# map of reload
|
|
402
|
-
# map os mark-save
|
|
403
|
-
# map ol mark-load
|
|
404
|
-
# map oR mark-remove
|
|
405
|
-
# map oD $ouch d $f
|
|
406
|
-
# map oC $ouch c $f "$f.zip"
|
|
407
|
-
# map oL $ln -s $f ~/tmp_results/tmp_links/$(basename "$f")
|
|
408
|
-
|
|
409
|
-
# Old make mappings
|
|
410
|
-
# map md mkdir
|
|
411
|
-
# map mf mkfile
|
|
412
|
-
# map mF sudomkfile
|
|
413
|
-
# map mp chmod
|
|
414
|
-
|
|
415
|
-
# Old junk mappings
|
|
416
|
-
# map <c-f> :fzf_jump
|
|
417
|
-
# map gs :fzf_search
|
|
418
|
-
# map J broot_jump
|
|
419
|
-
# map F fzf_jump
|
|
420
|
-
|
|
421
|
-
# Old command definitions (replaced with modern equivalents above)
|
|
422
|
-
# cmd fzf_jump ${{ ... }}
|
|
423
|
-
# cmd fzf_search ${{ ... }}
|
|
424
|
-
# cmd broot_jump ${{ ... }}
|
|
425
|
-
# cmd mkdir ${{ ... }}
|
|
426
|
-
# cmd mkfile ${{ ... }}
|
|
427
|
-
# cmd sudomkfile ${{ ... }}
|
|
428
|
-
# cmd chmod ${{ ... }}
|
|
7
|
+
set dircounts true # show number of items in directory instead of sie
|
|
429
8
|
set info "size" # list directory information on the right
|
|
430
9
|
set sortby "natural" # don't sort files in any special way
|
|
431
10
|
# set drawbox true # draw a border around all panes
|
|
@@ -435,8 +14,8 @@ set number true # show line numbers
|
|
|
435
14
|
|
|
436
15
|
set preview true # preview file on the right pane
|
|
437
16
|
# set previewer chafa --format sixel --work 9 --optimize 9 --stretch --zoom --size 140x80
|
|
438
|
-
set previewer
|
|
439
|
-
set cleaner
|
|
17
|
+
set previewer ~/code/machineconfig/src/machineconfig/settings/lf/linux/exe/previewer.sh
|
|
18
|
+
set cleaner ~/code/machineconfig/src/machineconfig/settings/lf/linux/exe/cleaner.sh
|
|
440
19
|
# set previewer pistol
|
|
441
20
|
|
|
442
21
|
# set sixels true
|
|
@@ -469,10 +48,16 @@ set ratios '1:2:3' # ratio of pane widths
|
|
|
469
48
|
|
|
470
49
|
|
|
471
50
|
# test image viewer
|
|
472
|
-
map Q
|
|
51
|
+
map Q !~/code/machineconfig/src/machineconfig/settings/lf/linux/exe/previewer.sh "$f"
|
|
473
52
|
|
|
474
53
|
# key bindings
|
|
54
|
+
map vmap v # default is invert
|
|
475
55
|
map V invert
|
|
56
|
+
map p
|
|
57
|
+
map x
|
|
58
|
+
map c
|
|
59
|
+
map v
|
|
60
|
+
# map D
|
|
476
61
|
map D $diskonaut
|
|
477
62
|
map K $kondo $f
|
|
478
63
|
|
|
@@ -485,6 +70,7 @@ map <c-u> # half-up
|
|
|
485
70
|
# e edit
|
|
486
71
|
map e # edit modal key.
|
|
487
72
|
map eh $hx $f
|
|
73
|
+
map eH !source ~/code/machineconfig/.venv/bin/activate;hx $f
|
|
488
74
|
map en $nano $f
|
|
489
75
|
map el $lvim $f
|
|
490
76
|
map ev $nvim $f
|
|
@@ -495,11 +81,12 @@ map <enter> open
|
|
|
495
81
|
|
|
496
82
|
|
|
497
83
|
# w shells
|
|
84
|
+
map w
|
|
498
85
|
map ww bash
|
|
499
86
|
# map wp $powershell
|
|
500
87
|
map wr $~/scripts/croshell
|
|
501
88
|
# map wm $cmd
|
|
502
|
-
map i
|
|
89
|
+
map i !~/code/machineconfig/src/machineconfig/settings/lf/linux/exe/previewer.sh $f
|
|
503
90
|
map I !cat $f | gum pager
|
|
504
91
|
map R $~/scripts/croshell -r $f
|
|
505
92
|
map O $~/scripts/croshell -rj $f
|
|
@@ -509,6 +96,7 @@ map O $~/scripts/croshell -rj $f
|
|
|
509
96
|
map c clear
|
|
510
97
|
map <delete> delete
|
|
511
98
|
|
|
99
|
+
map o
|
|
512
100
|
map od cut
|
|
513
101
|
map op paste
|
|
514
102
|
map oy copy
|
|
@@ -520,15 +108,18 @@ map ol mark-load
|
|
|
520
108
|
map oR mark-remove
|
|
521
109
|
map oD $ouch d $f
|
|
522
110
|
map oC $ouch c $f "$f.zip"
|
|
523
|
-
map oL $ln -s $f
|
|
111
|
+
map oL $ln -s $f $HOME/tmp_results/tmp_links/$(basename "$f")
|
|
524
112
|
|
|
525
113
|
# j jump
|
|
114
|
+
map j
|
|
526
115
|
map jc cd ~/code
|
|
527
116
|
map jd cd ~/data
|
|
528
117
|
map jD cd ~/Downloads
|
|
529
118
|
map jx cd ~/dotfiles
|
|
119
|
+
# map jm cd ~/code/machineconfig/src/machineconfig
|
|
530
120
|
map jh cd ~
|
|
531
121
|
map jj $~/scripts/croshell -j --read $f
|
|
122
|
+
# map jj $lvim ~/code/machineconfig/src/machineconfig/settings/lf/linux/lfrc
|
|
532
123
|
|
|
533
124
|
# from https://github.com/gokcehan/lf/wiki/Integrations#zoxide
|
|
534
125
|
cmd zi ${{
|
|
@@ -544,6 +135,7 @@ cmd ter ${{
|
|
|
544
135
|
map T ter #!tere
|
|
545
136
|
|
|
546
137
|
# m make
|
|
138
|
+
map m
|
|
547
139
|
map md mkdir
|
|
548
140
|
map mf mkfile
|
|
549
141
|
map mF sudomkfile
|
|
@@ -571,6 +163,10 @@ cmd fzf_jump ${{
|
|
|
571
163
|
}}
|
|
572
164
|
|
|
573
165
|
|
|
166
|
+
cmd fzf2g $(~/scripts/fzf2g.sh $args[1])
|
|
167
|
+
# map F $nano fzf2g $args[1]
|
|
168
|
+
|
|
169
|
+
|
|
574
170
|
cmd fzf_search ${{
|
|
575
171
|
res="$( \
|
|
576
172
|
RG_PREFIX="rg --column --line-number --no-heading --color=always \
|
|
@@ -628,4 +224,3 @@ cmd chmod ${{
|
|
|
628
224
|
|
|
629
225
|
lf -remote 'send reload'
|
|
630
226
|
}}
|
|
631
|
-
|
|
@@ -30,23 +30,31 @@ add_to_path_if_not_already \
|
|
|
30
30
|
|
|
31
31
|
# set alias l to lsd -la
|
|
32
32
|
alias l='lsd -la'
|
|
33
|
-
|
|
34
|
-
alias
|
|
35
|
-
alias
|
|
33
|
+
|
|
34
|
+
alias d=devops
|
|
35
|
+
alias c=cloud
|
|
36
|
+
alias a=agents
|
|
37
|
+
alias s=sessions
|
|
38
|
+
alias ff=ftpx
|
|
39
|
+
alias f=fire
|
|
40
|
+
alias cs=croshell
|
|
41
|
+
|
|
42
|
+
# alias gcs='gh copilot suggest -t shell'
|
|
43
|
+
# alias gcg='gh copilot suggest -t git'
|
|
44
|
+
# alias gce='gh copilot explain'
|
|
36
45
|
# Check uniqueness of aliases
|
|
37
46
|
# type gcs
|
|
38
47
|
# type gcg
|
|
39
48
|
# type gce
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
}
|
|
49
|
+
# gcd() {
|
|
50
|
+
# x=$(history -p '!!')
|
|
51
|
+
# y=$(eval "$x" 2>&1)
|
|
52
|
+
# gh copilot explain "Input command is: $x The output is this: $y"
|
|
53
|
+
# }
|
|
46
54
|
|
|
47
55
|
# 📦 Node Version Manager
|
|
48
|
-
export NVM_DIR="$HOME/.nvm"
|
|
49
|
-
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm
|
|
56
|
+
# export NVM_DIR="$HOME/.nvm"
|
|
57
|
+
# [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm
|
|
50
58
|
# [ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion
|
|
51
59
|
|
|
52
60
|
|
|
@@ -37,6 +37,15 @@ Add-ToPathIfNotAlready -Directories @(
|
|
|
37
37
|
function lsdla { lsd -la }
|
|
38
38
|
Set-Alias -Name l -Value lsdla -Option AllScope
|
|
39
39
|
|
|
40
|
+
function d { mcfg devops @args }
|
|
41
|
+
function c { mcfg cloud @args }
|
|
42
|
+
function a { mcfg agents @args }
|
|
43
|
+
function s { mcfg sessions @args }
|
|
44
|
+
function ff { mcfg ftpx @args }
|
|
45
|
+
function f { mcfg fire @args }
|
|
46
|
+
function cs { mcfg croshell @args }
|
|
47
|
+
|
|
48
|
+
|
|
40
49
|
try {
|
|
41
50
|
Set-Alias -Name gcs -Value {gh copilot suggest -t shell}
|
|
42
51
|
Set-Alias -Name gcg -Value {gh copilot suggest -t git}
|
|
@@ -1,25 +1,13 @@
|
|
|
1
1
|
#!/bin/bash
|
|
2
2
|
. <( curl -sSL "https://raw.githubusercontent.com/thisismygitrepo/machineconfig/main/src/machineconfig/setup_linux/uv.sh")
|
|
3
|
-
|
|
4
|
-
"$HOME/.local/bin/uv" run --python 3.14 --with "machineconfig>=5.84"
|
|
5
|
-
}
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
croshell
|
|
13
|
-
|
|
14
|
-
}
|
|
15
|
-
fire() {
|
|
16
|
-
"$HOME/.local/bin/uv" run --python 3.14 --with "machineconfig>=5.84" fire "$@"
|
|
17
|
-
}
|
|
18
|
-
ftpx() {
|
|
19
|
-
"$HOME/.local/bin/uv" run --python 3.14 --with "machineconfig>=5.84" ftpx "$@"
|
|
20
|
-
}
|
|
21
|
-
sessions() {
|
|
22
|
-
"$HOME/.local/bin/uv" run --python 3.14 --with "machineconfig>=5.84" sessions "$@"
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
echo "devops command is now defined in this shell session."
|
|
3
|
+
mcfg() {
|
|
4
|
+
"$HOME/.local/bin/uv" run --python 3.14 --with "machineconfig>="mcfg 5.84" mcfg "$@"
|
|
5
|
+
}
|
|
6
|
+
alias d="mcfg devops"
|
|
7
|
+
alias c="mcfg cloud"
|
|
8
|
+
alias a="mcfg agents"
|
|
9
|
+
alias s="mcfg sessions"
|
|
10
|
+
alias ff="mcfg ftpx"
|
|
11
|
+
alias f="mcfg fire"
|
|
12
|
+
alias cs="mcfg croshell"
|
|
13
|
+
echo "mcfg command is now defined in this shell session."
|
|
@@ -1,31 +1,14 @@
|
|
|
1
1
|
|
|
2
2
|
|
|
3
3
|
iex (iwr "https://raw.githubusercontent.com/thisismygitrepo/machineconfig/main/src/machineconfig/setup_windows/uv.ps1").Content
|
|
4
|
-
function
|
|
5
|
-
& "$HOME\.local\bin\uv.exe" run --python 3.14 --with "machineconfig>=5.84"
|
|
6
|
-
}
|
|
7
|
-
|
|
8
|
-
function cloud
|
|
9
|
-
|
|
10
|
-
}
|
|
11
|
-
|
|
12
|
-
function
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
function agents {
|
|
17
|
-
& "$HOME\.local\bin\uv.exe" run --python 3.14 --with "machineconfig>=5.84" agents $args
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
function fire {
|
|
21
|
-
& "$HOME\.local\bin\uv.exe" run --python 3.14 --with "machineconfig>=5.84" fire $args
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
function ftpx {
|
|
25
|
-
& "$HOME\.local\bin\uv.exe" run --python 3.14 --with "machineconfig>=5.84" ftpx $args
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
function sessions {
|
|
29
|
-
& "$HOME\.local\bin\uv.exe" run --python 3.14 --with "machineconfig>=5.84" sessions $args
|
|
30
|
-
}
|
|
31
|
-
|
|
4
|
+
function mcfg {
|
|
5
|
+
& "$HOME\.local\bin\uv.exe" run --python 3.14 --with "machineconfig>=5.84" mcfg $args
|
|
6
|
+
}
|
|
7
|
+
function d { mcfg devops @args }
|
|
8
|
+
function c { mcfg cloud @args }
|
|
9
|
+
function a { mcfg agents @args }
|
|
10
|
+
function s { mcfg sessions @args }
|
|
11
|
+
function ff { mcfg ftpx @args }
|
|
12
|
+
function f { mcfg fire @args }
|
|
13
|
+
function cs { mcfg croshell @args }
|
|
14
|
+
Write-Host "mcfg command aliases are now defined in this PowerShell session."
|
|
@@ -85,7 +85,6 @@ machineconfig/jobs/linux/msc/network.sh,sha256=j3kRV2mFEZK05XL2UdR9ssW2hkLH5rOYM
|
|
|
85
85
|
machineconfig/jobs/python/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
86
86
|
machineconfig/jobs/python/python_ve_symlink.py,sha256=Mw2SK_TDLK5Ct_mEESh_Pd-Rn-B1oBSp7a_9y_eZbqw,1140
|
|
87
87
|
machineconfig/jobs/python/vscode/api.py,sha256=Et0G-VUj13D1rshYMdDrw_CUYSO7Q6XRrEQO0WjVIKU,1683
|
|
88
|
-
machineconfig/jobs/python/vscode/sync_code.py,sha256=f9hxMg_nkIsC0xvfQMboJbc-Jhap9YQrV7k7a5YSI1c,2333
|
|
89
88
|
machineconfig/jobs/windows/archive/archive_pygraphviz.ps1,sha256=UbOApUB0UiAHANOnGFHIP3zY_UCtWBhT5I6vqPhwqgE,618
|
|
90
89
|
machineconfig/jobs/windows/archive/openssh-server_add_key.ps1,sha256=91cL3K4H2saAuzOS1GxGicpc64ZDpgvPY39YPBWyxZI,269
|
|
91
90
|
machineconfig/jobs/windows/archive/openssh-server_copy-ssh-id.ps1,sha256=-7pElYiGFXUvO4dp6rW0LXmNo65h3hFTHJWyHbmO3Xc,745
|
|
@@ -98,7 +97,7 @@ machineconfig/profile/create_helper.py,sha256=_iNeuwmcEGTx6sf_f40JKHfOCuJRZQRpyE
|
|
|
98
97
|
machineconfig/profile/create_links.py,sha256=K7T2bq08GZP9fo2NzCOE0pojAgQDe0Ofe7fNfbQlQpw,14219
|
|
99
98
|
machineconfig/profile/create_links_export.py,sha256=OEmuJE-F7FZX5xvOl1rqJzHg_BWtPKCiWdrq4RPOobs,3173
|
|
100
99
|
machineconfig/profile/create_shell_profile.py,sha256=ifsEAK90ovvY7ftyxuY5-Xh8f2JuQYX7IMYUXp6x2Sw,9538
|
|
101
|
-
machineconfig/profile/mapper.toml,sha256=
|
|
100
|
+
machineconfig/profile/mapper.toml,sha256=50q2VdR_PNLXGljH47R2cxuJvzlJQnq7lkJ05TMtJ5Q,12357
|
|
102
101
|
machineconfig/profile/records/generic/shares.toml,sha256=FduDztfyQtZcr5bfx-RSKhEEweweQSWfVXkKWnx8hCY,143
|
|
103
102
|
machineconfig/profile/records/linux/apps_summary_report.csv,sha256=pw9djvaRUPalKDLn2sl3odcbD2_Zx3aEupsQ8UPfaaY,2738
|
|
104
103
|
machineconfig/profile/records/linux/apps_summary_report.md,sha256=l77oofA6Rliql0ZgKGIZi8bstFoGyyGTxeS8p2PtOj0,5634
|
|
@@ -174,17 +173,17 @@ machineconfig/scripts/python/croshell_helpers/start_slidev.py,sha256=HfJReOusTPh
|
|
|
174
173
|
machineconfig/scripts/python/croshell_helpers/viewer.py,sha256=heQNjB9fwn3xxbPgMofhv1Lp6Vtkl76YjjexWWBM0pM,2041
|
|
175
174
|
machineconfig/scripts/python/croshell_helpers/viewer_template.py,sha256=ve3Q1-iKhCLc0VJijKvAeOYp2xaFOeIOC_XW956GWCc,3944
|
|
176
175
|
machineconfig/scripts/python/devops_helpers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
177
|
-
machineconfig/scripts/python/devops_helpers/cli_config.py,sha256=
|
|
176
|
+
machineconfig/scripts/python/devops_helpers/cli_config.py,sha256=91D4Hdk_ZhDtlJctBJ-gnVbbDCjyS9f7LE-MjRyRpkA,5276
|
|
178
177
|
machineconfig/scripts/python/devops_helpers/cli_config_dotfile.py,sha256=rjTys4FNf9_feP9flWM7Zvq17dxWmetSiGaHPxp25nk,2737
|
|
179
178
|
machineconfig/scripts/python/devops_helpers/cli_data.py,sha256=kvJ7g2CccjjXIhCwdu_Vlif8JHC0qUoLjuGcTSqT-IU,514
|
|
180
179
|
machineconfig/scripts/python/devops_helpers/cli_nw.py,sha256=3KyzyoEyiLFrKxB5abkUq8UI3PoHWcI9PyczHf0YcSY,4023
|
|
181
|
-
machineconfig/scripts/python/devops_helpers/cli_repos.py,sha256=
|
|
182
|
-
machineconfig/scripts/python/devops_helpers/cli_self.py,sha256=
|
|
180
|
+
machineconfig/scripts/python/devops_helpers/cli_repos.py,sha256=3d6UV39na-uAJC7dKqwnO79AKIeiVDie1_IPhk6SMNs,12015
|
|
181
|
+
machineconfig/scripts/python/devops_helpers/cli_self.py,sha256=MvSfth2XILXHt_BWO9SeFKI9TCX-pUb8d-o0avNzVPc,4949
|
|
183
182
|
machineconfig/scripts/python/devops_helpers/cli_share_server.py,sha256=285OzxttCx7YsrpOkaapMKP1eVGHmG5TkkaSQnY7i3c,3976
|
|
184
183
|
machineconfig/scripts/python/devops_helpers/cli_terminal.py,sha256=k_PzXaiGyE0vXr0Ii1XcJz2A7UvyPJrR31TRWt4RKRI,6019
|
|
185
184
|
machineconfig/scripts/python/devops_helpers/devops_backup_retrieve.py,sha256=nK47Rc7gQuDCnkk6_sW1y82gBnDJ9TdHU8XwMPFBK9c,5591
|
|
186
185
|
machineconfig/scripts/python/devops_helpers/devops_status.py,sha256=PJVPhfhXq8der6Xd-_fjZfnizfM-RGfJApkRGhGBmNo,20525
|
|
187
|
-
machineconfig/scripts/python/devops_helpers/devops_update_repos.py,sha256=
|
|
186
|
+
machineconfig/scripts/python/devops_helpers/devops_update_repos.py,sha256=TLYhvMMDJCqLNsv1h4a0MtxYqQHWkRRvKnERyXd8MAs,10133
|
|
188
187
|
machineconfig/scripts/python/devops_helpers/themes/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
189
188
|
machineconfig/scripts/python/devops_helpers/themes/choose_pwsh_theme.ps1,sha256=58gFOeynADHLTdk8zqEnndBtyNGrln0jvpo76O0UWTw,3136
|
|
190
189
|
machineconfig/scripts/python/devops_helpers/themes/choose_wezterm_theme.py,sha256=pRXAGe2IpysYshsaF8CKEwHI8EGPtLcM8PtiAqM7vmM,3425
|
|
@@ -206,7 +205,7 @@ machineconfig/scripts/python/helpers_fire/fire_agents_load_balancer.py,sha256=mp
|
|
|
206
205
|
machineconfig/scripts/python/helpers_fire/helpers4.py,sha256=iKR5vVJygaDIpFXhcdma9jOpyxKtUhmqcmalFxJmY0w,4749
|
|
207
206
|
machineconfig/scripts/python/helpers_fire/prompt.txt,sha256=Ni6r-Dh0Ez2XwfOZl3MOMDhfn6BJ2z4IdK3wFvA3c_o,116
|
|
208
207
|
machineconfig/scripts/python/helpers_fire/template.ps1,sha256=NWkYlM4_l9eT52lS9NdOxmEn548gyy-bl1Q3AU3YKxY,1085
|
|
209
|
-
machineconfig/scripts/python/helpers_fire/template.sh,sha256=
|
|
208
|
+
machineconfig/scripts/python/helpers_fire/template.sh,sha256=Pzmjzf7TTTkUDiEp3rMky0QesF8qHdS4gvLzbzfyKwI,1163
|
|
210
209
|
machineconfig/scripts/python/helpers_fire/agentic_frameworks/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
211
210
|
machineconfig/scripts/python/helpers_fire/agentic_frameworks/fire_crush.json,sha256=YGuJF-qlMjhICPf0QnNfQlGNPsYrJJDlNcgmes0TFhM,252
|
|
212
211
|
machineconfig/scripts/python/helpers_fire/agentic_frameworks/fire_crush.py,sha256=NRcnjVu4-_6UqWdeRH4A2g79QIAOwnqVtiqOwn7qzlE,1614
|
|
@@ -221,7 +220,7 @@ machineconfig/scripts/python/helpers_fire_command/fire_jobs_streamlit_helper.py,
|
|
|
221
220
|
machineconfig/scripts/python/helpers_repos/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
222
221
|
machineconfig/scripts/python/helpers_repos/cloud_repo_sync.py,sha256=XGwZYoSEt6e1Q2wyU-fH76I9lNgeSX8AEqw3Lmhj5CQ,9609
|
|
223
222
|
machineconfig/scripts/python/helpers_repos/grource.py,sha256=IywQ1NDPcLXM5Tr9xhmq4tHfYspLRs3pF20LP2TlgIQ,14595
|
|
224
|
-
machineconfig/scripts/python/helpers_repos/secure_repo.py,sha256=
|
|
223
|
+
machineconfig/scripts/python/helpers_repos/secure_repo.py,sha256=HWSCmSzSwmevDmnXO8iTm6l2Yhyt2G3E_MN63SHsyUM,1024
|
|
225
224
|
machineconfig/scripts/python/nw/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
226
225
|
machineconfig/scripts/python/nw/add_ssh_key.py,sha256=dYOK9vCB6I9YSeCLO7Hid1IaFjiEs9n_gugDSddtGU8,9298
|
|
227
226
|
machineconfig/scripts/python/nw/devops_add_identity.py,sha256=aPjcHbTLhxYwWYcandyAHdwuO15ZBu3fB82u6bI0tMQ,3773
|
|
@@ -237,14 +236,14 @@ machineconfig/scripts/python/nw/onetimeshare.py,sha256=xRd8by6qUm-od2Umty2MYsXyJ
|
|
|
237
236
|
machineconfig/scripts/python/nw/ssh_debug_linux.py,sha256=VSFhyzYQeLIoSwsUFJFW1Wc89DinrpZ_YxyYB2Ndy-4,30966
|
|
238
237
|
machineconfig/scripts/python/nw/wifi_conn.py,sha256=4GdLhgma9GRmZ6OFg3oxOX-qY3sr45njPckozlpM_A0,15566
|
|
239
238
|
machineconfig/scripts/python/nw/wsl_windows_transfer.py,sha256=1ab9l-8MtAxofW5nGH9G2-BjlszaiLETu6WBECcNNhA,3546
|
|
240
|
-
machineconfig/scripts/python/repos_helpers/action.py,sha256=
|
|
239
|
+
machineconfig/scripts/python/repos_helpers/action.py,sha256=pl0U53FAGoH2yk-CGNIy3aggImXY5ZVz28-XVFHDvfA,14862
|
|
241
240
|
machineconfig/scripts/python/repos_helpers/clone.py,sha256=9vGb9NCXT0lkerPzOJjmFfhU8LSzE-_1LDvjkhgnal0,5461
|
|
242
241
|
machineconfig/scripts/python/repos_helpers/count_lines.py,sha256=ZLEajCLmlFFY969BehabqGOB9_kkpATO3Lt09L7KULk,15968
|
|
243
242
|
machineconfig/scripts/python/repos_helpers/count_lines_frontend.py,sha256=LuA4Tigy9eaBfdv2Y4Dnv0a8N0XikIUa-of9yR9LKqQ,568
|
|
244
|
-
machineconfig/scripts/python/repos_helpers/entrypoint.py,sha256=
|
|
243
|
+
machineconfig/scripts/python/repos_helpers/entrypoint.py,sha256=UagEar85QCAXX7oOqJjDJp2Vds5UQxehYPmckL_S0oI,2836
|
|
245
244
|
machineconfig/scripts/python/repos_helpers/record.py,sha256=3T5VmMbvywScZhTW2j4cGLK0T2LSWxKfnXkRTxkuLP4,10994
|
|
246
245
|
machineconfig/scripts/python/repos_helpers/sync.py,sha256=CLLWy2n2gY9beXPF-mblOQ6R7cKoenkJjMiX7tHQsBk,3091
|
|
247
|
-
machineconfig/scripts/python/repos_helpers/update.py,sha256=
|
|
246
|
+
machineconfig/scripts/python/repos_helpers/update.py,sha256=cUIMUMm-50HrY6fzxSMZnFplhToVjVPZMm1j_otTha4,11060
|
|
248
247
|
machineconfig/scripts/python/sessions_helpers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
249
248
|
machineconfig/scripts/python/sessions_helpers/sessions_multiprocess.py,sha256=6bmF1TOxzivNAIu8zsA9pu-f-RcYZLgdD4livjAf6ac,3069
|
|
250
249
|
machineconfig/scripts/windows/fzfb.ps1,sha256=Bmngm2aY8hnPa3iKAOK6EPDYdKzGLUc81wYOnJhNoqg,149
|
|
@@ -271,7 +270,7 @@ machineconfig/settings/keyboard/espanso/match/base.yml,sha256=A0QcNSzbdqSUNh42Wq
|
|
|
271
270
|
machineconfig/settings/keyboard/kanata/kanata.kbd,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
272
271
|
machineconfig/settings/lf/linux/colors,sha256=uSW9O3CkiVomxK8-JN8hQRcM71yADuOSjichbfBFTpg,4148
|
|
273
272
|
machineconfig/settings/lf/linux/icons,sha256=liVoi5nOaxFyujil2z7Pcu8l5dG7_uurJ9IJD36jVhI,7147
|
|
274
|
-
machineconfig/settings/lf/linux/lfrc,sha256=
|
|
273
|
+
machineconfig/settings/lf/linux/lfrc,sha256=GC19HaiJoSjDXihE7hfxrLLoXk4gt5osndt55XLE7f4,5417
|
|
275
274
|
machineconfig/settings/lf/linux/autocall/delete.sh,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
276
275
|
machineconfig/settings/lf/linux/autocall/on-cd.sh,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
277
276
|
machineconfig/settings/lf/linux/autocall/on-quit.sh,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
@@ -323,7 +322,7 @@ machineconfig/settings/rofi/config.rasi,sha256=nDX5B8wdXQYF1fwiOTBRJUI4l_gQbYaLa
|
|
|
323
322
|
machineconfig/settings/rofi/config_default.rasi,sha256=rTfKnC-bZuWX1l-lWQACCUOE1ShhkfykAxtXX9PlQHE,4694
|
|
324
323
|
machineconfig/settings/shells/alacritty/alacritty.toml,sha256=EbL-2Y4QunW1pvRWB2yuLCw8MMPONheJr5LFoWRieUQ,871
|
|
325
324
|
machineconfig/settings/shells/alacritty/alacritty.yml,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
326
|
-
machineconfig/settings/shells/bash/init.sh,sha256=
|
|
325
|
+
machineconfig/settings/shells/bash/init.sh,sha256=QK7RIX4LZRSFiaxKjwTijl4_QPRGtxJuLBvaZzCve8s,2263
|
|
327
326
|
machineconfig/settings/shells/hyper/.hyper.js,sha256=h-HqeYlvPvPD4Ee7828Cxo87uVkzbMGJFqXTZIWoegw,8884
|
|
328
327
|
machineconfig/settings/shells/ipy/profiles/default/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
329
328
|
machineconfig/settings/shells/ipy/profiles/default/startup/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
@@ -331,7 +330,7 @@ machineconfig/settings/shells/ipy/profiles/default/startup/playext.py,sha256=OJ3
|
|
|
331
330
|
machineconfig/settings/shells/kitty/kitty.conf,sha256=lDdx-dUX3jbKGb3BkS2f2TOpmgGiS-CI-_-lFvhD5A4,52870
|
|
332
331
|
machineconfig/settings/shells/nushell/config.nu,sha256=ug0E0NXNlCzgStScFN6VTsAkUaOTPJZB69P-LS5L2VE,1047
|
|
333
332
|
machineconfig/settings/shells/nushell/env.nu,sha256=4VmaXb-qP6qnMD5TPzkXMLFNlB5QC4l9HEzCvXZE2GQ,315
|
|
334
|
-
machineconfig/settings/shells/pwsh/init.ps1,sha256=
|
|
333
|
+
machineconfig/settings/shells/pwsh/init.ps1,sha256=Srm187Y0ht_qGjI6QAyLcnmz-6jI3BdBGrtG5-V_e7g,2683
|
|
335
334
|
machineconfig/settings/shells/pwsh/profile.ps1,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
336
335
|
machineconfig/settings/shells/starship/starship.toml,sha256=5rQTY7ZpKnrnhgu2Y9OJKUYMz5lPLIftO1p1VRuVZwQ,1150
|
|
337
336
|
machineconfig/settings/shells/vtm/settings.xml,sha256=5TNXd-i0eUGo2w3tuhY9aOkwoJdqih8_HO_U6uL2Dts,18262
|
|
@@ -368,7 +367,7 @@ machineconfig/setup_linux/others/mint_keyboard_shortcuts.sh,sha256=F5dbg0n9RHsKG
|
|
|
368
367
|
machineconfig/setup_linux/ssh/openssh_all.sh,sha256=3dg6HEUFbHQOzLfSAtzK_D_GB8rGCCp_aBnxNdnidVc,824
|
|
369
368
|
machineconfig/setup_linux/ssh/openssh_wsl.sh,sha256=1eeRGrloVB34K5z8yWVUMG5b9pV-WBfHgV9jqXiYgCQ,1398
|
|
370
369
|
machineconfig/setup_linux/web_shortcuts/android.sh,sha256=gzep6bBhK7FCBvGcXK0fdJCtkSfBOftt0aFyDZq_eMs,68
|
|
371
|
-
machineconfig/setup_linux/web_shortcuts/interactive.sh,sha256=
|
|
370
|
+
machineconfig/setup_linux/web_shortcuts/interactive.sh,sha256=Rl_1taVURx4PTBhbhQSh1m18k0qMAeFUtCardPqv5dw,448
|
|
372
371
|
machineconfig/setup_windows/__init__.py,sha256=NnSVZkIBoxoMgkj-_KAqGonH3YziBIWXOKDEcmNAGTY,386
|
|
373
372
|
machineconfig/setup_windows/apps.ps1,sha256=G5GqZ9G0aiQr_A-HaahtRdzpaTTdW6n3DRKMZWDTSPc,11214
|
|
374
373
|
machineconfig/setup_windows/uv.ps1,sha256=ukk1Abh-q-RfpoEqI2XTE2dcQJmHk0VFF6WqkK3TW8Q,350
|
|
@@ -378,7 +377,7 @@ machineconfig/setup_windows/others/power_options.ps1,sha256=c7Hn94jBD5GWF29CxMhm
|
|
|
378
377
|
machineconfig/setup_windows/ssh/add-sshkey.ps1,sha256=qfPdqCpd9KP3VhH4ifsUm1Xvec7c0QVl4Wt8JIAm9HQ,1653
|
|
379
378
|
machineconfig/setup_windows/ssh/add_identity.ps1,sha256=b8ZXpmNUSw3IMYvqSY7ClpdWPG39FS7MefoWnRhWN2U,506
|
|
380
379
|
machineconfig/setup_windows/ssh/openssh-server.ps1,sha256=OMlYQdvuJQNxF5EILLPizB6BZAT3jAmDsv1WcVVxpFQ,2529
|
|
381
|
-
machineconfig/setup_windows/web_shortcuts/interactive.ps1,sha256=
|
|
380
|
+
machineconfig/setup_windows/web_shortcuts/interactive.ps1,sha256=7hQu8ywh0Cq258OK2rBE0X1dbNrXsaZ5SIQ7yLUZJj4,548
|
|
382
381
|
machineconfig/setup_windows/wt_and_pwsh/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
383
382
|
machineconfig/setup_windows/wt_and_pwsh/set_wt_settings.py,sha256=ogxJnwpdcpH7N6dFJu95UCNoGYirZKQho_3X0F_hmXs,6791
|
|
384
383
|
machineconfig/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
@@ -421,8 +420,8 @@ machineconfig/utils/schemas/installer/installer_types.py,sha256=QClRY61QaduBPJoS
|
|
|
421
420
|
machineconfig/utils/schemas/layouts/layout_types.py,sha256=TcqlZdGVoH8htG5fHn1KWXhRdPueAcoyApppZsPAPto,2020
|
|
422
421
|
machineconfig/utils/schemas/repos/repos_types.py,sha256=ECVr-3IVIo8yjmYmVXX2mnDDN1SLSwvQIhx4KDDQHBQ,405
|
|
423
422
|
machineconfig/utils/ssh_utils/utils.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
424
|
-
machineconfig-5.
|
|
425
|
-
machineconfig-5.
|
|
426
|
-
machineconfig-5.
|
|
427
|
-
machineconfig-5.
|
|
428
|
-
machineconfig-5.
|
|
423
|
+
machineconfig-5.85.dist-info/METADATA,sha256=V5Ii7caCguM7B3mjgF1SIWJ-qFMzHGqM7VPmqRtV2JY,3013
|
|
424
|
+
machineconfig-5.85.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
425
|
+
machineconfig-5.85.dist-info/entry_points.txt,sha256=M0jwN_brZdXWhmNVeXLvdKxfkv8WhhXFZYcuKBA9qnk,418
|
|
426
|
+
machineconfig-5.85.dist-info/top_level.txt,sha256=porRtB8qms8fOIUJgK-tO83_FeH6Bpe12oUVC670teA,14
|
|
427
|
+
machineconfig-5.85.dist-info/RECORD,,
|
|
@@ -1,73 +0,0 @@
|
|
|
1
|
-
from pathlib import Path
|
|
2
|
-
from configparser import SectionProxy
|
|
3
|
-
from rich import box
|
|
4
|
-
from rich.console import Console
|
|
5
|
-
from rich.panel import Panel
|
|
6
|
-
from rich.syntax import Syntax
|
|
7
|
-
from machineconfig.utils.io import read_ini
|
|
8
|
-
|
|
9
|
-
config = read_ini(Path.home().joinpath(".ssh", "config"))
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
def sync_remote(machine_name: str) -> None:
|
|
13
|
-
console = Console()
|
|
14
|
-
console.print(
|
|
15
|
-
Panel.fit(
|
|
16
|
-
"\n".join([f"🖥️ Target machine: {machine_name}"]),
|
|
17
|
-
title="🔄 Sync Remote",
|
|
18
|
-
border_style="cyan",
|
|
19
|
-
box=box.ROUNDED,
|
|
20
|
-
)
|
|
21
|
-
)
|
|
22
|
-
|
|
23
|
-
machine_config: SectionProxy | None = None
|
|
24
|
-
if machine_name in config:
|
|
25
|
-
machine_config = config[machine_name]
|
|
26
|
-
|
|
27
|
-
if machine_config is None:
|
|
28
|
-
error_msg = f"Machine {machine_name} not found in SSH config."
|
|
29
|
-
console.print(
|
|
30
|
-
Panel.fit(
|
|
31
|
-
"\n".join([error_msg]),
|
|
32
|
-
title="❌ Error",
|
|
33
|
-
subtitle="⚠️ Unknown target machine",
|
|
34
|
-
border_style="red",
|
|
35
|
-
box=box.ROUNDED,
|
|
36
|
-
)
|
|
37
|
-
)
|
|
38
|
-
raise ValueError(error_msg)
|
|
39
|
-
|
|
40
|
-
code = f"""
|
|
41
|
-
ssh -o "HostName={machine_config["HostName"]}" -o "User={machine_config["User"]}" -o "ProxyCommand=cloudflared access ssh --hostname %h" -o "Port={machine_config["Port"]}" -o "RequestTTY=yes" -o "RemoteCommand=devops --which update; bash" {machine_name}
|
|
42
|
-
"""
|
|
43
|
-
|
|
44
|
-
syntax = Syntax(code, "bash", line_numbers=False, word_wrap=True)
|
|
45
|
-
console.print(
|
|
46
|
-
Panel(
|
|
47
|
-
syntax,
|
|
48
|
-
title=f"🔄 Sync Command | {machine_name}",
|
|
49
|
-
subtitle=f"🌐 Host: {machine_config['HostName']}",
|
|
50
|
-
border_style="blue",
|
|
51
|
-
box=box.ROUNDED,
|
|
52
|
-
)
|
|
53
|
-
)
|
|
54
|
-
|
|
55
|
-
code_path = Path.home().joinpath(".config", "machingconfig", "vscode_api", "code_temp")
|
|
56
|
-
code_path.parent.mkdir(parents=True, exist_ok=True)
|
|
57
|
-
code_path.write_text(code, encoding="utf-8")
|
|
58
|
-
code_path.chmod(0o755)
|
|
59
|
-
|
|
60
|
-
console.print(f"🚀 Executing sync command for {machine_name}...", style="bold yellow")
|
|
61
|
-
|
|
62
|
-
import subprocess
|
|
63
|
-
|
|
64
|
-
subprocess.run([str(code_path)], shell=True, check=True)
|
|
65
|
-
|
|
66
|
-
console.print(
|
|
67
|
-
Panel.fit(
|
|
68
|
-
"\n".join([f"🖥️ Machine: {machine_name}"]),
|
|
69
|
-
title="✅ Sync Completed",
|
|
70
|
-
border_style="green",
|
|
71
|
-
box=box.ROUNDED,
|
|
72
|
-
)
|
|
73
|
-
)
|
|
File without changes
|
|
File without changes
|
|
File without changes
|