machineconfig 6.78__py3-none-any.whl → 6.79__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/boxes.py +61 -0
- machineconfig/jobs/installer/installer_data.json +36 -2
- machineconfig/scripts/linux/mcfgs +29 -5
- machineconfig/scripts/python/env_manager/path_manager_tui.py +1 -1
- machineconfig/scripts/python/fire_jobs.py +14 -0
- machineconfig/scripts/python/helpers_devops/cli_config.py +1 -1
- machineconfig/scripts/python/helpers_devops/cli_config_dotfile.py +0 -7
- machineconfig/scripts/python/helpers_devops/cli_self.py +3 -3
- machineconfig/scripts/python/helpers_devops/cli_utils.py +40 -20
- machineconfig/scripts/python/helpers_fire/fire_agents_helper_types.py +14 -0
- machineconfig/scripts/python/helpers_fire_command/fire_jobs_args_helper.py +1 -0
- machineconfig/scripts/python/helpers_repos/cloud_repo_sync.py +1 -1
- machineconfig/scripts/python/nw/mount_nfs +1 -1
- machineconfig/scripts/python/utils.py +7 -5
- machineconfig/scripts/windows/mounts/mount_ssh.ps1 +1 -1
- machineconfig/setup_linux/web_shortcuts/interactive.sh +1 -1
- machineconfig/setup_windows/web_shortcuts/interactive.ps1 +1 -1
- machineconfig/utils/ssh.py +1 -1
- {machineconfig-6.78.dist-info → machineconfig-6.79.dist-info}/METADATA +1 -1
- {machineconfig-6.78.dist-info → machineconfig-6.79.dist-info}/RECORD +28 -33
- machineconfig/jobs/linux/msc/cli_agents.sh +0 -16
- machineconfig/jobs/python/__init__.py +0 -0
- machineconfig/jobs/python/python_ve_symlink.py +0 -37
- machineconfig/jobs/python/vscode/api.py +0 -57
- machineconfig/jobs/windows/msc/cli_agents.bat +0 -0
- machineconfig/jobs/windows/msc/cli_agents.ps1 +0 -0
- /machineconfig/jobs/{linux/msc → installer/linux_scripts}/lid.sh +0 -0
- /machineconfig/jobs/{linux/msc → installer/linux_scripts}/network.sh +0 -0
- /machineconfig/jobs/{windows/archive → installer/powershell_scripts}/archive_pygraphviz.ps1 +0 -0
- /machineconfig/jobs/{windows/archive → installer/powershell_scripts}/openssh-server_add_key.ps1 +0 -0
- /machineconfig/jobs/{windows/archive → installer/powershell_scripts}/openssh-server_copy-ssh-id.ps1 +0 -0
- {machineconfig-6.78.dist-info → machineconfig-6.79.dist-info}/WHEEL +0 -0
- {machineconfig-6.78.dist-info → machineconfig-6.79.dist-info}/entry_points.txt +0 -0
- {machineconfig-6.78.dist-info → machineconfig-6.79.dist-info}/top_level.txt +0 -0
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
|
|
2
|
+
|
|
3
|
+
import platform
|
|
4
|
+
from typing import Optional
|
|
5
|
+
|
|
6
|
+
from rich.console import Console
|
|
7
|
+
from rich.panel import Panel
|
|
8
|
+
from machineconfig.utils.installer_utils.installer_abc import WINDOWS_INSTALL_PATH
|
|
9
|
+
|
|
10
|
+
from machineconfig.utils.installer_utils.installer_class import Installer
|
|
11
|
+
from machineconfig.utils.schemas.installer.installer_types import InstallerData
|
|
12
|
+
|
|
13
|
+
installer_data_modified: InstallerData = {
|
|
14
|
+
"appName": "boxes",
|
|
15
|
+
"repoURL": "https://github.com/ascii-boxes/boxes",
|
|
16
|
+
"doc": "📦 ASCI draws boxes around text.",
|
|
17
|
+
"fileNamePattern": {
|
|
18
|
+
"amd64": {
|
|
19
|
+
"windows": "boxes-{version}-intel-win32.zip",
|
|
20
|
+
"linux": None,
|
|
21
|
+
"macos": None
|
|
22
|
+
},
|
|
23
|
+
"arm64": {
|
|
24
|
+
"linux": None,
|
|
25
|
+
"macos": None,
|
|
26
|
+
"windows": None
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
def main(installer_data: InstallerData, version: Optional[str] = None) -> None:
|
|
32
|
+
console = Console()
|
|
33
|
+
_ = installer_data
|
|
34
|
+
console.print(
|
|
35
|
+
Panel.fit(
|
|
36
|
+
"\n".join([f"🖥️ Platform: {platform.system()}", f"🔄 Version: {'latest' if version is None else version}"]),
|
|
37
|
+
title="📦 Boxes Installer",
|
|
38
|
+
border_style="blue",
|
|
39
|
+
)
|
|
40
|
+
)
|
|
41
|
+
|
|
42
|
+
installer = Installer(installer_data=installer_data_modified)
|
|
43
|
+
downloaded, _version_to_be_installed = installer.download(version=version)
|
|
44
|
+
decomp_path = downloaded.decompress()
|
|
45
|
+
from pathlib import Path
|
|
46
|
+
for item in decomp_path.rglob("*"):
|
|
47
|
+
if "boxes.exe" in item.name:
|
|
48
|
+
dest_exe = Path(WINDOWS_INSTALL_PATH) / "boxes.exe"
|
|
49
|
+
if dest_exe.exists():
|
|
50
|
+
dest_exe.unlink()
|
|
51
|
+
item.rename(dest_exe)
|
|
52
|
+
if "boxes.cfg" in item.name:
|
|
53
|
+
dest_cfg = Path(WINDOWS_INSTALL_PATH) / "boxes.cfg"
|
|
54
|
+
if dest_cfg.exists():
|
|
55
|
+
dest_cfg.unlink()
|
|
56
|
+
item.rename(dest_cfg)
|
|
57
|
+
console.print("📦 Boxes downloaded and decompressed.", style="bold green")
|
|
58
|
+
|
|
59
|
+
|
|
60
|
+
if __name__ == "__main__":
|
|
61
|
+
pass
|
|
@@ -173,11 +173,11 @@
|
|
|
173
173
|
},
|
|
174
174
|
{
|
|
175
175
|
"appName": "boxes",
|
|
176
|
-
"repoURL": "
|
|
176
|
+
"repoURL": "CMD",
|
|
177
177
|
"doc": "📦 ASCI draws boxes around text.",
|
|
178
178
|
"fileNamePattern": {
|
|
179
179
|
"amd64": {
|
|
180
|
-
"windows": "boxes
|
|
180
|
+
"windows": "boxes.py",
|
|
181
181
|
"linux": null,
|
|
182
182
|
"macos": null
|
|
183
183
|
},
|
|
@@ -1208,6 +1208,40 @@
|
|
|
1208
1208
|
}
|
|
1209
1209
|
}
|
|
1210
1210
|
},
|
|
1211
|
+
{
|
|
1212
|
+
"appName": "pgweb",
|
|
1213
|
+
"repoURL": "https://github.com/sosedoff/pgweb/",
|
|
1214
|
+
"doc": "🗃️ Web-based PostgreSQL database browser written in Go",
|
|
1215
|
+
"fileNamePattern": {
|
|
1216
|
+
"amd64": {
|
|
1217
|
+
"linux": "pgweb-linux-amd64.zip",
|
|
1218
|
+
"macos": "pgweb_darwin_amd64.zip",
|
|
1219
|
+
"windows": "pgweb_windows_amd64.zip"
|
|
1220
|
+
},
|
|
1221
|
+
"arm64": {
|
|
1222
|
+
"linux": "pgweb-linux-arm64.zip",
|
|
1223
|
+
"macos": "pgweb_darwin_arm64.zip",
|
|
1224
|
+
"windows": "pgweb_windows_arm64.zip"
|
|
1225
|
+
}
|
|
1226
|
+
}
|
|
1227
|
+
},
|
|
1228
|
+
{
|
|
1229
|
+
"appName": "dbgate",
|
|
1230
|
+
"repoURL": "https://github.com/dbgate/dbgate",
|
|
1231
|
+
"doc": "🗃️ Cross-platform database manager for developers and database administrators",
|
|
1232
|
+
"fileNamePattern": {
|
|
1233
|
+
"amd64": {
|
|
1234
|
+
"linux": "dbgate-{version}-linux_x64.tar.gz",
|
|
1235
|
+
"macos": "dbgate-{version}-mac_x64.zip",
|
|
1236
|
+
"windows": "dbgate-windows-latest.zip"
|
|
1237
|
+
},
|
|
1238
|
+
"arm64": {
|
|
1239
|
+
"linux": "dbgate-{version}-linux_arm64.tar.gz",
|
|
1240
|
+
"macos": "dbgate-{version}-mac_arm64.zip",
|
|
1241
|
+
"windows": "dbgate-windows-latest-arm64.exe"
|
|
1242
|
+
}
|
|
1243
|
+
}
|
|
1244
|
+
},
|
|
1211
1245
|
{
|
|
1212
1246
|
"appName": "duckdb",
|
|
1213
1247
|
"repoURL": "https://github.com/duckdb/duckdb",
|
|
@@ -1,14 +1,38 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
set -euo pipefail
|
|
1
3
|
|
|
4
|
+
RANDOM_NAME=$(date +%s%N | sha256sum | head -c 16)
|
|
5
|
+
OP_DIR="$HOME/tmp_results/tmp_scripts/machineconfig"
|
|
6
|
+
OP_PROGRAM_PATH="$OP_DIR/${RANDOM_NAME}.sh"
|
|
7
|
+
export OP_PROGRAM_PATH
|
|
2
8
|
|
|
9
|
+
# ANSI color/style codes
|
|
10
|
+
BOLD="\033[1m"
|
|
11
|
+
RESET="\033[0m"
|
|
12
|
+
GREEN="\033[32m"
|
|
13
|
+
YELLOW="\033[33m"
|
|
14
|
+
BLUE="\033[34m"
|
|
15
|
+
RED="\033[31m"
|
|
3
16
|
|
|
4
|
-
|
|
5
|
-
|
|
17
|
+
timestamp=$(date -u +"%Y-%m-%d %H:%M:%SZ")
|
|
18
|
+
|
|
19
|
+
printf "%b\n" "${BOLD}${BLUE}🛠️ machineconfig — running mcfg${RESET}"
|
|
20
|
+
printf "%b\n" "${BLUE}Timestamp:${RESET} ${timestamp}"
|
|
21
|
+
printf "%b\n" "${BLUE}Op program path:${RESET} ${OP_PROGRAM_PATH}"
|
|
6
22
|
|
|
23
|
+
# Forward arguments to the mcfg command
|
|
7
24
|
mcfg "$@"
|
|
8
25
|
|
|
9
26
|
if [[ -f "$OP_PROGRAM_PATH" ]]; then
|
|
10
|
-
|
|
11
|
-
|
|
27
|
+
printf "%b\n" "${GREEN}✅ Found op program:${RESET} ${OP_PROGRAM_PATH}"
|
|
28
|
+
printf "%b\n" "${GREEN}▶ Running...${RESET}"
|
|
29
|
+
. "$OP_PROGRAM_PATH"
|
|
30
|
+
status=$?
|
|
31
|
+
if [[ $status -eq 0 ]]; then
|
|
32
|
+
printf "%b\n" "${GREEN}✅ Completed successfully (exit ${status})${RESET}"
|
|
33
|
+
else
|
|
34
|
+
printf "%b\n" "${YELLOW}⚠️ Program exited with status ${status}${RESET}"
|
|
35
|
+
fi
|
|
12
36
|
else
|
|
13
|
-
|
|
37
|
+
printf "%b\n" "${YELLOW}⚠️ No op program found at: ${OP_PROGRAM_PATH}${RESET}"
|
|
14
38
|
fi
|
|
@@ -42,6 +42,18 @@ def route(args: FireJobArgs, fire_args: str = "") -> None:
|
|
|
42
42
|
if ipy_profile is None:
|
|
43
43
|
ipy_profile = "default"
|
|
44
44
|
|
|
45
|
+
if args.marimo:
|
|
46
|
+
tmp_dir = PathExtended.tmp().joinpath(f"tmp_scripts/marimo/{choice_file.stem}_{randstr()}")
|
|
47
|
+
tmp_dir.mkdir(parents=True, exist_ok=True)
|
|
48
|
+
script = f"""
|
|
49
|
+
cd {tmp_dir}
|
|
50
|
+
uv run --python 3.14 --with marimo marimo convert {choice_file} -o marimo_nb.py
|
|
51
|
+
uv run --project {repo_root} --with marimo marimo edit --host 0.0.0.0 marimo_nb.py
|
|
52
|
+
"""
|
|
53
|
+
from machineconfig.utils.code import exit_then_run_shell_script
|
|
54
|
+
print(f"🚀 Launching Marimo notebook for `{choice_file}`...")
|
|
55
|
+
exit_then_run_shell_script(script)
|
|
56
|
+
return
|
|
45
57
|
|
|
46
58
|
# ========================= preparing kwargs_dict
|
|
47
59
|
if choice_file.suffix == ".py":
|
|
@@ -214,6 +226,7 @@ def fire(
|
|
|
214
226
|
choose_function: Annotated[bool, typer.Option("--choose-function", "-c", help="Choose function interactively")] = False,
|
|
215
227
|
loop: Annotated[bool, typer.Option("--loop", "-l", help="Infinite recursion (runs again after completion/interruption)")] = False,
|
|
216
228
|
jupyter: Annotated[bool, typer.Option("--jupyter", "-j", help="Open in a jupyter notebook")] = False,
|
|
229
|
+
marimo: Annotated[bool, typer.Option("--marimo", "-M", help="Open in a marimo notebook")] = False,
|
|
217
230
|
module: Annotated[bool, typer.Option("--module", "-m", help="Launch the main file")] = False,
|
|
218
231
|
optimized: Annotated[bool, typer.Option("--optimized", "-O", help="Run the optimized version of the function")] = False,
|
|
219
232
|
zellij_tab: Annotated[Optional[str], typer.Option("--zellij-tab", "-z", help="Open in a new zellij tab")] = None,
|
|
@@ -244,6 +257,7 @@ def fire(
|
|
|
244
257
|
choose_function=choose_function,
|
|
245
258
|
loop=loop,
|
|
246
259
|
jupyter=jupyter,
|
|
260
|
+
marimo=marimo,
|
|
247
261
|
submit_to_cloud=submit_to_cloud,
|
|
248
262
|
remote=remote,
|
|
249
263
|
module=module,
|
|
@@ -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.79")
|
|
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])
|
|
@@ -5,13 +5,6 @@ from typing import Annotated
|
|
|
5
5
|
import typer
|
|
6
6
|
|
|
7
7
|
|
|
8
|
-
# @app.command()
|
|
9
|
-
# def symlinks_new():
|
|
10
|
-
# """🆕 SYMLINKS new. consider moving to the new config command, then may be merge it with the dotfile subcommand"""
|
|
11
|
-
# import machineconfig.jobs.python.python_ve_symlink as helper
|
|
12
|
-
# helper.main()
|
|
13
|
-
|
|
14
|
-
|
|
15
8
|
def main(
|
|
16
9
|
file: Annotated[str, typer.Argument(help="file/folder path.")],
|
|
17
10
|
overwrite: Annotated[bool, typer.Option("--overwrite", "-o", help="Overwrite.")] = False,
|
|
@@ -41,9 +41,9 @@ def install(no_copy_assets: Annotated[bool, typer.Option("--no-assets-copy", "-n
|
|
|
41
41
|
else:
|
|
42
42
|
import platform
|
|
43
43
|
if platform.system() == "Windows":
|
|
44
|
-
run_shell_script(r"""& "$HOME\.local\bin\uv.exe" tool install --upgrade "machineconfig>=6.
|
|
44
|
+
run_shell_script(r"""& "$HOME\.local\bin\uv.exe" tool install --upgrade "machineconfig>=6.79" """)
|
|
45
45
|
else:
|
|
46
|
-
run_shell_script("""$HOME/.local/bin/uv tool install --upgrade "machineconfig>=6.
|
|
46
|
+
run_shell_script("""$HOME/.local/bin/uv tool install --upgrade "machineconfig>=6.79" """)
|
|
47
47
|
from machineconfig.profile.create_shell_profile import create_default_shell_profile
|
|
48
48
|
if not no_copy_assets:
|
|
49
49
|
create_default_shell_profile() # involves copying assets too
|
|
@@ -68,7 +68,7 @@ def navigate():
|
|
|
68
68
|
path = Path(navigator.__file__).resolve().parent.joinpath("devops_navigator.py")
|
|
69
69
|
from machineconfig.utils.code import run_shell_script
|
|
70
70
|
if Path.home().joinpath("code/machineconfig").exists(): executable = f"""--project "{str(Path.home().joinpath("code/machineconfig"))}" --with textual"""
|
|
71
|
-
else: executable = """--with "machineconfig>=6.
|
|
71
|
+
else: executable = """--with "machineconfig>=6.79,textual" """
|
|
72
72
|
run_shell_script(f"""uv run {executable} {path}""")
|
|
73
73
|
|
|
74
74
|
|
|
@@ -78,15 +78,14 @@ def download(
|
|
|
78
78
|
|
|
79
79
|
|
|
80
80
|
def merge_pdfs(
|
|
81
|
-
|
|
82
|
-
pdf2: Annotated[str, typer.Argument(..., help="Path to the second PDF file.")],
|
|
81
|
+
pdfs: Annotated[list[str], typer.Argument(..., help="Paths to the PDF files to merge.")],
|
|
83
82
|
output: Annotated[Optional[str], typer.Option("--output", "-o", help="Output merged PDF file path.")] = None,
|
|
84
83
|
compress: Annotated[bool, typer.Option("--compress", "-c", help="Compress the output PDF.")] = False,
|
|
85
84
|
) -> None:
|
|
86
|
-
def merge_pdfs_internal(
|
|
85
|
+
def merge_pdfs_internal(pdfs: list[str], output: str | None, compress: bool) -> None:
|
|
87
86
|
from pypdf import PdfReader, PdfWriter
|
|
88
87
|
writer = PdfWriter()
|
|
89
|
-
for pdf_path in
|
|
88
|
+
for pdf_path in pdfs:
|
|
90
89
|
reader = PdfReader(pdf_path)
|
|
91
90
|
for page in reader.pages:
|
|
92
91
|
writer.add_page(page)
|
|
@@ -110,7 +109,7 @@ def merge_pdfs(
|
|
|
110
109
|
writer.write(output_path)
|
|
111
110
|
print(f"✅ Merged PDF saved to: {output_path}")
|
|
112
111
|
from machineconfig.utils.meta import lambda_to_python_script
|
|
113
|
-
code = lambda_to_python_script(lambda : merge_pdfs_internal(
|
|
112
|
+
code = lambda_to_python_script(lambda : merge_pdfs_internal(pdfs=pdfs, output=output, compress=compress), in_global=True, import_module=False)
|
|
114
113
|
from machineconfig.utils.code import run_shell_script, get_uv_command_executing_python_script
|
|
115
114
|
uv_command, _py_file = get_uv_command_executing_python_script(python_script=code, uv_with=["pypdf"], uv_project_dir=None)
|
|
116
115
|
run_shell_script(uv_command)
|
|
@@ -119,31 +118,52 @@ def merge_pdfs(
|
|
|
119
118
|
def compress_pdf(
|
|
120
119
|
pdf_input: Annotated[str, typer.Argument(..., help="Path to the input PDF file to compress.")],
|
|
121
120
|
output: Annotated[Optional[str], typer.Option("--output", "-o", help="Output compressed PDF file path.")] = None,
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
121
|
+
quality: Annotated[int, typer.Option("--quality", "-q", help="JPEG quality for image compression (0-100, 0=no change, 100=best).")] = 85,
|
|
122
|
+
image_dpi: Annotated[int, typer.Option("--image-dpi", "-d", help="Target DPI for image resampling. If set, images above this DPI will be downsampled.")] = 0,
|
|
123
|
+
# remove_images: Annotated[bool, typer.Option("--remove-images", "-r", help="Remove all images from the PDF.")] = False,
|
|
124
|
+
compress_streams: Annotated[bool, typer.Option("--compress-streams", "-c", help="Compress uncompressed streams.")] = True,
|
|
125
|
+
use_objstms: Annotated[bool, typer.Option("--object-streams", "-s", help="Use object streams for additional compression.")] = True,
|
|
125
126
|
) -> None:
|
|
126
|
-
def compress_pdf_internal(pdf_input: str, output: str | None,
|
|
127
|
-
|
|
128
|
-
|
|
127
|
+
def compress_pdf_internal(pdf_input: str, output: str | None, quality: int, image_dpi: int, compress_streams: bool, use_objstms: bool) -> None:
|
|
128
|
+
import pymupdf
|
|
129
|
+
from pathlib import Path
|
|
129
130
|
output_path = output if output else pdf_input.replace(".pdf", "_compressed.pdf")
|
|
130
|
-
|
|
131
|
-
|
|
131
|
+
doc = pymupdf.open(pdf_input)
|
|
132
|
+
try:
|
|
133
|
+
# if remove_images:
|
|
134
|
+
# for page in doc:
|
|
135
|
+
# page.remove_images()
|
|
136
|
+
if quality > 0 or image_dpi > 0:
|
|
137
|
+
doc.rewrite_images(
|
|
138
|
+
dpi_threshold=image_dpi if image_dpi > 0 else None,
|
|
139
|
+
dpi_target=max(72, image_dpi - 10) if image_dpi > 72 else 72,
|
|
140
|
+
quality=quality,
|
|
141
|
+
lossy=True,
|
|
142
|
+
lossless=True,
|
|
143
|
+
)
|
|
144
|
+
doc.save(
|
|
132
145
|
output_path,
|
|
133
|
-
compress_streams
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
linearize=linearize,
|
|
146
|
+
deflate=compress_streams,
|
|
147
|
+
garbage=3,
|
|
148
|
+
use_objstms=1 if use_objstms else 0,
|
|
137
149
|
)
|
|
138
|
-
|
|
150
|
+
input_size = Path(pdf_input).stat().st_size
|
|
151
|
+
output_size = Path(output_path).stat().st_size
|
|
152
|
+
ratio = (1 - output_size / input_size) * 100
|
|
153
|
+
print(f"✅ Compressed PDF saved to: {output_path}")
|
|
154
|
+
print(f" Original: {input_size / 1024 / 1024:.2f} MB")
|
|
155
|
+
print(f" Compressed: {output_size / 1024 / 1024:.2f} MB")
|
|
156
|
+
print(f" Reduction: {ratio:.1f}%")
|
|
157
|
+
finally:
|
|
158
|
+
doc.close()
|
|
139
159
|
from machineconfig.utils.meta import lambda_to_python_script
|
|
140
160
|
code = lambda_to_python_script(
|
|
141
|
-
lambda: compress_pdf_internal(pdf_input=pdf_input, output=output,
|
|
161
|
+
lambda: compress_pdf_internal(pdf_input=pdf_input, output=output, quality=quality, image_dpi=image_dpi, compress_streams=compress_streams, use_objstms=use_objstms),
|
|
142
162
|
in_global=True,
|
|
143
163
|
import_module=False,
|
|
144
164
|
)
|
|
145
165
|
from machineconfig.utils.code import run_shell_script, get_uv_command_executing_python_script
|
|
146
|
-
uv_command, _py_file = get_uv_command_executing_python_script(python_script=code, uv_with=["
|
|
166
|
+
uv_command, _py_file = get_uv_command_executing_python_script(python_script=code, uv_with=["pymupdf"], uv_project_dir=None)
|
|
147
167
|
run_shell_script(uv_command)
|
|
148
168
|
|
|
149
169
|
|
|
@@ -2,6 +2,20 @@
|
|
|
2
2
|
from typing import Literal, TypeAlias, TypedDict
|
|
3
3
|
|
|
4
4
|
|
|
5
|
+
# Vscode extensions for AI-assisted coding.
|
|
6
|
+
# Github copilot
|
|
7
|
+
# Roo
|
|
8
|
+
# Cline
|
|
9
|
+
# Kilocode
|
|
10
|
+
# Continue
|
|
11
|
+
# CodeGPT
|
|
12
|
+
# qodo (and cli)
|
|
13
|
+
|
|
14
|
+
# Editors based on AI
|
|
15
|
+
# Kiro
|
|
16
|
+
# Cursor
|
|
17
|
+
# Warp
|
|
18
|
+
|
|
5
19
|
AGENTS: TypeAlias = Literal["cursor-agent", "gemini", "qwen-code", "copilot", "crush", "q", "opencode", "kilocode", "cline", "auggie", "warp", "droid"]
|
|
6
20
|
HOST: TypeAlias = Literal["local", "docker"]
|
|
7
21
|
PROVIDER: TypeAlias = Literal["azure", "google", "aws", "openai", "anthropic", "openrouter", "xai"]
|
|
@@ -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.79" 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."
|
|
@@ -47,17 +47,19 @@ def get_app() -> typer.Typer:
|
|
|
47
47
|
app.command(name="k", no_args_is_help=False, help="Choose a process to kill", hidden=True)(kill_process)
|
|
48
48
|
app.command(name="download", no_args_is_help=True, help="[d] Download a file from a URL and optionally decompress it.")(download)
|
|
49
49
|
app.command(name="d", no_args_is_help=True, hidden=True)(download)
|
|
50
|
-
app.command(name="merge-pdfs", no_args_is_help=True, help="[m] Merge two PDF files into one.")(merge_pdfs)
|
|
51
|
-
app.command(name="m", no_args_is_help=True, hidden=True)(merge_pdfs)
|
|
52
50
|
app.command(name="get-machine-specs", no_args_is_help=False, help="[g] Get machine specifications.")(get_machine_specs)
|
|
53
51
|
app.command(name="g", no_args_is_help=False, hidden=True)(get_machine_specs)
|
|
54
52
|
app.command(name="init-project", no_args_is_help=False, help="[i] Initialize a project with a uv virtual environment and install dev packages.")(init_project)
|
|
55
53
|
app.command(name="i", no_args_is_help=False, hidden=True)(init_project)
|
|
56
|
-
app.command(name="compress-pdf", no_args_is_help=False, help="[c] Compress a PDF file.")(compress_pdf)
|
|
57
|
-
app.command(name="c", no_args_is_help=False, hidden=True)(compress_pdf)
|
|
58
|
-
return app
|
|
59
54
|
|
|
55
|
+
app.command(name="pdf-merge", no_args_is_help=True, help="[pm] Merge two PDF files into one.")(merge_pdfs)
|
|
56
|
+
app.command(name="pm", no_args_is_help=True, hidden=True)(merge_pdfs)
|
|
57
|
+
app.command(name="pdf-compress", no_args_is_help=True, help="[pc] Compress a PDF file.")(compress_pdf)
|
|
58
|
+
app.command(name="pc", no_args_is_help=True, hidden=True)(compress_pdf)
|
|
59
|
+
return app
|
|
60
60
|
|
|
61
|
+
# def func():
|
|
62
|
+
# import pycr
|
|
61
63
|
|
|
62
64
|
def main():
|
|
63
65
|
app = get_app()
|
|
@@ -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.79" 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
|
|
@@ -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.79" 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.79" mcfg $args
|
|
6
6
|
}
|
|
7
7
|
function d { mcfg devops @args }
|
|
8
8
|
function c { mcfg cloud @args }
|
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.79"
|
|
12
12
|
DEFAULT_PICKLE_SUBDIR = "tmp_results/tmp_scripts/ssh"
|
|
13
13
|
|
|
14
14
|
class SSH:
|
|
@@ -47,8 +47,9 @@ machineconfig/cluster/templates/cli_trogon.py,sha256=PFWGy8SFYIhT9r3ZV4oIEYfImsQ
|
|
|
47
47
|
machineconfig/jobs/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
48
48
|
machineconfig/jobs/installer/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
49
49
|
machineconfig/jobs/installer/check_installations.py,sha256=hkHmmT7Bx3_QWRn2v8dCKOzAapFzqHRzbe-Q08GLnKE,10743
|
|
50
|
-
machineconfig/jobs/installer/installer_data.json,sha256=
|
|
50
|
+
machineconfig/jobs/installer/installer_data.json,sha256=O2IuDvPApr1cCGG_HyVJfhT5exd2wmZmxyV81_WRXhQ,78081
|
|
51
51
|
machineconfig/jobs/installer/package_groups.py,sha256=CvSJogQgnz5HZfGS9DoCoPfmv0qUinLfh76zw4x58Q8,5262
|
|
52
|
+
machineconfig/jobs/installer/custom/boxes.py,sha256=ws8QRbDn48oKhbQntr54I0nSfkwINbprjTy0HOpuX40,1974
|
|
52
53
|
machineconfig/jobs/installer/custom/gh.py,sha256=gn7TUSrsLx7uqFqj1Z-iYglS0EYBSgtJ9jWHxaJIfXM,4119
|
|
53
54
|
machineconfig/jobs/installer/custom/hx.py,sha256=YQClQXqWtGvon8BLFGf1Fp20JPkHgZeEZ6ebmCJQQfI,5838
|
|
54
55
|
machineconfig/jobs/installer/custom_dev/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
@@ -70,7 +71,9 @@ machineconfig/jobs/installer/linux_scripts/brave.sh,sha256=_al_D5iZSwtlDRTeqjjK3
|
|
|
70
71
|
machineconfig/jobs/installer/linux_scripts/docker.sh,sha256=4NYWXCdvh6qlggVVH7FGe6jWkYuWoaJoDwLJvI4oRNQ,4471
|
|
71
72
|
machineconfig/jobs/installer/linux_scripts/docker_start.sh,sha256=8L2fLex6PU8nCpBii7yT8w4CvULZ9_JcDvxdCGJQ6cU,894
|
|
72
73
|
machineconfig/jobs/installer/linux_scripts/edge.sh,sha256=f1UI2Z2s0ToZ-QGlzkS1ThcRsTz5tMHOjxSFqfHK9SQ,1319
|
|
74
|
+
machineconfig/jobs/installer/linux_scripts/lid.sh,sha256=nUw870lc5p8GA8KT3JI29ob2wKSVKzCvOHIxEjoSTOA,864
|
|
73
75
|
machineconfig/jobs/installer/linux_scripts/nerdfont.sh,sha256=ute9wl4BcqHUqavVHWJlnMcmugdb50LbnUVlU0cUVso,1475
|
|
76
|
+
machineconfig/jobs/installer/linux_scripts/network.sh,sha256=j3kRV2mFEZK05XL2UdR9ssW2hkLH5rOYM7LU539UUEE,1358
|
|
74
77
|
machineconfig/jobs/installer/linux_scripts/ngrok.sh,sha256=K-t62nhnAHxhppTmqjubIJRHozkNHfBxXGbn1Oz3w-A,287
|
|
75
78
|
machineconfig/jobs/installer/linux_scripts/pgsql.sh,sha256=FbIteF6RVCcDdHl8seFFO7FuAX9siZpkwr9WVeKn5NA,1655
|
|
76
79
|
machineconfig/jobs/installer/linux_scripts/q.sh,sha256=lPSHBeZm4z6xv5K3cYPiOkK0A-LaNSNJN2ysVb1Qa9Y,261
|
|
@@ -79,18 +82,10 @@ machineconfig/jobs/installer/linux_scripts/timescaledb.sh,sha256=PTvo7KBpyxmWdpV
|
|
|
79
82
|
machineconfig/jobs/installer/linux_scripts/vscode.sh,sha256=fI6lNCWUjlstNE319Y-rUtimvLLb9GcNh3z9t1KRaaE,4541
|
|
80
83
|
machineconfig/jobs/installer/linux_scripts/warp-cli.sh,sha256=dnMHZjyyYARwKFa1XZbIonLntIHTRGROyr2v4Eodd6s,2157
|
|
81
84
|
machineconfig/jobs/installer/linux_scripts/wezterm.sh,sha256=hZBS0CopWr-VrGhFSVjoWATFzHqCt6V41_N8bImAQRc,1294
|
|
85
|
+
machineconfig/jobs/installer/powershell_scripts/archive_pygraphviz.ps1,sha256=UbOApUB0UiAHANOnGFHIP3zY_UCtWBhT5I6vqPhwqgE,618
|
|
82
86
|
machineconfig/jobs/installer/powershell_scripts/install_fonts.ps1,sha256=JsQfGAMkvirhiUmBNOifMlbum2PfHSs0-Akgj-J-WZw,3177
|
|
83
|
-
machineconfig/jobs/
|
|
84
|
-
machineconfig/jobs/
|
|
85
|
-
machineconfig/jobs/linux/msc/network.sh,sha256=j3kRV2mFEZK05XL2UdR9ssW2hkLH5rOYM7LU539UUEE,1358
|
|
86
|
-
machineconfig/jobs/python/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
87
|
-
machineconfig/jobs/python/python_ve_symlink.py,sha256=Mw2SK_TDLK5Ct_mEESh_Pd-Rn-B1oBSp7a_9y_eZbqw,1140
|
|
88
|
-
machineconfig/jobs/python/vscode/api.py,sha256=Et0G-VUj13D1rshYMdDrw_CUYSO7Q6XRrEQO0WjVIKU,1683
|
|
89
|
-
machineconfig/jobs/windows/archive/archive_pygraphviz.ps1,sha256=UbOApUB0UiAHANOnGFHIP3zY_UCtWBhT5I6vqPhwqgE,618
|
|
90
|
-
machineconfig/jobs/windows/archive/openssh-server_add_key.ps1,sha256=91cL3K4H2saAuzOS1GxGicpc64ZDpgvPY39YPBWyxZI,269
|
|
91
|
-
machineconfig/jobs/windows/archive/openssh-server_copy-ssh-id.ps1,sha256=-7pElYiGFXUvO4dp6rW0LXmNo65h3hFTHJWyHbmO3Xc,745
|
|
92
|
-
machineconfig/jobs/windows/msc/cli_agents.bat,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
93
|
-
machineconfig/jobs/windows/msc/cli_agents.ps1,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
87
|
+
machineconfig/jobs/installer/powershell_scripts/openssh-server_add_key.ps1,sha256=91cL3K4H2saAuzOS1GxGicpc64ZDpgvPY39YPBWyxZI,269
|
|
88
|
+
machineconfig/jobs/installer/powershell_scripts/openssh-server_copy-ssh-id.ps1,sha256=-7pElYiGFXUvO4dp6rW0LXmNo65h3hFTHJWyHbmO3Xc,745
|
|
94
89
|
machineconfig/profile/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
95
90
|
machineconfig/profile/backup.toml,sha256=Hb25sIdKVvLqOF62NgiOpGZxd45I6IhsNHu623RtfQQ,766
|
|
96
91
|
machineconfig/profile/bash_shell_profiles.md,sha256=mio0xkMTwO-F3fikWIfgcdQaPCmQrmkxJMNtZsTe9TI,514
|
|
@@ -111,7 +106,7 @@ machineconfig/scripts/linux/fzfag,sha256=x0rX7vM_YjKLZ822D2Xh0HdaTj5kR_gG3g_5_w6
|
|
|
111
106
|
machineconfig/scripts/linux/fzffg,sha256=jjeeyFkWmBbwH2taRqC3EOzZep2KR-ZYoI4UI-5kHqg,1090
|
|
112
107
|
machineconfig/scripts/linux/fzfg,sha256=ClGnJZUsIk4y0qs3W5iXGo-nd0FaqAHMsnh8uoXQFy8,1190
|
|
113
108
|
machineconfig/scripts/linux/fzfrga,sha256=xSdws6ae28ZXkkqz_uupZ0MYw_vxE2qpLT2DLS3WITM,460
|
|
114
|
-
machineconfig/scripts/linux/mcfgs,sha256=
|
|
109
|
+
machineconfig/scripts/linux/mcfgs,sha256=l8xt5BLEmN_Xa7OD9ZgpPc85hG4R1cM5CIRFYQi2VjI,1125
|
|
115
110
|
machineconfig/scripts/linux/skrg,sha256=JgQJGwxaChr148bDnpTB0rrqZMe2o2zGSDA9x_oUhWM,133
|
|
116
111
|
machineconfig/scripts/linux/warp-cli.sh,sha256=shFFZ9viet_DSEEHT8kxlGRHoJpO6o85pKYnc3rIkaA,3868
|
|
117
112
|
machineconfig/scripts/linux/z_ls,sha256=h5YJYfnJrmtLe4c2iKk5aZdaK_Zeaj3CpQX8SSr7fr0,3310
|
|
@@ -126,12 +121,12 @@ machineconfig/scripts/python/cloud.py,sha256=yAD6ciKiEtv2CH3g2NScDK5cpCZQi7Vu8yy
|
|
|
126
121
|
machineconfig/scripts/python/croshell.py,sha256=QyQbVboNqDQHJkUeSsJvdT212t4TW46yat3GBzneqsQ,8649
|
|
127
122
|
machineconfig/scripts/python/devops.py,sha256=Lv4d-UlyOREj4VTcu_pxswYo54Mawe3XGeKjreGQDYg,2222
|
|
128
123
|
machineconfig/scripts/python/devops_navigator.py,sha256=5Cm384D4S8_GsvMzTwr0C16D0ktf8_5Mk5bEJncwDO8,237
|
|
129
|
-
machineconfig/scripts/python/fire_jobs.py,sha256=
|
|
124
|
+
machineconfig/scripts/python/fire_jobs.py,sha256=UrxCwFKg7ZtBYKFpsSHe62ngcpmHFomSxFWDLnM7CmQ,14645
|
|
130
125
|
machineconfig/scripts/python/ftpx.py,sha256=A13hL_tDYfcsaK9PkshK-0lrUS6KPhPCtwqWtLSo6IM,9764
|
|
131
126
|
machineconfig/scripts/python/interactive.py,sha256=zt3g6nGKR_Y5A57UnR4Y5-JpLzrpnCOSaqU1bnaikK0,11666
|
|
132
127
|
machineconfig/scripts/python/mcfg.py,sha256=TB5lZDZDImGqX4_mMSEv4ZoFigIPA0RXn-9H2cmPS6g,2457
|
|
133
128
|
machineconfig/scripts/python/sessions.py,sha256=JfN8M7r7f8DkfiGJ4jz2NfXvABm90nOZJmLGxPgw_2M,9518
|
|
134
|
-
machineconfig/scripts/python/utils.py,sha256=
|
|
129
|
+
machineconfig/scripts/python/utils.py,sha256=Pdk75UjapwE3gou-CMHtqqPhNhpPZP2t1Pm1LPbam-Y,3280
|
|
135
130
|
machineconfig/scripts/python/ai/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
136
131
|
machineconfig/scripts/python/ai/generate_files.py,sha256=VfjKdwgF8O6E4oiRtfWNliibLmmwGe7f9ld6wpOsXTw,14498
|
|
137
132
|
machineconfig/scripts/python/ai/initai.py,sha256=P4-NCLJPWeNef_k-l4TQ92AB1Xm1k3xzdqSBIjmevnQ,1573
|
|
@@ -164,7 +159,7 @@ machineconfig/scripts/python/ai/solutions/opencode/opencode.json,sha256=nahHKRw1
|
|
|
164
159
|
machineconfig/scripts/python/ai/solutions/opencode/opencode.py,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
|
|
165
160
|
machineconfig/scripts/python/env_manager/__init__.py,sha256=E4LAHbU1wo2dLjE36ntv8U7QNTe8TasujUAYK9SLvWk,6
|
|
166
161
|
machineconfig/scripts/python/env_manager/path_manager_backend.py,sha256=ZVGlGJALhg7zNABDdwXxL7MFbL2BXPebObipXSLGbic,1552
|
|
167
|
-
machineconfig/scripts/python/env_manager/path_manager_tui.py,sha256=
|
|
162
|
+
machineconfig/scripts/python/env_manager/path_manager_tui.py,sha256=Uo1YkX85ebzWSDInbudXg2rJ-qbMk0WszicY5u4ZND8,6932
|
|
168
163
|
machineconfig/scripts/python/helpers_cloud/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
169
164
|
machineconfig/scripts/python/helpers_cloud/cloud_copy.py,sha256=OV1w3ajFVFs6FJytjIPOntYB_aW2ywGohKi73V4Dm2Y,8691
|
|
170
165
|
machineconfig/scripts/python/helpers_cloud/cloud_helpers.py,sha256=GA-bxXouUmknk9fyQAsPT-Xl3RG9-yBed71a2tu9Pig,4914
|
|
@@ -180,15 +175,15 @@ machineconfig/scripts/python/helpers_croshell/start_slidev.py,sha256=HfJReOusTPh
|
|
|
180
175
|
machineconfig/scripts/python/helpers_croshell/viewer.py,sha256=heQNjB9fwn3xxbPgMofhv1Lp6Vtkl76YjjexWWBM0pM,2041
|
|
181
176
|
machineconfig/scripts/python/helpers_croshell/viewer_template.py,sha256=ve3Q1-iKhCLc0VJijKvAeOYp2xaFOeIOC_XW956GWCc,3944
|
|
182
177
|
machineconfig/scripts/python/helpers_devops/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
183
|
-
machineconfig/scripts/python/helpers_devops/cli_config.py,sha256=
|
|
184
|
-
machineconfig/scripts/python/helpers_devops/cli_config_dotfile.py,sha256=
|
|
178
|
+
machineconfig/scripts/python/helpers_devops/cli_config.py,sha256=_xa_QKyCE-HFrMNO2xSFQ7hReI1Kaon4tDAEa9ahyjY,7218
|
|
179
|
+
machineconfig/scripts/python/helpers_devops/cli_config_dotfile.py,sha256=fluxRtD6hlbh131_RmeKr2Dy8tZpeC4H9-wp2sYt0dM,2486
|
|
185
180
|
machineconfig/scripts/python/helpers_devops/cli_data.py,sha256=79Xvx7YnbueruEnl69hrDg2AhVxf_zCUdlVcKfeMGyQ,1774
|
|
186
181
|
machineconfig/scripts/python/helpers_devops/cli_nw.py,sha256=B5Xa9pV5MdC4vPo3EmKaHvNMlThsY3c5F92YPE5j3rI,4176
|
|
187
182
|
machineconfig/scripts/python/helpers_devops/cli_repos.py,sha256=Xwkv1adqHZvTfRSPWiqSK3PZ1XADyx3llw_YkbxaKyE,12505
|
|
188
|
-
machineconfig/scripts/python/helpers_devops/cli_self.py,sha256=
|
|
183
|
+
machineconfig/scripts/python/helpers_devops/cli_self.py,sha256=JN_3naxPT76qTUWl4TwbAs89Wr8XIiMudM2yoYGFDrg,6225
|
|
189
184
|
machineconfig/scripts/python/helpers_devops/cli_share_server.py,sha256=q9pFJ6AxPuygMr3onMNOKEuuQHbVE_6Qoyo7xRT5FX0,4196
|
|
190
185
|
machineconfig/scripts/python/helpers_devops/cli_terminal.py,sha256=k_PzXaiGyE0vXr0Ii1XcJz2A7UvyPJrR31TRWt4RKRI,6019
|
|
191
|
-
machineconfig/scripts/python/helpers_devops/cli_utils.py,sha256=
|
|
186
|
+
machineconfig/scripts/python/helpers_devops/cli_utils.py,sha256=KGIU1uTWC4g3kvBBkGrM-TtmcR8V1jTxVMGKXDSLnLA,10183
|
|
192
187
|
machineconfig/scripts/python/helpers_devops/devops_backup_retrieve.py,sha256=Dn8luB6QJzxKiiFSC-NMqiYddWZoca3A8eOjMYZDzTc,5598
|
|
193
188
|
machineconfig/scripts/python/helpers_devops/devops_status.py,sha256=PJVPhfhXq8der6Xd-_fjZfnizfM-RGfJApkRGhGBmNo,20525
|
|
194
189
|
machineconfig/scripts/python/helpers_devops/devops_update_repos.py,sha256=kSln8_-Wn7Qu0NaKdt-QTN_bBVyTIAWHH8xVYKK-vCM,10133
|
|
@@ -200,7 +195,7 @@ machineconfig/scripts/python/helpers_devops/themes/choose_wezterm_theme.py,sha25
|
|
|
200
195
|
machineconfig/scripts/python/helpers_fire/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
201
196
|
machineconfig/scripts/python/helpers_fire/fire_agents_help_launch.py,sha256=GBhi9WvmQDwJOcF3sjvge5x5U7TUokcVo4K4CbEm-OI,5619
|
|
202
197
|
machineconfig/scripts/python/helpers_fire/fire_agents_help_search.py,sha256=qIfSS_su2YJ1Gb0_lu4cbjlJlYMBw0v52NTGiSrGjk8,2991
|
|
203
|
-
machineconfig/scripts/python/helpers_fire/fire_agents_helper_types.py,sha256=
|
|
198
|
+
machineconfig/scripts/python/helpers_fire/fire_agents_helper_types.py,sha256=umX-Na6W_8kGZX7ccElnvGP8yxJ8prGBiG3-dO9vXJ0,1304
|
|
204
199
|
machineconfig/scripts/python/helpers_fire/fire_agents_load_balancer.py,sha256=mpqx3uaQdBXYieuvhdK-qsvLepf9oIMo3pwPj9mSEDI,1079
|
|
205
200
|
machineconfig/scripts/python/helpers_fire/helpers4.py,sha256=iKR5vVJygaDIpFXhcdma9jOpyxKtUhmqcmalFxJmY0w,4749
|
|
206
201
|
machineconfig/scripts/python/helpers_fire/prompt.txt,sha256=Ni6r-Dh0Ez2XwfOZl3MOMDhfn6BJ2z4IdK3wFvA3c_o,116
|
|
@@ -214,7 +209,7 @@ machineconfig/scripts/python/helpers_fire/agentic_frameworks/fire_gemini.py,sha2
|
|
|
214
209
|
machineconfig/scripts/python/helpers_fire/agentic_frameworks/fire_qwen.py,sha256=uh0Blj_EHnUbLPqmqgc67HwaVuz5CllC3q2ILEtG7sU,1694
|
|
215
210
|
machineconfig/scripts/python/helpers_fire_command/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
216
211
|
machineconfig/scripts/python/helpers_fire_command/cloud_manager.py,sha256=YN0DYLzPKtMBaks-EAVwFmkCu3XeHWMr1D21uqX5dDk,3429
|
|
217
|
-
machineconfig/scripts/python/helpers_fire_command/fire_jobs_args_helper.py,sha256=
|
|
212
|
+
machineconfig/scripts/python/helpers_fire_command/fire_jobs_args_helper.py,sha256=teioVhLI-skNpbYOJGo7WJEnz_FHzyidHff174CZSg8,4359
|
|
218
213
|
machineconfig/scripts/python/helpers_fire_command/fire_jobs_route_helper.py,sha256=4MrlCVijbx7GQyAN9s5LDh-7heSjMXYrXdqiP6uC3ug,5378
|
|
219
214
|
machineconfig/scripts/python/helpers_fire_command/fire_jobs_streamlit_helper.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
220
215
|
machineconfig/scripts/python/helpers_navigator/__init__.py,sha256=5qPsu5ztoj0gkrioY0Yg0GTZ9JAn6SG2gAk-6DpuQ00,764
|
|
@@ -226,7 +221,7 @@ machineconfig/scripts/python/helpers_navigator/main_app.py,sha256=R1vOBMUKaiFHOg
|
|
|
226
221
|
machineconfig/scripts/python/helpers_navigator/search_bar.py,sha256=kDi8Jhxap8wdm7YpDBtfhwcPnSqDPFrV2LqbcSBWMT4,414
|
|
227
222
|
machineconfig/scripts/python/helpers_repos/action.py,sha256=9AxWy8mB9HFeV5t11-qD_l-KA5jkUmm0pXVKT1L6-Qk,14894
|
|
228
223
|
machineconfig/scripts/python/helpers_repos/clone.py,sha256=UULEG5xJuXlPGU0nqXH6U45jA9DOFqLw8B4iPytCwOQ,5471
|
|
229
|
-
machineconfig/scripts/python/helpers_repos/cloud_repo_sync.py,sha256=
|
|
224
|
+
machineconfig/scripts/python/helpers_repos/cloud_repo_sync.py,sha256=l1OXbC4QNme2xDytBIbEFX7KNZSTuPsOW9BnnooJEww,10450
|
|
230
225
|
machineconfig/scripts/python/helpers_repos/count_lines.py,sha256=Q5c7b-DxvTlQmljoic7niTuiAVyFlwYvkVQ7uRJHiTo,16009
|
|
231
226
|
machineconfig/scripts/python/helpers_repos/count_lines_frontend.py,sha256=vSDtrF4829jziwp6WZmGt9G8MJ9jY4hfXqtf0vhkYSE,607
|
|
232
227
|
machineconfig/scripts/python/helpers_repos/entrypoint.py,sha256=WYEFGUJp9HWImlFjbs_hiFZrUqM_KEYm5VvSUjWd04I,2810
|
|
@@ -242,7 +237,7 @@ machineconfig/scripts/python/nw/add_ssh_key.py,sha256=9JLmWu8pE7PAL5VuCFd19iVEdC
|
|
|
242
237
|
machineconfig/scripts/python/nw/devops_add_identity.py,sha256=aPjcHbTLhxYwWYcandyAHdwuO15ZBu3fB82u6bI0tMQ,3773
|
|
243
238
|
machineconfig/scripts/python/nw/devops_add_ssh_key.py,sha256=CkIl85hZLtG9k7yXLSzqi88YrilHV4hIUWHAPBwxWjw,8922
|
|
244
239
|
machineconfig/scripts/python/nw/mount_drive,sha256=zemKofv7hOmRN_V3qK0q580GkfWw3VdikyVVQyiu8j8,3514
|
|
245
|
-
machineconfig/scripts/python/nw/mount_nfs,sha256=
|
|
240
|
+
machineconfig/scripts/python/nw/mount_nfs,sha256=6OpFOWk5LlT2dmMmqENudAqmMNGGAm8mZxCrV-o8MfY,1855
|
|
246
241
|
machineconfig/scripts/python/nw/mount_nfs.py,sha256=lOMDY4RS7tx8gsCazVR5tNNwFbaRyO2PJlnwBCDQgCM,3573
|
|
247
242
|
machineconfig/scripts/python/nw/mount_nw_drive,sha256=BqjGBCbwe5ZAsZDO3L0zHhh_gJfZy1CYOcqXA4Y-WkQ,2262
|
|
248
243
|
machineconfig/scripts/python/nw/mount_nw_drive.py,sha256=iru6AtnTyvyuk6WxlK5R4lDkuliVpPV5_uBTVVhXtjQ,1550
|
|
@@ -260,7 +255,7 @@ machineconfig/scripts/windows/mcfgs.ps1,sha256=uuK5pEz38D3_SOjfhbvkDT8Kt4I62YhNz
|
|
|
260
255
|
machineconfig/scripts/windows/mounts/mount_nfs.ps1,sha256=XrAdzpxE6a4OccSmWJ7YWHJTnsZK8uXnFE5j9GOPA20,2026
|
|
261
256
|
machineconfig/scripts/windows/mounts/mount_nw.ps1,sha256=puxcfZc3ZCJerm8pj8OZGVoTYkhzp-h7oV-MrksSqIE,454
|
|
262
257
|
machineconfig/scripts/windows/mounts/mount_smb.ps1,sha256=PzYWpIO9BpwXjdWlUQL9pnMRnOGNSkxfh4bHukJFme8,69
|
|
263
|
-
machineconfig/scripts/windows/mounts/mount_ssh.ps1,sha256=
|
|
258
|
+
machineconfig/scripts/windows/mounts/mount_ssh.ps1,sha256=ds2EyRuM3e5SI7-XX9sX2Tr_27yO3yfPVjvnofpeIcU,322
|
|
264
259
|
machineconfig/scripts/windows/mounts/share_cloud.cmd,sha256=exD7JCdxw2LqVjw2MKCYHbVZlEqmelXtwnATng-dhJ4,1028
|
|
265
260
|
machineconfig/scripts/windows/mounts/share_smb.ps1,sha256=U7x8ULYSjbgzTtiHNSKQuTaZ_apilDvkGV5Xm5hXk5M,384
|
|
266
261
|
machineconfig/scripts/windows/mounts/unlock_bitlocker.ps1,sha256=Wv-SLscdckV-1mG3p82VXKPY9zW3hgkRmcLUXIZ1daE,253
|
|
@@ -377,7 +372,7 @@ machineconfig/setup_linux/others/cli_installation.sh,sha256=gVvszYZJgKPRJx2SEaE3
|
|
|
377
372
|
machineconfig/setup_linux/others/mint_keyboard_shortcuts.sh,sha256=F5dbg0n9RHsKGPn8fIdZMn3p0RrHEkb8rWBGsdVGbus,1207
|
|
378
373
|
machineconfig/setup_linux/ssh/openssh_all.sh,sha256=3dg6HEUFbHQOzLfSAtzK_D_GB8rGCCp_aBnxNdnidVc,824
|
|
379
374
|
machineconfig/setup_linux/ssh/openssh_wsl.sh,sha256=1eeRGrloVB34K5z8yWVUMG5b9pV-WBfHgV9jqXiYgCQ,1398
|
|
380
|
-
machineconfig/setup_linux/web_shortcuts/interactive.sh,sha256=
|
|
375
|
+
machineconfig/setup_linux/web_shortcuts/interactive.sh,sha256=g-MVdfkpU98FApzB2EGb_K2t6iU1UrEW-aDKdVP6OsI,464
|
|
381
376
|
machineconfig/setup_mac/__init__.py,sha256=Q1waupi5vCBroLqc8Rtnw69_7jLnm2Cs7_zH_GSZgMs,616
|
|
382
377
|
machineconfig/setup_mac/apps.sh,sha256=R0N6fBwLCzwy4qAormyMerXXXrHazibSkY6NrNOpTQU,2772
|
|
383
378
|
machineconfig/setup_mac/uv.sh,sha256=CSN8oCBKS-LK1vJJqYOhAMcrouTf4Q_F3cpplc_ddMA,1157
|
|
@@ -391,7 +386,7 @@ machineconfig/setup_windows/others/power_options.ps1,sha256=c7Hn94jBD5GWF29CxMhm
|
|
|
391
386
|
machineconfig/setup_windows/ssh/add-sshkey.ps1,sha256=qfPdqCpd9KP3VhH4ifsUm1Xvec7c0QVl4Wt8JIAm9HQ,1653
|
|
392
387
|
machineconfig/setup_windows/ssh/add_identity.ps1,sha256=b8ZXpmNUSw3IMYvqSY7ClpdWPG39FS7MefoWnRhWN2U,506
|
|
393
388
|
machineconfig/setup_windows/ssh/openssh-server.ps1,sha256=OMlYQdvuJQNxF5EILLPizB6BZAT3jAmDsv1WcVVxpFQ,2529
|
|
394
|
-
machineconfig/setup_windows/web_shortcuts/interactive.ps1,sha256=
|
|
389
|
+
machineconfig/setup_windows/web_shortcuts/interactive.ps1,sha256=ySfDew5rnUoW48kZbQFq1RWDSCHm26KNNnu_4ythKNI,581
|
|
395
390
|
machineconfig/setup_windows/wt_and_pwsh/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
396
391
|
machineconfig/setup_windows/wt_and_pwsh/set_wt_settings.py,sha256=ogxJnwpdcpH7N6dFJu95UCNoGYirZKQho_3X0F_hmXs,6791
|
|
397
392
|
machineconfig/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
@@ -409,7 +404,7 @@ machineconfig/utils/procs.py,sha256=YPA_vEYQGwPd_o_Lc6nOTBo5BrB1tSs8PJ42XiGpenM,
|
|
|
409
404
|
machineconfig/utils/scheduler.py,sha256=fguwvINyaupOxdU5Uadyxalh_jXTXDzt0ioEgjEOKcM,14705
|
|
410
405
|
machineconfig/utils/scheduling.py,sha256=6x5zLA7sY5gohrEtN6zGrXIqNFasMoyBfwLcOjrjiME,11109
|
|
411
406
|
machineconfig/utils/source_of_truth.py,sha256=ZAnCRltiM07ig--P6g9_6nEAvNFC4X4ERFTVcvpIYsE,764
|
|
412
|
-
machineconfig/utils/ssh.py,sha256=
|
|
407
|
+
machineconfig/utils/ssh.py,sha256=lnGtFWzD7kPRVRvLrxU_ZQHqscRwMqbCThd8IR58jfM,38991
|
|
413
408
|
machineconfig/utils/terminal.py,sha256=VDgsjTjBmMGgZN0YIc0pJ8YksLDrBtiXON1EThy7_is,4264
|
|
414
409
|
machineconfig/utils/tst.py,sha256=6u1GI49NdcpxH2BYGAusNfY5q9G_ytCGVzFM5b6HYpM,674
|
|
415
410
|
machineconfig/utils/upgrade_packages.py,sha256=TCohwiwc0btSsInOloxDVuk5i88yc1vBK8RZcoMWoUw,3425
|
|
@@ -438,8 +433,8 @@ machineconfig/utils/schemas/installer/installer_types.py,sha256=QClRY61QaduBPJoS
|
|
|
438
433
|
machineconfig/utils/schemas/layouts/layout_types.py,sha256=TcqlZdGVoH8htG5fHn1KWXhRdPueAcoyApppZsPAPto,2020
|
|
439
434
|
machineconfig/utils/schemas/repos/repos_types.py,sha256=ECVr-3IVIo8yjmYmVXX2mnDDN1SLSwvQIhx4KDDQHBQ,405
|
|
440
435
|
machineconfig/utils/ssh_utils/utils.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
441
|
-
machineconfig-6.
|
|
442
|
-
machineconfig-6.
|
|
443
|
-
machineconfig-6.
|
|
444
|
-
machineconfig-6.
|
|
445
|
-
machineconfig-6.
|
|
436
|
+
machineconfig-6.79.dist-info/METADATA,sha256=pLf4KEFUES6kyMpjq-biKf-5-FcWJanWwE8KcflCGdM,2928
|
|
437
|
+
machineconfig-6.79.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
438
|
+
machineconfig-6.79.dist-info/entry_points.txt,sha256=2OetLXw0yXtfG6MmJXbzZipCQfPueeM3oMgTORSEfYs,465
|
|
439
|
+
machineconfig-6.79.dist-info/top_level.txt,sha256=porRtB8qms8fOIUJgK-tO83_FeH6Bpe12oUVC670teA,14
|
|
440
|
+
machineconfig-6.79.dist-info/RECORD,,
|
|
File without changes
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
"""Symlinks"""
|
|
2
|
-
|
|
3
|
-
from rich import box
|
|
4
|
-
from rich.console import Console
|
|
5
|
-
from rich.panel import Panel
|
|
6
|
-
|
|
7
|
-
from machineconfig.utils.path_extended import PathExtended
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
def main() -> None:
|
|
11
|
-
console = Console()
|
|
12
|
-
console.print(
|
|
13
|
-
Panel.fit(
|
|
14
|
-
"\n".join(["Create symlinks for virtual environments"]),
|
|
15
|
-
title="🔗 Symlink Creator",
|
|
16
|
-
border_style="cyan",
|
|
17
|
-
box=box.ROUNDED,
|
|
18
|
-
)
|
|
19
|
-
)
|
|
20
|
-
target = PathExtended(input("🎯 Symlink to which target? ")).expanduser().absolute()
|
|
21
|
-
source = input(f"📍 Symlink from which source? [default to: CWD/{target.name}] ") or PathExtended.cwd().joinpath(target.name)
|
|
22
|
-
if isinstance(source, str):
|
|
23
|
-
source = PathExtended(source).expanduser().absolute()
|
|
24
|
-
source.symlink_to(target, overwrite=True)
|
|
25
|
-
console.print(
|
|
26
|
-
Panel.fit(
|
|
27
|
-
"\n".join([f"📍 Source: {source}", f"🎯 Target: {target}"]),
|
|
28
|
-
title="✅ Symlink Created",
|
|
29
|
-
border_style="green",
|
|
30
|
-
box=box.ROUNDED,
|
|
31
|
-
)
|
|
32
|
-
)
|
|
33
|
-
console.print("🔗 Finished creating symlink.", style="bold cyan")
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
if __name__ == "__main__":
|
|
37
|
-
pass
|
|
@@ -1,57 +0,0 @@
|
|
|
1
|
-
from pathlib import Path
|
|
2
|
-
from typing import Annotated
|
|
3
|
-
|
|
4
|
-
import typer
|
|
5
|
-
from rich import box
|
|
6
|
-
from rich.console import Console
|
|
7
|
-
from rich.panel import Panel
|
|
8
|
-
from rich.syntax import Syntax
|
|
9
|
-
|
|
10
|
-
from machineconfig.utils.accessories import randstr
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
def open_file_in_new_instance(file_path: str):
|
|
14
|
-
import git
|
|
15
|
-
|
|
16
|
-
repo = git.Repo(search_parent_directories=True)
|
|
17
|
-
repo_path = repo.working_tree_dir
|
|
18
|
-
# Ensure repo_path is not None before passing to Path
|
|
19
|
-
repo_name = Path(repo_path if repo_path is not None else ".").name
|
|
20
|
-
repo_copy_name = f"{repo_name}_{randstr(5)}"
|
|
21
|
-
copy_path = Path.home().joinpath(".config", "machingconfig", "vscode_api", repo_name, repo_copy_name)
|
|
22
|
-
copy_path.parent.mkdir(parents=True, exist_ok=True)
|
|
23
|
-
code = f"""
|
|
24
|
-
ln -s {repo_path} {copy_path}
|
|
25
|
-
cd {copy_path}
|
|
26
|
-
code --profile bitProfile --new-window {file_path}
|
|
27
|
-
"""
|
|
28
|
-
console = Console()
|
|
29
|
-
panel = Panel(
|
|
30
|
-
Syntax(code, lexer="bash"),
|
|
31
|
-
title="🔍 VS CODE API | Opening file in new instance",
|
|
32
|
-
subtitle=f"📂 {file_path}",
|
|
33
|
-
border_style="bright_blue",
|
|
34
|
-
box=box.DOUBLE,
|
|
35
|
-
padding=(1, 2),
|
|
36
|
-
)
|
|
37
|
-
console.print(panel)
|
|
38
|
-
|
|
39
|
-
code_path = Path.home().joinpath(".config", "machingconfig", "vscode_api", "code_temp")
|
|
40
|
-
code_path.parent.mkdir(parents=True, exist_ok=True)
|
|
41
|
-
code_path.write_text(code, encoding="utf-8")
|
|
42
|
-
code_path.chmod(0o755)
|
|
43
|
-
import subprocess
|
|
44
|
-
|
|
45
|
-
subprocess.run([str(code_path)], shell=True, check=True)
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
def main(file_path: Annotated[str, typer.Argument(help="Path to the file to open")]) -> None:
|
|
49
|
-
open_file_in_new_instance(file_path)
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
def arg_parser() -> None:
|
|
53
|
-
typer.run(main)
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
if __name__ == "__main__":
|
|
57
|
-
arg_parser()
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
/machineconfig/jobs/{windows/archive → installer/powershell_scripts}/openssh-server_add_key.ps1
RENAMED
|
File without changes
|
/machineconfig/jobs/{windows/archive → installer/powershell_scripts}/openssh-server_copy-ssh-id.ps1
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|