machineconfig 5.27__py3-none-any.whl → 5.28__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/cluster/sessions_managers/zellij_local_manager.py +1 -0
- machineconfig/jobs/installer/linux_scripts/brave.sh +4 -14
- machineconfig/jobs/installer/linux_scripts/docker.sh +5 -17
- machineconfig/jobs/installer/linux_scripts/docker_start.sh +6 -14
- machineconfig/jobs/installer/linux_scripts/edge.sh +3 -11
- machineconfig/jobs/installer/linux_scripts/nerdfont.sh +5 -17
- machineconfig/jobs/installer/linux_scripts/pgsql.sh +3 -11
- machineconfig/jobs/installer/linux_scripts/redis.sh +5 -17
- machineconfig/jobs/installer/linux_scripts/timescaledb.sh +6 -20
- machineconfig/jobs/installer/linux_scripts/vscode.sh +5 -17
- machineconfig/jobs/installer/linux_scripts/warp-cli.sh +5 -17
- machineconfig/jobs/installer/linux_scripts/wezterm.sh +3 -11
- machineconfig/jobs/linux/msc/lid.sh +2 -8
- machineconfig/jobs/linux/msc/network.sh +2 -8
- machineconfig/scripts/cloud/init.sh +6 -20
- machineconfig/scripts/linux/share_cloud.sh +11 -25
- machineconfig/scripts/python/agents.py +22 -31
- machineconfig/scripts/python/cloud_repo_sync.py +14 -29
- machineconfig/scripts/python/devops.py +7 -10
- machineconfig/scripts/python/helpers/repo_sync_helpers.py +1 -1
- machineconfig/scripts/python/helpers_fire/fire_agents_help_launch.py +30 -48
- machineconfig/scripts/python/helpers_fire/fire_agents_helper_types.py +24 -6
- machineconfig/scripts/python/helpers_fire/fire_crush.json +14 -0
- machineconfig/scripts/python/helpers_fire/fire_crush.py +37 -0
- machineconfig/scripts/python/helpers_fire/fire_cursor_agents.py +23 -0
- machineconfig/scripts/python/helpers_fire/fire_gemini.py +41 -0
- machineconfig/scripts/python/helpers_fire/fire_q.py +19 -0
- machineconfig/scripts/python/helpers_fire/prompt.txt +2 -0
- machineconfig/scripts/python/helpers_fire/template.ps1 +0 -0
- machineconfig/scripts/python/helpers_fire/template.sh +31 -0
- machineconfig/scripts/python/interactive.py +21 -19
- machineconfig/scripts/python/repos.py +4 -1
- machineconfig/scripts/python/secure_repo.py +15 -0
- machineconfig/settings/broot/br.sh +0 -4
- machineconfig/setup_linux/__init__.py +2 -2
- machineconfig/setup_linux/apps.sh +7 -9
- machineconfig/setup_linux/apps_desktop.sh +11 -35
- machineconfig/setup_linux/apps_gui.sh +4 -14
- machineconfig/setup_linux/nix/cli_installation.sh +9 -29
- machineconfig/setup_linux/web_shortcuts/interactive.sh +1 -1
- machineconfig/setup_windows/__init__.py +2 -2
- machineconfig/utils/code.py +3 -3
- machineconfig/utils/files/read.py +1 -1
- machineconfig/utils/installer.py +15 -21
- machineconfig/utils/installer_utils/installer.py +3 -4
- machineconfig/utils/installer_utils/installer_abc.py +4 -4
- machineconfig/utils/installer_utils/installer_class.py +11 -46
- machineconfig/utils/io.py +0 -1
- {machineconfig-5.27.dist-info → machineconfig-5.28.dist-info}/METADATA +3 -3
- {machineconfig-5.27.dist-info → machineconfig-5.28.dist-info}/RECORD +57 -50
- {machineconfig-5.27.dist-info → machineconfig-5.28.dist-info}/entry_points.txt +0 -1
- machineconfig/scripts/linux/cloud_repo_sync +0 -2
- machineconfig/scripts/windows/cloud_repo_sync.ps1 +0 -1
- /machineconfig/setup_linux/{repos.sh → machineconfig.sh} +0 -0
- /machineconfig/setup_linux/{ve.sh → uv.sh} +0 -0
- /machineconfig/setup_windows/{repos.ps1 → machineconfig.ps1} +0 -0
- /machineconfig/setup_windows/{ve.ps1 → uv.ps1} +0 -0
- {machineconfig-5.27.dist-info → machineconfig-5.28.dist-info}/WHEEL +0 -0
- {machineconfig-5.27.dist-info → machineconfig-5.28.dist-info}/top_level.txt +0 -0
machineconfig/utils/installer.py
CHANGED
|
@@ -1,17 +1,15 @@
|
|
|
1
1
|
"""package manager"""
|
|
2
2
|
|
|
3
3
|
from machineconfig.utils.installer_utils.installer_abc import check_if_installed_already, parse_apps_installer_linux, parse_apps_installer_windows
|
|
4
|
-
|
|
5
4
|
from machineconfig.utils.installer_utils.installer_class import Installer
|
|
6
5
|
from machineconfig.utils.schemas.installer.installer_types import InstallerData, InstallerDataFiles, get_normalized_arch, get_os_name, OPERATING_SYSTEMS, CPU_ARCHITECTURES
|
|
7
6
|
from machineconfig.jobs.installer.package_groups import PACKAGE_GROUPS, PACKAGE_GROUP2NAMES
|
|
8
|
-
from rich.console import Console
|
|
9
|
-
from rich.panel import Panel
|
|
10
|
-
|
|
11
7
|
from machineconfig.utils.path_extended import PathExtended
|
|
12
8
|
from machineconfig.utils.source_of_truth import INSTALL_VERSION_ROOT, LINUX_INSTALL_PATH, LIBRARY_ROOT
|
|
13
9
|
from machineconfig.utils.io import read_json
|
|
14
10
|
|
|
11
|
+
from rich.console import Console
|
|
12
|
+
from rich.panel import Panel
|
|
15
13
|
from typing import Any, Optional
|
|
16
14
|
import platform
|
|
17
15
|
from joblib import Parallel, delayed
|
|
@@ -74,7 +72,7 @@ def check_latest():
|
|
|
74
72
|
|
|
75
73
|
|
|
76
74
|
def get_installed_cli_apps():
|
|
77
|
-
print(
|
|
75
|
+
print("🔍 LISTING INSTALLED CLI APPS 🔍")
|
|
78
76
|
if platform.system() == "Windows":
|
|
79
77
|
print("🪟 Searching for Windows executables...")
|
|
80
78
|
apps = PathExtended.home().joinpath("AppData/Local/Microsoft/WindowsApps").search("*.exe", not_in=["notepad"])
|
|
@@ -89,12 +87,12 @@ def get_installed_cli_apps():
|
|
|
89
87
|
print(error_msg)
|
|
90
88
|
raise NotImplementedError(error_msg)
|
|
91
89
|
apps = [app for app in apps if app.size("kb") > 0.1 and not app.is_symlink()] # no symlinks like paint and wsl and bash
|
|
92
|
-
print(f"✅ Found {len(apps)} installed applications
|
|
90
|
+
print(f"✅ Found {len(apps)} installed applications")
|
|
93
91
|
return apps
|
|
94
92
|
|
|
95
93
|
|
|
96
94
|
def get_installers(os: OPERATING_SYSTEMS, arch: CPU_ARCHITECTURES, which_cats: Optional[list[PACKAGE_GROUPS]]) -> list[InstallerData]:
|
|
97
|
-
print(
|
|
95
|
+
print("🔍 LOADING INSTALLER CONFIGURATIONS 🔍")
|
|
98
96
|
res_all = get_all_installer_data_files()
|
|
99
97
|
acceptable_apps_names: list[str] | None = None
|
|
100
98
|
if which_cats is not None:
|
|
@@ -111,14 +109,15 @@ def get_installers(os: OPERATING_SYSTEMS, arch: CPU_ARCHITECTURES, which_cats: O
|
|
|
111
109
|
if installer_data["fileNamePattern"][arch][os] is None:
|
|
112
110
|
continue
|
|
113
111
|
all_installers.append(installer_data)
|
|
114
|
-
print(f"✅ Loaded {len(all_installers)} installer configurations
|
|
112
|
+
print(f"✅ Loaded {len(all_installers)} installer configurations")
|
|
115
113
|
return all_installers
|
|
116
114
|
|
|
117
115
|
|
|
118
116
|
def get_all_installer_data_files() -> list[InstallerData]:
|
|
119
|
-
print(
|
|
117
|
+
print("📂 LOADING CONFIGURATION FILES 📂")
|
|
120
118
|
import machineconfig.jobs.installer as module
|
|
121
119
|
from pathlib import Path
|
|
120
|
+
|
|
122
121
|
print("📂 Loading configuration files...")
|
|
123
122
|
res_raw: InstallerDataFiles = read_json(Path(module.__file__).parent.joinpath("installer_data.json"))
|
|
124
123
|
res_final: list[InstallerData] = res_raw["installers"]
|
|
@@ -129,6 +128,7 @@ def get_all_installer_data_files() -> list[InstallerData]:
|
|
|
129
128
|
def get_installers_system_groups():
|
|
130
129
|
res_final: list[InstallerData] = []
|
|
131
130
|
from platform import system
|
|
131
|
+
|
|
132
132
|
if system() == "Windows":
|
|
133
133
|
options_system = parse_apps_installer_windows(LIBRARY_ROOT.joinpath("setup_windows/apps.ps1").read_text(encoding="utf-8"))
|
|
134
134
|
elif system() == "Linux" or system() == "Darwin":
|
|
@@ -137,19 +137,13 @@ def get_installers_system_groups():
|
|
|
137
137
|
raise NotImplementedError(f"❌ System {system()} not supported")
|
|
138
138
|
os_name = get_os_name()
|
|
139
139
|
for group_name, (docs, script) in options_system.items():
|
|
140
|
-
item: InstallerData = {
|
|
141
|
-
|
|
142
|
-
"doc": docs,
|
|
143
|
-
"repoURL": "CMD",
|
|
144
|
-
"fileNamePattern": {
|
|
145
|
-
"amd64": {os_name: script,},
|
|
146
|
-
"arm64": {os_name: script,},}}
|
|
147
|
-
res_final.append(item)
|
|
140
|
+
item: InstallerData = {"appName": group_name, "doc": docs, "repoURL": "CMD", "fileNamePattern": {"amd64": {os_name: script}, "arm64": {os_name: script}}}
|
|
141
|
+
res_final.append(item)
|
|
148
142
|
return res_final
|
|
149
143
|
|
|
150
144
|
|
|
151
145
|
def install_bulk(installers_data: list[InstallerData], safe: bool = False, jobs: int = 10, fresh: bool = False):
|
|
152
|
-
print(
|
|
146
|
+
print("🚀 BULK INSTALLATION PROCESS 🚀")
|
|
153
147
|
if fresh:
|
|
154
148
|
print("🧹 Fresh install requested - clearing version cache...")
|
|
155
149
|
PathExtended(INSTALL_VERSION_ROOT).delete(sure=True)
|
|
@@ -182,10 +176,10 @@ def install_bulk(installers_data: list[InstallerData], safe: bool = False, jobs:
|
|
|
182
176
|
# return None
|
|
183
177
|
|
|
184
178
|
print(f"🚀 Starting installation of {len(installers_data)} packages...")
|
|
185
|
-
print(
|
|
179
|
+
print("📦 INSTALLING FIRST PACKAGE 📦")
|
|
186
180
|
Installer(installers_data[0]).install(version=None)
|
|
187
181
|
installers_remaining = installers_data[1:]
|
|
188
|
-
print(
|
|
182
|
+
print("📦 INSTALLING REMAINING PACKAGES 📦")
|
|
189
183
|
|
|
190
184
|
# Use joblib for parallel processing of remaining installers
|
|
191
185
|
res = Parallel(n_jobs=jobs)(delayed(lambda x: Installer(x).install_robust(version=None))(installer) for installer in installers_remaining)
|
|
@@ -218,11 +212,11 @@ def install_bulk(installers_data: list[InstallerData], safe: bool = False, jobs:
|
|
|
218
212
|
print("\n" * 2)
|
|
219
213
|
|
|
220
214
|
|
|
221
|
-
|
|
222
215
|
def get_machineconfig_version() -> str:
|
|
223
216
|
from importlib.metadata import PackageNotFoundError, version as _pkg_version
|
|
224
217
|
from pathlib import Path
|
|
225
218
|
import tomllib
|
|
219
|
+
|
|
226
220
|
name: str = "machineconfig"
|
|
227
221
|
try:
|
|
228
222
|
return _pkg_version(name)
|
|
@@ -57,12 +57,13 @@ def main_with_parser():
|
|
|
57
57
|
|
|
58
58
|
def main(
|
|
59
59
|
which: Optional[str] = typer.Option(None, "--which", "-w", help="Comma-separated list of program names to install."),
|
|
60
|
-
group: Optional[
|
|
60
|
+
group: Optional[str] = typer.Option(None, "--group", "-g", help="Groups names. A group is bundle of apps. See available groups when running interactively."),
|
|
61
61
|
interactive: bool = typer.Option(False, "--interactive", "-ia", help="Interactive selection of programs to install."),
|
|
62
62
|
) -> None:
|
|
63
63
|
if which is not None:
|
|
64
64
|
return install_clis(clis_names=[x.strip() for x in which.split(",") if x.strip() != ""])
|
|
65
65
|
if group is not None:
|
|
66
|
+
# for a_group in group
|
|
66
67
|
return install_group(package_group=group)
|
|
67
68
|
if interactive:
|
|
68
69
|
return install_interactively()
|
|
@@ -82,13 +83,11 @@ def install_interactively():
|
|
|
82
83
|
installer_options = []
|
|
83
84
|
for x in installers:
|
|
84
85
|
installer_options.append(Installer(installer_data=x).get_description())
|
|
85
|
-
|
|
86
86
|
# Build category options and maintain a mapping from display text to actual category name
|
|
87
87
|
category_display_to_name: dict[str, str] = {}
|
|
88
88
|
for group_name, group_values in PACKAGE_GROUP2NAMES.items():
|
|
89
89
|
display = f"📦 {group_name:<20}" + " -- " + f"{'|'.join(group_values):<60}"
|
|
90
90
|
category_display_to_name[display] = group_name
|
|
91
|
-
|
|
92
91
|
options_system = get_installers_system_groups()
|
|
93
92
|
for item in options_system:
|
|
94
93
|
display = f"📦 {item['appName']:<20} -- {item['doc']:<60}"
|
|
@@ -114,7 +113,7 @@ def install_interactively():
|
|
|
114
113
|
console.print(panel)
|
|
115
114
|
|
|
116
115
|
|
|
117
|
-
def install_group(package_group:
|
|
116
|
+
def install_group(package_group: str):
|
|
118
117
|
panel = Panel(f"[bold yellow]Installing programs from category: [green]{package_group}[/green][/bold yellow]", title="[bold blue]📦 Category Installation[/bold blue]", border_style="blue", padding=(1, 2))
|
|
119
118
|
console.print(panel)
|
|
120
119
|
from machineconfig.utils.installer import get_installers, install_bulk
|
|
@@ -9,7 +9,7 @@ import platform
|
|
|
9
9
|
|
|
10
10
|
|
|
11
11
|
def find_move_delete_windows(downloaded_file_path: PathExtended, exe_name: Optional[str] = None, delete: bool = True, rename_to: Optional[str] = None):
|
|
12
|
-
print(f"
|
|
12
|
+
print(f"🔍 PROCESSING WINDOWS EXECUTABLE 🔍")
|
|
13
13
|
if exe_name is not None and ".exe" in exe_name:
|
|
14
14
|
exe_name = exe_name.replace(".exe", "")
|
|
15
15
|
if downloaded_file_path.is_file():
|
|
@@ -54,7 +54,7 @@ def find_move_delete_windows(downloaded_file_path: PathExtended, exe_name: Optio
|
|
|
54
54
|
|
|
55
55
|
|
|
56
56
|
def find_move_delete_linux(downloaded: PathExtended, tool_name: str, delete: Optional[bool] = True, rename_to: Optional[str] = None):
|
|
57
|
-
print(f"
|
|
57
|
+
print(f"🔍 PROCESSING LINUX EXECUTABLE 🔍")
|
|
58
58
|
if downloaded.is_file():
|
|
59
59
|
exe = downloaded
|
|
60
60
|
print(f"📄 Found direct executable file: {exe}")
|
|
@@ -108,7 +108,7 @@ def find_move_delete_linux(downloaded: PathExtended, tool_name: str, delete: Opt
|
|
|
108
108
|
print("✅ Temporary files removed")
|
|
109
109
|
|
|
110
110
|
exe_new_location = PathExtended(LINUX_INSTALL_PATH).joinpath(exe.name)
|
|
111
|
-
print(f"✅ Executable installed at: {exe_new_location}
|
|
111
|
+
print(f"✅ Executable installed at: {exe_new_location}")
|
|
112
112
|
return exe_new_location
|
|
113
113
|
|
|
114
114
|
|
|
@@ -134,7 +134,7 @@ def is_executable_in_path(executable_name: str) -> bool:
|
|
|
134
134
|
|
|
135
135
|
|
|
136
136
|
def check_if_installed_already(exe_name: str, version: Optional[str], use_cache: bool) -> tuple[str, str, str]:
|
|
137
|
-
print(f"
|
|
137
|
+
print(f"🔍 CHECKING INSTALLATION STATUS: {exe_name} 🔍")
|
|
138
138
|
INSTALL_VERSION_ROOT.joinpath(exe_name).parent.mkdir(parents=True, exist_ok=True)
|
|
139
139
|
tmp_path = INSTALL_VERSION_ROOT.joinpath(exe_name)
|
|
140
140
|
|
|
@@ -34,45 +34,10 @@ class Installer:
|
|
|
34
34
|
"""Derive executable name from app name by converting to lowercase and removing spaces."""
|
|
35
35
|
return self.installer_data["appName"].lower().replace(" ", "").replace("-", "")
|
|
36
36
|
|
|
37
|
-
@staticmethod
|
|
38
|
-
def choose_app_and_install():
|
|
39
|
-
print(f"\n{'=' * 80}\n🔍 SELECT APPLICATION TO INSTALL 🔍\n{'=' * 80}")
|
|
40
|
-
from machineconfig.utils.options import choose_from_options
|
|
41
|
-
|
|
42
|
-
print("📂 Searching for configuration files...")
|
|
43
|
-
jobs_dir = Path(LIBRARY_ROOT.joinpath("jobs"))
|
|
44
|
-
config_paths = [Path(p) for p in jobs_dir.rglob("config.json")]
|
|
45
|
-
path = choose_from_options(multi=False, options=config_paths, msg="Choose one option")
|
|
46
|
-
print(f"📄 Loading configuration from: {path}")
|
|
47
|
-
config_data = read_json(path)
|
|
48
|
-
installer_data_files = InstallerDataFiles(config_data)
|
|
49
|
-
|
|
50
|
-
# Extract app names from the installers
|
|
51
|
-
app_names = [installer["appName"] for installer in installer_data_files["installers"]]
|
|
52
|
-
print("🔍 Select an application to install:")
|
|
53
|
-
app_name = choose_from_options(multi=False, options=app_names, fzf=True, msg="Choose one option")
|
|
54
|
-
|
|
55
|
-
# Find the selected installer data
|
|
56
|
-
selected_installer_data = None
|
|
57
|
-
for installer_data in installer_data_files["installers"]:
|
|
58
|
-
if installer_data["appName"] == app_name:
|
|
59
|
-
selected_installer_data = installer_data
|
|
60
|
-
break
|
|
61
|
-
|
|
62
|
-
if selected_installer_data is None:
|
|
63
|
-
raise ValueError(f"Could not find installer data for {app_name}")
|
|
64
|
-
|
|
65
|
-
installer = Installer(installer_data=selected_installer_data)
|
|
66
|
-
exe_name = installer._get_exe_name()
|
|
67
|
-
print(f"📦 Selected application: {exe_name}")
|
|
68
|
-
version = input(f"📝 Enter version to install for {exe_name} [latest]: ") or None
|
|
69
|
-
print(f"\n{'=' * 80}\n🚀 INSTALLING {exe_name.upper()} 🚀\n{'=' * 80}")
|
|
70
|
-
installer.install(version=version)
|
|
71
|
-
|
|
72
37
|
def install_robust(self, version: Optional[str]) -> str:
|
|
73
38
|
try:
|
|
74
39
|
exe_name = self._get_exe_name()
|
|
75
|
-
print(f"
|
|
40
|
+
print(f"🚀 INSTALLING {exe_name.upper()} 🚀")
|
|
76
41
|
result_old = subprocess.run(f"{exe_name} --version", shell=True, capture_output=True, text=True)
|
|
77
42
|
old_version_cli = result_old.stdout.strip()
|
|
78
43
|
print(f"📊 Current version: {old_version_cli or 'Not installed'}")
|
|
@@ -105,7 +70,7 @@ class Installer:
|
|
|
105
70
|
if installer_arch_os is None:
|
|
106
71
|
raise ValueError(f"No installation pattern for {exe_name} on {os_name} {arch}")
|
|
107
72
|
|
|
108
|
-
print(f"
|
|
73
|
+
print(f"🔧 INSTALLATION PROCESS: {exe_name} 🔧")
|
|
109
74
|
version_to_be_installed: str = "unknown" # Initialize to ensure it's always bound
|
|
110
75
|
if repo_url == "CMD":
|
|
111
76
|
if "npm " in installer_arch_os or "pip " in installer_arch_os or "winget " in installer_arch_os:
|
|
@@ -123,7 +88,7 @@ class Installer:
|
|
|
123
88
|
if result.stderr:
|
|
124
89
|
print(f"STDERR: {result.stderr}")
|
|
125
90
|
print(f"Return code: {result.returncode}")
|
|
126
|
-
print(f"✅ Package manager installation completed
|
|
91
|
+
print(f"✅ Package manager installation completed")
|
|
127
92
|
elif installer_arch_os.endswith((".sh", ".py", ".ps1")):
|
|
128
93
|
# search for the script, see which path ends with the script name
|
|
129
94
|
import machineconfig.jobs.installer as module
|
|
@@ -142,19 +107,19 @@ class Installer:
|
|
|
142
107
|
print(f"🚀 Running shell script: {installer_path}")
|
|
143
108
|
subprocess.run(f"bash {installer_path}", shell=True, check=True)
|
|
144
109
|
version_to_be_installed = "scripted_installation"
|
|
145
|
-
print(
|
|
110
|
+
print("✅ Shell script installation completed")
|
|
146
111
|
elif installer_arch_os.endswith(".ps1"):
|
|
147
112
|
if platform.system() != "Windows":
|
|
148
113
|
raise NotImplementedError(f"PowerShell script installation not supported on {platform.system()}")
|
|
149
114
|
print(f"🚀 Running PowerShell script: {installer_path}")
|
|
150
115
|
subprocess.run(f"powershell -ExecutionPolicy Bypass -File {installer_path}", shell=True, check=True)
|
|
151
116
|
version_to_be_installed = "scripted_installation"
|
|
152
|
-
print(
|
|
117
|
+
print("✅ PowerShell script installation completed")
|
|
153
118
|
elif installer_arch_os.endswith(".py"):
|
|
154
119
|
import runpy
|
|
155
120
|
runpy.run_path(str(installer_path), run_name=None)["main"](self.installer_data, version=version)
|
|
156
121
|
version_to_be_installed = str(version)
|
|
157
|
-
print(
|
|
122
|
+
print("✅ Custom installation completed")
|
|
158
123
|
elif installer_arch_os.startswith("https://"): # its a url to be downloaded
|
|
159
124
|
print(f"📥 Downloading object from URL: {installer_arch_os}")
|
|
160
125
|
downloaded_object = PathExtended(installer_arch_os).download(folder=INSTALL_TMP_DIR)
|
|
@@ -186,7 +151,7 @@ class Installer:
|
|
|
186
151
|
print(f"🔄 Renaming to correct name: {new_exe_name}")
|
|
187
152
|
exe.with_name(name=new_exe_name, inplace=True, overwrite=True)
|
|
188
153
|
version_to_be_installed = "downloaded_binary"
|
|
189
|
-
print(
|
|
154
|
+
print("✅ Downloaded binary installation completed")
|
|
190
155
|
else:
|
|
191
156
|
raise NotImplementedError(f"CMD installation method not implemented for: {installer_arch_os}")
|
|
192
157
|
else:
|
|
@@ -208,7 +173,7 @@ class Installer:
|
|
|
208
173
|
print(f"Return code: {result.returncode}")
|
|
209
174
|
print("🗑️ Cleaning up .deb package...")
|
|
210
175
|
downloaded.delete(sure=True)
|
|
211
|
-
print(
|
|
176
|
+
print("✅ DEB package installation completed")
|
|
212
177
|
else:
|
|
213
178
|
if platform.system() == "Windows":
|
|
214
179
|
print("🪟 Installing on Windows...")
|
|
@@ -236,13 +201,13 @@ class Installer:
|
|
|
236
201
|
print(f"💾 Saving version information to: {INSTALL_VERSION_ROOT.joinpath(exe_name)}")
|
|
237
202
|
INSTALL_VERSION_ROOT.joinpath(exe_name).parent.mkdir(parents=True, exist_ok=True)
|
|
238
203
|
INSTALL_VERSION_ROOT.joinpath(exe_name).write_text(version_to_be_installed or "unknown", encoding="utf-8")
|
|
239
|
-
print(
|
|
204
|
+
print("✅ Installation completed successfully!")
|
|
240
205
|
|
|
241
206
|
def download(self, version: Optional[str]) -> tuple[PathExtended, str]:
|
|
242
207
|
exe_name = self._get_exe_name()
|
|
243
208
|
repo_url = self.installer_data["repoURL"]
|
|
244
209
|
app_name = self.installer_data["appName"]
|
|
245
|
-
print(f"
|
|
210
|
+
print(f"📥 DOWNLOADING: {exe_name} 📥")
|
|
246
211
|
|
|
247
212
|
download_link: Optional[str] = None
|
|
248
213
|
version_to_be_installed: Optional[str] = None
|
|
@@ -273,7 +238,7 @@ class Installer:
|
|
|
273
238
|
assert version_to_be_installed is not None, "version_to_be_installed must be set"
|
|
274
239
|
print(f"📥 Downloading {app_name} from: {download_link}")
|
|
275
240
|
downloaded = PathExtended(download_link).download(folder=INSTALL_TMP_DIR).decompress()
|
|
276
|
-
print(f"✅ Download and extraction completed to: {downloaded}
|
|
241
|
+
print(f"✅ Download and extraction completed to: {downloaded}")
|
|
277
242
|
return downloaded, version_to_be_installed
|
|
278
243
|
|
|
279
244
|
# --------------------------- Arch / template helpers ---------------------------
|
machineconfig/utils/io.py
CHANGED
|
@@ -69,7 +69,6 @@ def read_ini(path: "Path", encoding: Optional[str] = None):
|
|
|
69
69
|
if not Path(path).exists() or Path(path).is_dir():
|
|
70
70
|
raise FileNotFoundError(f"File not found or is a directory: {path}")
|
|
71
71
|
import configparser
|
|
72
|
-
|
|
73
72
|
res = configparser.ConfigParser()
|
|
74
73
|
res.read(filenames=[str(path)], encoding=encoding)
|
|
75
74
|
return res
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: machineconfig
|
|
3
|
-
Version: 5.
|
|
3
|
+
Version: 5.28
|
|
4
4
|
Summary: Dotfiles management package
|
|
5
5
|
Author-email: Alex Al-Saffar <programmer@usa.com>
|
|
6
6
|
License: Apache 2.0
|
|
@@ -62,13 +62,13 @@ Additionally, files that contain data, sensitive information that should not be
|
|
|
62
62
|
# Windows:
|
|
63
63
|
|
|
64
64
|
```powershell
|
|
65
|
-
iex (iwr bit.ly/
|
|
65
|
+
iex (iwr bit.ly/cfgwindows).Content
|
|
66
66
|
```
|
|
67
67
|
|
|
68
68
|
# Linux and MacOS
|
|
69
69
|
|
|
70
70
|
```bash
|
|
71
|
-
. <(curl -sL bit.ly/
|
|
71
|
+
. <(curl -sL bit.ly/cfglinux)
|
|
72
72
|
```
|
|
73
73
|
|
|
74
74
|
|
|
@@ -19,7 +19,7 @@ machineconfig/cluster/sessions_managers/wt_local_manager.py,sha256=B7qpdRakeS1XF
|
|
|
19
19
|
machineconfig/cluster/sessions_managers/wt_remote.py,sha256=yofv3Zlj2aClDUKYhUJVyvO-Wh76Wka71n-DY1ODj0Q,9072
|
|
20
20
|
machineconfig/cluster/sessions_managers/wt_remote_manager.py,sha256=wxfZPJd4_21LAEoaf1kVDIyhUOYlJfWfNfFvlCOPLqo,20303
|
|
21
21
|
machineconfig/cluster/sessions_managers/zellij_local.py,sha256=jQgaWEvPmLVHt_cPTJEM5YCI7HeM71kI0X3U7BFP_jk,10064
|
|
22
|
-
machineconfig/cluster/sessions_managers/zellij_local_manager.py,sha256=
|
|
22
|
+
machineconfig/cluster/sessions_managers/zellij_local_manager.py,sha256=_qfGQUTmgnhuyfTB0vDGijjb7NFClM1hdprFIXtt2aw,17691
|
|
23
23
|
machineconfig/cluster/sessions_managers/zellij_remote.py,sha256=siLNW7DohSMjDGmhTeNGU8xpb1XM4NFvmkzaa3NyZbc,8533
|
|
24
24
|
machineconfig/cluster/sessions_managers/zellij_remote_manager.py,sha256=xzih0y8_1vMH58kMQE2oFj5sdjDM8lWhe5lbz0U9hZo,8417
|
|
25
25
|
machineconfig/cluster/sessions_managers/helpers/zellij_local_helper.py,sha256=B7RXw1j31evmdYciU3CP3Jdb8A87eUeqV-JAwVQTN5E,14822
|
|
@@ -64,23 +64,23 @@ machineconfig/jobs/installer/custom_dev/nerfont_windows_helper.py,sha256=6IRg95T
|
|
|
64
64
|
machineconfig/jobs/installer/custom_dev/redis.py,sha256=bReDLsgy37eJyTU4TXE7FQpKFi-_usQC7bwhfXvZuBU,3259
|
|
65
65
|
machineconfig/jobs/installer/custom_dev/wezterm.py,sha256=73BzfUdY8mXM4l4jVFIBxR1qXSE4g_PAyxefanrVkFU,3555
|
|
66
66
|
machineconfig/jobs/installer/custom_dev/winget.py,sha256=gLdwM20jKMf2bMV3BAcOg4MkuzwF09CU5OhXvLkPoHo,5738
|
|
67
|
-
machineconfig/jobs/installer/linux_scripts/brave.sh,sha256=
|
|
68
|
-
machineconfig/jobs/installer/linux_scripts/docker.sh,sha256=
|
|
69
|
-
machineconfig/jobs/installer/linux_scripts/docker_start.sh,sha256=
|
|
70
|
-
machineconfig/jobs/installer/linux_scripts/edge.sh,sha256=
|
|
71
|
-
machineconfig/jobs/installer/linux_scripts/nerdfont.sh,sha256=
|
|
67
|
+
machineconfig/jobs/installer/linux_scripts/brave.sh,sha256=_al_D5iZSwtlDRTeqjjK37nEWai8mrHFk-cZeVws9MY,1389
|
|
68
|
+
machineconfig/jobs/installer/linux_scripts/docker.sh,sha256=4NYWXCdvh6qlggVVH7FGe6jWkYuWoaJoDwLJvI4oRNQ,4471
|
|
69
|
+
machineconfig/jobs/installer/linux_scripts/docker_start.sh,sha256=8L2fLex6PU8nCpBii7yT8w4CvULZ9_JcDvxdCGJQ6cU,894
|
|
70
|
+
machineconfig/jobs/installer/linux_scripts/edge.sh,sha256=f1UI2Z2s0ToZ-QGlzkS1ThcRsTz5tMHOjxSFqfHK9SQ,1319
|
|
71
|
+
machineconfig/jobs/installer/linux_scripts/nerdfont.sh,sha256=ute9wl4BcqHUqavVHWJlnMcmugdb50LbnUVlU0cUVso,1475
|
|
72
72
|
machineconfig/jobs/installer/linux_scripts/ngrok.sh,sha256=K-t62nhnAHxhppTmqjubIJRHozkNHfBxXGbn1Oz3w-A,287
|
|
73
|
-
machineconfig/jobs/installer/linux_scripts/pgsql.sh,sha256=
|
|
73
|
+
machineconfig/jobs/installer/linux_scripts/pgsql.sh,sha256=FbIteF6RVCcDdHl8seFFO7FuAX9siZpkwr9WVeKn5NA,1655
|
|
74
74
|
machineconfig/jobs/installer/linux_scripts/q.sh,sha256=jXokwpfwotI7X5v1dXbYKZyH5ifzSCOek-d_BociyY0,228
|
|
75
|
-
machineconfig/jobs/installer/linux_scripts/redis.sh,sha256=
|
|
76
|
-
machineconfig/jobs/installer/linux_scripts/timescaledb.sh,sha256
|
|
77
|
-
machineconfig/jobs/installer/linux_scripts/vscode.sh,sha256=
|
|
78
|
-
machineconfig/jobs/installer/linux_scripts/warp-cli.sh,sha256=
|
|
79
|
-
machineconfig/jobs/installer/linux_scripts/wezterm.sh,sha256=
|
|
75
|
+
machineconfig/jobs/installer/linux_scripts/redis.sh,sha256=GbElaDpkICLL6_XnkPev0UPZm4wQ8euGoOmrX2okneg,2064
|
|
76
|
+
machineconfig/jobs/installer/linux_scripts/timescaledb.sh,sha256=PTvo7KBpyxmWdpVoBK4cuPJ5slxJIPlVTfGQYnvKEQg,2508
|
|
77
|
+
machineconfig/jobs/installer/linux_scripts/vscode.sh,sha256=fI6lNCWUjlstNE319Y-rUtimvLLb9GcNh3z9t1KRaaE,4541
|
|
78
|
+
machineconfig/jobs/installer/linux_scripts/warp-cli.sh,sha256=dnMHZjyyYARwKFa1XZbIonLntIHTRGROyr2v4Eodd6s,2157
|
|
79
|
+
machineconfig/jobs/installer/linux_scripts/wezterm.sh,sha256=hZBS0CopWr-VrGhFSVjoWATFzHqCt6V41_N8bImAQRc,1294
|
|
80
80
|
machineconfig/jobs/installer/powershell_scripts/install_fonts.ps1,sha256=JsQfGAMkvirhiUmBNOifMlbum2PfHSs0-Akgj-J-WZw,3177
|
|
81
81
|
machineconfig/jobs/linux/msc/cli_agents.sh,sha256=MMa_cd4yijI69c7tztTY1b0tl9I1ECTbxqLCShElhFU,184
|
|
82
|
-
machineconfig/jobs/linux/msc/lid.sh,sha256=
|
|
83
|
-
machineconfig/jobs/linux/msc/network.sh,sha256=
|
|
82
|
+
machineconfig/jobs/linux/msc/lid.sh,sha256=nUw870lc5p8GA8KT3JI29ob2wKSVKzCvOHIxEjoSTOA,864
|
|
83
|
+
machineconfig/jobs/linux/msc/network.sh,sha256=j3kRV2mFEZK05XL2UdR9ssW2hkLH5rOYM7LU539UUEE,1358
|
|
84
84
|
machineconfig/jobs/python/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
85
85
|
machineconfig/jobs/python/python_ve_symlink.py,sha256=Mw2SK_TDLK5Ct_mEESh_Pd-Rn-B1oBSp7a_9y_eZbqw,1140
|
|
86
86
|
machineconfig/jobs/python/vscode/api.py,sha256=Et0G-VUj13D1rshYMdDrw_CUYSO7Q6XRrEQO0WjVIKU,1683
|
|
@@ -102,12 +102,11 @@ machineconfig/profile/records/linux/apps_summary_report.md,sha256=l77oofA6Rliql0
|
|
|
102
102
|
machineconfig/profile/records/windows/apps_summary_report.csv,sha256=nN5BoACBqXgKNczm2t5KaCLdDnxFCIscX8iRkWBm0a4,47
|
|
103
103
|
machineconfig/profile/records/windows/apps_summary_report.md,sha256=O5hmAcpObaLmOjYLvHg9kkPJryqFwFaP8OsmfPwfR1o,137
|
|
104
104
|
machineconfig/scripts/__init__.py,sha256=v0cMjnaIo39C3ltLiTf1S0fCTMAqWtEU7zrVenUj4PQ,71
|
|
105
|
-
machineconfig/scripts/cloud/init.sh,sha256=
|
|
105
|
+
machineconfig/scripts/cloud/init.sh,sha256=0Pp2wEnWT989VcOc1nVXElO08u3ON-kFzWZGifOLWY0,3624
|
|
106
106
|
machineconfig/scripts/linux/agents,sha256=zahzfVZ8_NIkC1TKMjcZqo0vsBtFl-xBhpz63sn29yA,96
|
|
107
107
|
machineconfig/scripts/linux/choose_wezterm_theme,sha256=T7_vS-XvIZErRkfqtlyoZuHEVKFQQwhIeQMFIVTjtxg,145
|
|
108
108
|
machineconfig/scripts/linux/cloud_copy,sha256=IU5TO7roSUYB-U4Km9bhAZOvlUr4nRJtJf4tqCPIPAs,100
|
|
109
109
|
machineconfig/scripts/linux/cloud_mount,sha256=QnDUPUv9q3V14PONOwM4tAPHqOopF_uvjEN1tL24jZA,102
|
|
110
|
-
machineconfig/scripts/linux/cloud_repo_sync,sha256=cUv2R7-SApsv6JZjESieg4uMZAjQP1G4egvrHMQsVrI,106
|
|
111
110
|
machineconfig/scripts/linux/cloud_sync,sha256=Tf5yr9D5Ca5tiIpbUBE3QDqZF22tsh32XedW-aHZ-lQ,96
|
|
112
111
|
machineconfig/scripts/linux/croshell,sha256=UZWGufTwtzCllRXrQ14YwCuAEZs--a1lJBW_kuNLhYg,100
|
|
113
112
|
machineconfig/scripts/linux/devops,sha256=hQGs_cuu19dxeTB3CqZTJ6miZDwugfwh4NgrSlhWtOg,96
|
|
@@ -127,7 +126,7 @@ machineconfig/scripts/linux/mount_nw_drive,sha256=pNzHc7yZn5YIzn2BkpKvd5530Pqbes
|
|
|
127
126
|
machineconfig/scripts/linux/mount_smb,sha256=7UN5EP1kuxYL_-CnyaH4f9Wuu2CgALDZpJ0mPcdvCiY,94
|
|
128
127
|
machineconfig/scripts/linux/scheduler,sha256=Z9Wu0N9vWRbi4FoRbpcc4ydq4bVaDjZOXESR35ZN0rI,100
|
|
129
128
|
machineconfig/scripts/linux/sessions,sha256=A4vxUDHnDhyph833iy-tBprgQ7av_DZ5t031PRrbqVQ,98
|
|
130
|
-
machineconfig/scripts/linux/share_cloud.sh,sha256=
|
|
129
|
+
machineconfig/scripts/linux/share_cloud.sh,sha256=LzkioYG46siaiJdLqzLFt_-dim6-lx4PmHg3bPpH5Zo,1988
|
|
131
130
|
machineconfig/scripts/linux/share_nfs,sha256=LDQZQ9TV7z2y7RtNHiO4Wb513MztyGjaAV-GzTGwUdc,1374
|
|
132
131
|
machineconfig/scripts/linux/share_smb,sha256=HZX8BKgMlS9JzkGIYnxTsPvoxEBBuVLVkqzR3pmGFGY,20
|
|
133
132
|
machineconfig/scripts/linux/skrg,sha256=JgQJGwxaChr148bDnpTB0rrqZMe2o2zGSDA9x_oUhWM,133
|
|
@@ -139,26 +138,27 @@ machineconfig/scripts/linux/warp-cli.sh,sha256=shFFZ9viet_DSEEHT8kxlGRHoJpO6o85p
|
|
|
139
138
|
machineconfig/scripts/linux/wifi_conn,sha256=X4TH3OvcVZfOveSbF9WW8uXb4U_G7ZSnCERc7VYAqkc,95
|
|
140
139
|
machineconfig/scripts/linux/z_ls,sha256=ATZtu0ccN3AKvAOxkwLq1xgQjJ3en5byEWJ3Q8afnNg,3340
|
|
141
140
|
machineconfig/scripts/python/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
142
|
-
machineconfig/scripts/python/agents.py,sha256=
|
|
141
|
+
machineconfig/scripts/python/agents.py,sha256=OgxGnsmhkPU3n-GsNUJeECWQ01_RP3OHppaSglc3Yf8,9931
|
|
143
142
|
machineconfig/scripts/python/choose_wezterm_theme.py,sha256=pRXAGe2IpysYshsaF8CKEwHI8EGPtLcM8PtiAqM7vmM,3425
|
|
144
143
|
machineconfig/scripts/python/cloud_copy.py,sha256=fcWbSo2nGiubtMYjGci8s5tVjZ9D-u8mteCawZmbw3I,8379
|
|
145
144
|
machineconfig/scripts/python/cloud_mount.py,sha256=GwcXbd5ohoHGESfX5edtCEl2-umDDxH_AZapmFSzc9E,6740
|
|
146
|
-
machineconfig/scripts/python/cloud_repo_sync.py,sha256=
|
|
145
|
+
machineconfig/scripts/python/cloud_repo_sync.py,sha256=7CAJDZold4vg3nDLVC_1HAiDa9mgwHH6GbTSOnc5oMs,9064
|
|
147
146
|
machineconfig/scripts/python/cloud_sync.py,sha256=RWGpAfJ9fnN18yNBSgN44dzA38Hmd4879JL5r2pcyrM,3514
|
|
148
147
|
machineconfig/scripts/python/croshell.py,sha256=LgmwB17EVgNgRkXgwLOZPQWrHqSYDo7Kd-d6vkqA3PY,6459
|
|
149
|
-
machineconfig/scripts/python/devops.py,sha256=
|
|
148
|
+
machineconfig/scripts/python/devops.py,sha256=x0hXYfCM2RR503svUbX7Iw1BRSB6VErbAkVO4Wt2NoA,7396
|
|
150
149
|
machineconfig/scripts/python/dotfile.py,sha256=9W9i8Qbs6i2NfTq0knywB3StvE_sHaZYZ0RslTyoVz8,2734
|
|
151
150
|
machineconfig/scripts/python/fire_jobs.py,sha256=iHcuADhRFlN2wgr7zUV1RAacfUPnnvvOGbEDzFM61gs,13476
|
|
152
151
|
machineconfig/scripts/python/ftpx.py,sha256=QfQTp-6jQP6yxfbLc5sKxiMtTgAgc8sjN7d17_uLiZc,9400
|
|
153
152
|
machineconfig/scripts/python/gh_models.py,sha256=3BLfW25mBRiPO5VKtVm-nMlKLv-PaZDw7mObajq6F6M,5538
|
|
154
|
-
machineconfig/scripts/python/interactive.py,sha256=
|
|
153
|
+
machineconfig/scripts/python/interactive.py,sha256=jrh_x9YYSfBz3uUAaascGEjc7uxGoMM0KCfoBqtfUpg,12767
|
|
155
154
|
machineconfig/scripts/python/mount_nfs.py,sha256=aECrL64j9g-9rF49sVJAjGmzaoGgcMnl3g9v17kQF4c,3239
|
|
156
155
|
machineconfig/scripts/python/mount_nw_drive.py,sha256=iru6AtnTyvyuk6WxlK5R4lDkuliVpPV5_uBTVVhXtjQ,1550
|
|
157
156
|
machineconfig/scripts/python/mount_ssh.py,sha256=k2fKq3f5dKq_7anrFOlqvJoI_3U4EWNHLRZ1o3Lsy6M,2268
|
|
158
157
|
machineconfig/scripts/python/onetimeshare.py,sha256=xRd8by6qUm-od2Umty2MYsXyJwzXw-CBTd7VellNaKY,2498
|
|
159
158
|
machineconfig/scripts/python/pomodoro.py,sha256=SPkfeoZGv8rylGiOyzQ7UK3aXZ3G2FIOuGkSuBUggOI,2019
|
|
160
|
-
machineconfig/scripts/python/repos.py,sha256=
|
|
159
|
+
machineconfig/scripts/python/repos.py,sha256=EytbeRBJf692KAtjrYdZKRCPrseNyIkH_kVe22WI-As,8218
|
|
161
160
|
machineconfig/scripts/python/scheduler.py,sha256=rKhssuxkD697EY6qaV6CSdNhxpAQLDWO4fE8GMCQ9FA,3061
|
|
161
|
+
machineconfig/scripts/python/secure_repo.py,sha256=xwV3mHg918EmVjUH-gJuZFnzIoBhOnJspx4_ZxNhurk,979
|
|
162
162
|
machineconfig/scripts/python/sessions.py,sha256=oCNGhhAYxr5DFyGCkL7jup3hPb4qCdBome2Qr9Evwao,8694
|
|
163
163
|
machineconfig/scripts/python/sessions_multiprocess.py,sha256=jtFci9vugJ8sMiw3qupUtANICy2RSorT2W8sdppkRN4,2914
|
|
164
164
|
machineconfig/scripts/python/share_terminal.py,sha256=-SNCDrQHBDUZw2cNNrEw3K3owzmZASBjd5deBKB49YY,5358
|
|
@@ -207,12 +207,20 @@ machineconfig/scripts/python/helpers/cloud_helpers.py,sha256=GA-bxXouUmknk9fyQAs
|
|
|
207
207
|
machineconfig/scripts/python/helpers/helpers2.py,sha256=2QeQ2aii6hVc4S-oi3SVTSyPxKPTDUWBD7GnkCEr7Qs,7304
|
|
208
208
|
machineconfig/scripts/python/helpers/helpers4.py,sha256=iKR5vVJygaDIpFXhcdma9jOpyxKtUhmqcmalFxJmY0w,4749
|
|
209
209
|
machineconfig/scripts/python/helpers/helpers5.py,sha256=dPBvA9Tcyx9TMgM6On49A1CueGMhBdRzikDnlJGf3J0,1123
|
|
210
|
-
machineconfig/scripts/python/helpers/repo_sync_helpers.py,sha256=
|
|
210
|
+
machineconfig/scripts/python/helpers/repo_sync_helpers.py,sha256=smxpX_dXO6vptkOUsOa0C4ufk2-Xf1PW1ptCO3Pmv4o,3931
|
|
211
211
|
machineconfig/scripts/python/helpers_fire/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
212
|
-
machineconfig/scripts/python/helpers_fire/fire_agents_help_launch.py,sha256=
|
|
212
|
+
machineconfig/scripts/python/helpers_fire/fire_agents_help_launch.py,sha256=wQb4RotkDgRrSB2pvJSVx_W4uLgtWNnm0f3CIjLp9SA,5500
|
|
213
213
|
machineconfig/scripts/python/helpers_fire/fire_agents_help_search.py,sha256=qIfSS_su2YJ1Gb0_lu4cbjlJlYMBw0v52NTGiSrGjk8,2991
|
|
214
|
-
machineconfig/scripts/python/helpers_fire/fire_agents_helper_types.py,sha256=
|
|
214
|
+
machineconfig/scripts/python/helpers_fire/fire_agents_helper_types.py,sha256=b3_EaG_rGuRxTuVmKZVbY-tawsfrNP3tvPNaNgZ9ohs,1069
|
|
215
215
|
machineconfig/scripts/python/helpers_fire/fire_agents_load_balancer.py,sha256=mpqx3uaQdBXYieuvhdK-qsvLepf9oIMo3pwPj9mSEDI,1079
|
|
216
|
+
machineconfig/scripts/python/helpers_fire/fire_crush.json,sha256=YGuJF-qlMjhICPf0QnNfQlGNPsYrJJDlNcgmes0TFhM,252
|
|
217
|
+
machineconfig/scripts/python/helpers_fire/fire_crush.py,sha256=-yRdVcKX_1XTUzWKNoNW9rjmn_NsJuk1pB5EKC4TKpU,1622
|
|
218
|
+
machineconfig/scripts/python/helpers_fire/fire_cursor_agents.py,sha256=YYwZWa3yEbpIxUorL2Z1AOwrG9RqhtMQx5D4hsON_Vw,570
|
|
219
|
+
machineconfig/scripts/python/helpers_fire/fire_gemini.py,sha256=hF1ZwPWFWvlAv5O2qkwWCDA0K_b4PuHbcXqMScJGz7w,1400
|
|
220
|
+
machineconfig/scripts/python/helpers_fire/fire_q.py,sha256=hN7CQP03INt5uMqB75L3Up99zBkoK0uNYWr1Q76N6Ws,492
|
|
221
|
+
machineconfig/scripts/python/helpers_fire/prompt.txt,sha256=Ni6r-Dh0Ez2XwfOZl3MOMDhfn6BJ2z4IdK3wFvA3c_o,116
|
|
222
|
+
machineconfig/scripts/python/helpers_fire/template.ps1,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
223
|
+
machineconfig/scripts/python/helpers_fire/template.sh,sha256=6bFw04pIleOUAHs5bXlzorK-qrYwcq1WNIgaj4FByOo,1124
|
|
216
224
|
machineconfig/scripts/python/helpers_fire_command/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
217
225
|
machineconfig/scripts/python/helpers_fire_command/cloud_manager.py,sha256=YN0DYLzPKtMBaks-EAVwFmkCu3XeHWMr1D21uqX5dDk,3429
|
|
218
226
|
machineconfig/scripts/python/helpers_fire_command/fire_jobs_args_helper.py,sha256=UUrGB2N_pR7PxFKtKTJxIUiS58WjQX0U50y2ft8Ul4w,4334
|
|
@@ -230,7 +238,6 @@ machineconfig/scripts/windows/agents.ps1,sha256=DqdrC_Xc2rwQ6kGzT0xh5CJz4B_0p5Zw
|
|
|
230
238
|
machineconfig/scripts/windows/choose_wezterm_theme.ps1,sha256=LiXJ0a4LKjb6E-oH_bAg6DjegV4SqDUdiMp_svGCFlI,95
|
|
231
239
|
machineconfig/scripts/windows/cloud_copy.ps1,sha256=llTFhN2uInZTcoZYZuuhJcf5Ifo5MF226I5MpOzvc3A,82
|
|
232
240
|
machineconfig/scripts/windows/cloud_mount.ps1,sha256=wSQO5II8DbqktexRIuI-RUn8kVCEk-SWT7imZqd7Qdk,82
|
|
233
|
-
machineconfig/scripts/windows/cloud_repo_sync.ps1,sha256=2M49l1VcDbix48kpK-qUzT9pmwjbJFX3C8VD3wgvLWg,87
|
|
234
241
|
machineconfig/scripts/windows/cloud_sync.ps1,sha256=YrltSWkEKBoG7LMaB-gmot7IswRJEyhDH3fJ2Rlez6c,82
|
|
235
242
|
machineconfig/scripts/windows/croshell.ps1,sha256=VkYdUKJLz7ahvCyXKWvNcCy9IjEDYgRub6rNhCtrJgo,80
|
|
236
243
|
machineconfig/scripts/windows/devops.ps1,sha256=8HQCsE2V6Ec-Cd5UrhdzqClBc7KFV3_8wLpnQZqP9k8,78
|
|
@@ -263,7 +270,7 @@ machineconfig/scripts/windows/wifi_conn.ps1,sha256=M4D8gT4Ae0nG6zdhHTkmaF_Wu_w1I
|
|
|
263
270
|
machineconfig/scripts/windows/wsl_rdp_windows_port_forwarding.ps1,sha256=dGKAoP8WsQzHiAZjD8WT1Ne8RRQU8xf9HdH9bDkihh4,1720
|
|
264
271
|
machineconfig/scripts/windows/wsl_ssh_windows_port_forwarding.ps1,sha256=dr6t49UCnMHAhA0AR4gHluN0HvS5wzyygCNmjORfknU,2715
|
|
265
272
|
machineconfig/settings/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
266
|
-
machineconfig/settings/broot/br.sh,sha256=
|
|
273
|
+
machineconfig/settings/broot/br.sh,sha256=7CCJflIAirkiuo1suDCT8BzhVzDdJWEfbAxNDG4VPSI,1455
|
|
267
274
|
machineconfig/settings/broot/brootcd.ps1,sha256=BB8uGnoVywxFWSgwsHxlbS8V4W_Qom3L1SedekGpgWA,877
|
|
268
275
|
machineconfig/settings/broot/conf.toml,sha256=2C2ggpFR0Z-Sceu0iwHW0LFz45AjwyeCBD0PSP0VIoo,55
|
|
269
276
|
machineconfig/settings/glow/glow.yml,sha256=59eFsIPBXRgJSVb6kcA7XHkWuLe0_wNandhc9KGykmE,245
|
|
@@ -363,22 +370,22 @@ machineconfig/settings/zellij/layouts/panes.kdl,sha256=KlhKtelBy4Z2ENV_pix4xE7NH
|
|
|
363
370
|
machineconfig/settings/zellij/layouts/st.kdl,sha256=QXLRK7Wx05aKbKRHVmm4RspLYzPmEa44JMK1TwXQk58,523
|
|
364
371
|
machineconfig/settings/zellij/layouts/st2.kdl,sha256=1FKTH3qQWYMWp_wPMreP7fKOTlVd4cfBy3J8fv4zCBc,1489
|
|
365
372
|
machineconfig/settings/zellij/layouts/stacked_panes.kdl,sha256=usY8kKKwX1KUMXnWDivPg0i0drpM1Biw-tOnNZVjiZU,163
|
|
366
|
-
machineconfig/setup_linux/__init__.py,sha256=
|
|
367
|
-
machineconfig/setup_linux/apps.sh,sha256=
|
|
368
|
-
machineconfig/setup_linux/apps_desktop.sh,sha256=
|
|
369
|
-
machineconfig/setup_linux/apps_gui.sh,sha256=
|
|
370
|
-
machineconfig/setup_linux/
|
|
371
|
-
machineconfig/setup_linux/
|
|
372
|
-
machineconfig/setup_linux/nix/cli_installation.sh,sha256=
|
|
373
|
+
machineconfig/setup_linux/__init__.py,sha256=QSu4qc1pIBd483WdakKFN3JW8iI6YCv2hWl8Kg_ymsw,381
|
|
374
|
+
machineconfig/setup_linux/apps.sh,sha256=dP_caRCXwtQe9XjAWiyV4KU0TxOdn07H8fl07DASdZg,3329
|
|
375
|
+
machineconfig/setup_linux/apps_desktop.sh,sha256=L2b_pcw3GiQdoAaoMO7J4bVvUoG5Pnuy9kDhV8JqprU,3325
|
|
376
|
+
machineconfig/setup_linux/apps_gui.sh,sha256=lFPYq7H2bRogPwW6QoEuSr9GnTjHS-jRM_eYg2rjOmM,2301
|
|
377
|
+
machineconfig/setup_linux/machineconfig.sh,sha256=VHrMMadbu__P94eF5SRpy1OeXm1fNjAxFJjITioxKXQ,476
|
|
378
|
+
machineconfig/setup_linux/uv.sh,sha256=VxjGbRif_I4hZ9vogOZYxQhFGqX91zlvVfELvvqRwB8,487
|
|
379
|
+
machineconfig/setup_linux/nix/cli_installation.sh,sha256=gVvszYZJgKPRJx2SEaE31BXDP0Fmeta4--gpr-zJZlY,4010
|
|
373
380
|
machineconfig/setup_linux/others/mint_keyboard_shortcuts.sh,sha256=F5dbg0n9RHsKGPn8fIdZMn3p0RrHEkb8rWBGsdVGbus,1207
|
|
374
381
|
machineconfig/setup_linux/ssh/openssh_all.sh,sha256=3dg6HEUFbHQOzLfSAtzK_D_GB8rGCCp_aBnxNdnidVc,824
|
|
375
382
|
machineconfig/setup_linux/ssh/openssh_wsl.sh,sha256=1eeRGrloVB34K5z8yWVUMG5b9pV-WBfHgV9jqXiYgCQ,1398
|
|
376
383
|
machineconfig/setup_linux/web_shortcuts/android.sh,sha256=gzep6bBhK7FCBvGcXK0fdJCtkSfBOftt0aFyDZq_eMs,68
|
|
377
|
-
machineconfig/setup_linux/web_shortcuts/interactive.sh,sha256=
|
|
378
|
-
machineconfig/setup_windows/__init__.py,sha256=
|
|
384
|
+
machineconfig/setup_linux/web_shortcuts/interactive.sh,sha256=NwrHKEPHW1PIkl3Yi7BEQL8Mdsfs7_FX5Ci7cKOrGZg,219
|
|
385
|
+
machineconfig/setup_windows/__init__.py,sha256=wVpUqoLqXl-_-bRd7gZw_PJ7WZ2GtOqfFMzo_lIwieg,454
|
|
379
386
|
machineconfig/setup_windows/apps.ps1,sha256=G5GqZ9G0aiQr_A-HaahtRdzpaTTdW6n3DRKMZWDTSPc,11214
|
|
380
|
-
machineconfig/setup_windows/
|
|
381
|
-
machineconfig/setup_windows/
|
|
387
|
+
machineconfig/setup_windows/machineconfig.ps1,sha256=gIQBOLIh65oUXgSjYMeYeD6lU1Bu80LZ59xqRc3T3BA,918
|
|
388
|
+
machineconfig/setup_windows/uv.ps1,sha256=hYawJUKBAujEIYaORr4-OaFagTfnz0l-nVd_s7APZPI,310
|
|
382
389
|
machineconfig/setup_windows/others/docker.ps1,sha256=M8NfsSxH8YlmY92J4rSe1xWOwTW8IFrdgb8cI8Riu2E,311
|
|
383
390
|
machineconfig/setup_windows/others/obs.ps1,sha256=2andchcXpxS3rqZjGaMpY5VShxTAKWvw6eCrayjuaLo,30
|
|
384
391
|
machineconfig/setup_windows/others/power_options.ps1,sha256=c7Hn94jBD5GWF29CxMhmNpuM0hgXTQgVJmIRR_7sdcY,182
|
|
@@ -391,9 +398,9 @@ machineconfig/setup_windows/wt_and_pwsh/__init__.py,sha256=47DEQpj8HBSa-_TImW-5J
|
|
|
391
398
|
machineconfig/setup_windows/wt_and_pwsh/set_wt_settings.py,sha256=ogxJnwpdcpH7N6dFJu95UCNoGYirZKQho_3X0F_hmXs,6791
|
|
392
399
|
machineconfig/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
393
400
|
machineconfig/utils/accessories.py,sha256=W_9dLzjwNTW5JQk_pe3B2ijQ1nA2-8Kdg2r7VBtzgQs,4340
|
|
394
|
-
machineconfig/utils/code.py,sha256=
|
|
395
|
-
machineconfig/utils/installer.py,sha256=
|
|
396
|
-
machineconfig/utils/io.py,sha256=
|
|
401
|
+
machineconfig/utils/code.py,sha256=O53GYyUNPaaT6ywD_JaV2KWEZQmwWGcpnTOMTnRnVog,5631
|
|
402
|
+
machineconfig/utils/installer.py,sha256=ZnhW_gRmGlq5uXwzNvIn-x1vXuOJxkzVqjNu188f37s,10465
|
|
403
|
+
machineconfig/utils/io.py,sha256=3axJBhNZCZiWJbzBvF7keDjCmqnbSKtoTnyDtq1I5BE,2871
|
|
397
404
|
machineconfig/utils/links.py,sha256=GQExBsMoxewOhwIrNdERuzk9HVKcmWgNUGO-RzPMS6M,22588
|
|
398
405
|
machineconfig/utils/notifications.py,sha256=tuXIudcip0tEioG-bm8BbLr3FMDve4f6BktlznBhKxM,9013
|
|
399
406
|
machineconfig/utils/options.py,sha256=vUO4Kej-vDOv64wHr2HNDyu6PATURpjd7xp6N8OOoJg,7083
|
|
@@ -414,20 +421,20 @@ machineconfig/utils/cloud/onedrive/transaction.py,sha256=m-aNcnWj_gfZVvJOSpkdIqj
|
|
|
414
421
|
machineconfig/utils/files/ascii_art.py,sha256=cNJaJC07vx94fS44-tzgfbfBeCwXVrgpnWGBLUnfC38,5212
|
|
415
422
|
machineconfig/utils/files/dbms.py,sha256=xJTg6H_AvZWsduuDaSs4_KdUu__rO8LXrE_hrcXTgNM,17203
|
|
416
423
|
machineconfig/utils/files/headers.py,sha256=L54G11DfLadyZGyQXSQ7y8UI_tNvlld7zqP4qEAWL88,3647
|
|
417
|
-
machineconfig/utils/files/read.py,sha256=
|
|
424
|
+
machineconfig/utils/files/read.py,sha256=R1bvIIdiFX9N0JyzUISqVfewYFq30cY3z0kqSlKGtuA,4566
|
|
418
425
|
machineconfig/utils/files/ouch/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
419
426
|
machineconfig/utils/files/ouch/decompress.py,sha256=7qPaEkMerBBXzeZyFn8hLODHZJv1aty-yGgwBxLgVys,1413
|
|
420
427
|
machineconfig/utils/installer_utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
421
428
|
machineconfig/utils/installer_utils/github_release_bulk.py,sha256=WJf_qZlF02SmIc6C7o1h4Gy4gAaJAfeAS8O9s2Itj-k,6535
|
|
422
|
-
machineconfig/utils/installer_utils/installer.py,sha256=
|
|
423
|
-
machineconfig/utils/installer_utils/installer_abc.py,sha256=
|
|
424
|
-
machineconfig/utils/installer_utils/installer_class.py,sha256=
|
|
429
|
+
machineconfig/utils/installer_utils/installer.py,sha256=CfBwtES-T0hhF-IHfbpyPn_tUz0YaVEk9sMV96oc0-w,9313
|
|
430
|
+
machineconfig/utils/installer_utils/installer_abc.py,sha256=IxAN2QDohMAudNY_snW88NPU2S8ZUp8_2BPC32R4d_s,11050
|
|
431
|
+
machineconfig/utils/installer_utils/installer_class.py,sha256=6FYtyY1EKsImqwZTtNmNbg8gKwYayeEmm_IBL-4Vbc8,18324
|
|
425
432
|
machineconfig/utils/schemas/fire_agents/fire_agents_input.py,sha256=Xbi59rU35AzR7HZZ8ZQ8aUu_FjSgijNqc8Sme0rCk2Y,2050
|
|
426
433
|
machineconfig/utils/schemas/installer/installer_types.py,sha256=QClRY61QaduBPJoSpdmTIdgS9LS-RvE-QZ-D260tD3o,1214
|
|
427
434
|
machineconfig/utils/schemas/layouts/layout_types.py,sha256=TcqlZdGVoH8htG5fHn1KWXhRdPueAcoyApppZsPAPto,2020
|
|
428
435
|
machineconfig/utils/schemas/repos/repos_types.py,sha256=ECVr-3IVIo8yjmYmVXX2mnDDN1SLSwvQIhx4KDDQHBQ,405
|
|
429
|
-
machineconfig-5.
|
|
430
|
-
machineconfig-5.
|
|
431
|
-
machineconfig-5.
|
|
432
|
-
machineconfig-5.
|
|
433
|
-
machineconfig-5.
|
|
436
|
+
machineconfig-5.28.dist-info/METADATA,sha256=lHeBGi9TCKHn9AZGejd2N2kqa8IsEBaEf3-sDdQK3to,2495
|
|
437
|
+
machineconfig-5.28.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
438
|
+
machineconfig-5.28.dist-info/entry_points.txt,sha256=8jXeXoGGihOkQtKV0VYlm6lq5ewDh2eXR_LcccRkbws,999
|
|
439
|
+
machineconfig-5.28.dist-info/top_level.txt,sha256=porRtB8qms8fOIUJgK-tO83_FeH6Bpe12oUVC670teA,14
|
|
440
|
+
machineconfig-5.28.dist-info/RECORD,,
|
|
@@ -3,7 +3,6 @@ agents = machineconfig.scripts.python.agents:main_from_parser
|
|
|
3
3
|
choose_wezterm_theme = machineconfig.scripts.python.choose_wezterm_theme:main
|
|
4
4
|
cloud_copy = machineconfig.scripts.python.cloud_copy:arg_parser
|
|
5
5
|
cloud_mount = machineconfig.scripts.python.cloud_mount:arg_parser
|
|
6
|
-
cloud_repo_sync = machineconfig.scripts.python.cloud_repo_sync:args_parser
|
|
7
6
|
cloud_sync = machineconfig.scripts.python.cloud_sync:arg_parser
|
|
8
7
|
croshell = machineconfig.scripts.python.croshell:arg_parser
|
|
9
8
|
devops = machineconfig.scripts.python.devops:app
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
uv run --python 3.13 --no-dev --project $HOME/code/machineconfig cloud_repo_sync $args
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|