machineconfig 7.53__py3-none-any.whl → 7.69__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/utils/maker.py +21 -9
- machineconfig/jobs/installer/custom/boxes.py +2 -2
- machineconfig/jobs/installer/custom/hx.py +15 -12
- machineconfig/jobs/installer/custom_dev/cloudflare_warp_cli.py +23 -0
- machineconfig/jobs/installer/custom_dev/dubdb_adbc.py +1 -1
- machineconfig/jobs/installer/custom_dev/nerfont_windows_helper.py +1 -1
- machineconfig/jobs/installer/custom_dev/sysabc.py +39 -34
- machineconfig/jobs/installer/custom_dev/wezterm.py +0 -4
- machineconfig/jobs/installer/installer_data.json +103 -35
- machineconfig/jobs/installer/package_groups.py +28 -13
- machineconfig/scripts/__init__.py +0 -4
- machineconfig/scripts/linux/wrap_mcfg +1 -1
- machineconfig/scripts/python/ai/solutions/copilot/instructions/python/dev.instructions.md +3 -0
- machineconfig/scripts/python/croshell.py +22 -17
- machineconfig/scripts/python/devops.py +3 -4
- machineconfig/scripts/python/devops_navigator.py +0 -4
- machineconfig/scripts/python/env_manager/path_manager_tui.py +1 -1
- machineconfig/scripts/python/fire_jobs.py +17 -15
- machineconfig/scripts/python/ftpx.py +13 -11
- machineconfig/scripts/python/helpers/ast_search.py +74 -0
- machineconfig/scripts/python/helpers/repo_rag.py +325 -0
- machineconfig/scripts/python/helpers/symantic_search.py +25 -0
- machineconfig/scripts/python/helpers_cloud/cloud_copy.py +28 -21
- machineconfig/scripts/python/helpers_cloud/cloud_helpers.py +1 -1
- machineconfig/scripts/python/helpers_cloud/cloud_sync.py +8 -7
- machineconfig/scripts/python/helpers_croshell/crosh.py +2 -2
- machineconfig/scripts/python/helpers_devops/cli_config_dotfile.py +22 -13
- machineconfig/scripts/python/helpers_devops/cli_self.py +7 -6
- machineconfig/scripts/python/helpers_devops/cli_share_file.py +2 -2
- machineconfig/scripts/python/helpers_devops/cli_share_server.py +1 -1
- machineconfig/scripts/python/helpers_devops/cli_terminal.py +1 -1
- machineconfig/scripts/python/helpers_devops/cli_utils.py +2 -73
- machineconfig/scripts/python/helpers_devops/devops_backup_retrieve.py +4 -4
- machineconfig/scripts/python/helpers_fire_command/file_wrangler.py +2 -3
- machineconfig/scripts/python/helpers_fire_command/fire_jobs_route_helper.py +3 -4
- machineconfig/scripts/python/helpers_navigator/command_tree.py +50 -18
- machineconfig/scripts/python/helpers_repos/cloud_repo_sync.py +13 -5
- machineconfig/scripts/python/helpers_repos/count_lines_frontend.py +1 -1
- machineconfig/scripts/python/helpers_repos/entrypoint.py +2 -1
- machineconfig/scripts/python/helpers_repos/record.py +2 -1
- machineconfig/scripts/python/helpers_sessions/sessions_multiprocess.py +5 -5
- machineconfig/scripts/python/helpers_utils/download.py +152 -0
- machineconfig/scripts/python/helpers_utils/path.py +4 -2
- machineconfig/scripts/python/interactive.py +11 -14
- machineconfig/scripts/python/{machineconfig.py → mcfg_entry.py} +4 -0
- machineconfig/scripts/python/msearch.py +21 -2
- machineconfig/scripts/python/nw/devops_add_ssh_key.py +21 -5
- machineconfig/scripts/python/nw/ssh_debug_linux.py +7 -7
- machineconfig/scripts/python/nw/ssh_debug_windows.py +4 -4
- machineconfig/scripts/python/nw/wsl_windows_transfer.py +3 -2
- machineconfig/scripts/python/sessions.py +35 -20
- machineconfig/scripts/python/terminal.py +2 -2
- machineconfig/scripts/python/utils.py +12 -10
- machineconfig/scripts/windows/mounts/mount_ssh.ps1 +1 -1
- machineconfig/settings/lf/windows/lfcd.ps1 +1 -1
- machineconfig/settings/shells/pwsh/init.ps1 +1 -0
- machineconfig/settings/shells/wezterm/wezterm.lua +2 -0
- machineconfig/settings/shells/zsh/init.sh +0 -7
- machineconfig/settings/yazi/shell/yazi_cd.ps1 +29 -5
- machineconfig/setup_linux/web_shortcuts/interactive.sh +12 -11
- machineconfig/setup_windows/uv.ps1 +8 -1
- machineconfig/setup_windows/web_shortcuts/interactive.ps1 +12 -11
- machineconfig/setup_windows/web_shortcuts/quick_init.ps1 +4 -2
- machineconfig/utils/accessories.py +7 -4
- machineconfig/utils/code.py +6 -4
- machineconfig/utils/files/headers.py +2 -2
- machineconfig/utils/installer_utils/install_from_url.py +180 -0
- machineconfig/utils/installer_utils/installer_class.py +56 -46
- machineconfig/utils/installer_utils/{installer.py → installer_cli.py} +71 -65
- machineconfig/utils/{installer.py → installer_utils/installer_runner.py} +1 -25
- machineconfig/utils/meta.py +28 -15
- machineconfig/utils/options.py +4 -4
- machineconfig/utils/path_extended.py +40 -19
- machineconfig/utils/path_helper.py +33 -31
- machineconfig/utils/schemas/layouts/layout_types.py +1 -1
- machineconfig/utils/ssh.py +330 -99
- machineconfig/utils/ve.py +11 -4
- machineconfig-7.69.dist-info/METADATA +124 -0
- {machineconfig-7.53.dist-info → machineconfig-7.69.dist-info}/RECORD +85 -83
- {machineconfig-7.53.dist-info → machineconfig-7.69.dist-info}/entry_points.txt +2 -2
- machineconfig/jobs/installer/linux_scripts/pgsql.sh +0 -41
- machineconfig/scripts/python/explore.py +0 -49
- machineconfig/scripts/python/nw/add_ssh_key.py +0 -148
- machineconfig/settings/lf/linux/exe/fzf_nano.sh +0 -16
- machineconfig-7.53.dist-info/METADATA +0 -94
- /machineconfig/jobs/installer/linux_scripts/{warp-cli.sh → cloudflare_warp_cli.sh} +0 -0
- /machineconfig/scripts/{Restore-ThunderbirdProfile.ps1 → windows/mounts/Restore-ThunderbirdProfile.ps1} +0 -0
- /machineconfig/utils/installer_utils/{installer_abc.py → installer_locator_utils.py} +0 -0
- {machineconfig-7.53.dist-info → machineconfig-7.69.dist-info}/WHEEL +0 -0
- {machineconfig-7.53.dist-info → machineconfig-7.69.dist-info}/top_level.txt +0 -0
|
@@ -4,18 +4,24 @@ from typing import Optional, Literal
|
|
|
4
4
|
from machineconfig.utils.schemas.layouts.layout_types import TabConfig, LayoutConfig
|
|
5
5
|
from pathlib import Path
|
|
6
6
|
|
|
7
|
-
def get_fire_tab_using_uv(func: FunctionType, import_module: bool, uv_with: Optional[list[str]], uv_project_dir: Optional[str]) -> tuple[TabConfig, Path]:
|
|
7
|
+
def get_fire_tab_using_uv(func: FunctionType, tab_weight: int, import_module: bool, uv_with: Optional[list[str]], uv_project_dir: Optional[str]) -> tuple[TabConfig, Path]:
|
|
8
8
|
from machineconfig.utils.meta import lambda_to_python_script
|
|
9
|
-
|
|
9
|
+
if func.__name__ == "<lambda>":
|
|
10
|
+
py_script = lambda_to_python_script(lmb=func,
|
|
11
|
+
in_global=True, import_module=import_module)
|
|
12
|
+
else:
|
|
13
|
+
py_script = lambda_to_python_script(lmb=lambda: func(),
|
|
14
|
+
in_global=True, import_module=import_module)
|
|
10
15
|
from machineconfig.utils.code import get_uv_command_executing_python_script
|
|
11
16
|
command_to_run, py_script_path = get_uv_command_executing_python_script(python_script=py_script, uv_with=uv_with, uv_project_dir=uv_project_dir)
|
|
12
17
|
tab_config: TabConfig = {
|
|
13
18
|
"command": command_to_run,
|
|
14
19
|
"startDir": "$HOME",
|
|
15
|
-
"tabName": func.__name__
|
|
20
|
+
"tabName": func.__name__,
|
|
21
|
+
"tabWeight": tab_weight
|
|
16
22
|
}
|
|
17
23
|
return tab_config, py_script_path
|
|
18
|
-
def get_fire_tab_using_fire(func: FunctionType):
|
|
24
|
+
def get_fire_tab_using_fire(func: FunctionType, tab_weight: int) -> TabConfig:
|
|
19
25
|
import inspect
|
|
20
26
|
from machineconfig.utils.source_of_truth import CONFIG_ROOT
|
|
21
27
|
import platform
|
|
@@ -32,21 +38,27 @@ def get_fire_tab_using_fire(func: FunctionType):
|
|
|
32
38
|
tab_config: TabConfig = {
|
|
33
39
|
"command": command_to_run,
|
|
34
40
|
"startDir": "$HOME",
|
|
35
|
-
"tabName": func.__name__
|
|
41
|
+
"tabName": func.__name__,
|
|
42
|
+
"tabWeight": tab_weight
|
|
36
43
|
}
|
|
37
44
|
return tab_config
|
|
38
45
|
|
|
39
46
|
|
|
40
47
|
|
|
41
|
-
def make_layout_from_functions(functions: list[FunctionType],
|
|
48
|
+
def make_layout_from_functions(functions: list[FunctionType], functions_weights: Optional[list[int]], import_module: bool, tab_configs: list[TabConfig],
|
|
49
|
+
layout_name: str, method: Literal["script", "fire"],
|
|
50
|
+
uv_with: Optional[list[str]] = None, uv_project_dir: Optional[str] = None
|
|
51
|
+
) -> LayoutConfig:
|
|
42
52
|
tabs2artifacts: list[tuple[TabConfig, list[Path]]] = []
|
|
43
|
-
for a_func in functions:
|
|
53
|
+
for a_func, tab_weight in zip(functions, functions_weights or [1]*len(functions)):
|
|
44
54
|
match method:
|
|
45
55
|
case "script":
|
|
46
|
-
tab_config, artifact_files_1 = get_fire_tab_using_uv(a_func,
|
|
56
|
+
tab_config, artifact_files_1 = get_fire_tab_using_uv(a_func, tab_weight=tab_weight, import_module=import_module,
|
|
57
|
+
uv_with=uv_with, uv_project_dir=uv_project_dir
|
|
58
|
+
)
|
|
47
59
|
artifact_files = [artifact_files_1]
|
|
48
60
|
case "fire":
|
|
49
|
-
tab_config = get_fire_tab_using_fire(a_func)
|
|
61
|
+
tab_config = get_fire_tab_using_fire(a_func, tab_weight=tab_weight)
|
|
50
62
|
artifact_files = []
|
|
51
63
|
tabs2artifacts.append((tab_config, artifact_files))
|
|
52
64
|
list_of_tabs = [tab for tab, _ in tabs2artifacts] + tab_configs
|
|
@@ -5,7 +5,7 @@ from typing import Optional
|
|
|
5
5
|
|
|
6
6
|
from rich.console import Console
|
|
7
7
|
from rich.panel import Panel
|
|
8
|
-
from machineconfig.utils.installer_utils.
|
|
8
|
+
from machineconfig.utils.installer_utils.installer_locator_utils import WINDOWS_INSTALL_PATH
|
|
9
9
|
|
|
10
10
|
from machineconfig.utils.installer_utils.installer_class import Installer
|
|
11
11
|
from machineconfig.utils.schemas.installer.installer_types import InstallerData
|
|
@@ -40,7 +40,7 @@ def main(installer_data: InstallerData, version: Optional[str] = None) -> None:
|
|
|
40
40
|
)
|
|
41
41
|
|
|
42
42
|
installer = Installer(installer_data=installer_data_modified)
|
|
43
|
-
downloaded, _version_to_be_installed = installer.
|
|
43
|
+
downloaded, _version_to_be_installed = installer.binary_download(version=version)
|
|
44
44
|
decomp_path = downloaded.decompress()
|
|
45
45
|
from pathlib import Path
|
|
46
46
|
for item in decomp_path.rglob("*"):
|
|
@@ -3,17 +3,18 @@ Installers do not add runtime files to the machine, hence this script.
|
|
|
3
3
|
"""
|
|
4
4
|
|
|
5
5
|
from machineconfig.utils.path_extended import PathExtended
|
|
6
|
-
from machineconfig.utils.installer_utils.
|
|
6
|
+
from machineconfig.utils.installer_utils.installer_locator_utils import WINDOWS_INSTALL_PATH
|
|
7
7
|
from typing import Optional
|
|
8
8
|
import platform
|
|
9
9
|
|
|
10
|
-
from machineconfig.utils.installer_utils.
|
|
10
|
+
from machineconfig.utils.installer_utils.installer_locator_utils import LINUX_INSTALL_PATH
|
|
11
11
|
from machineconfig.utils.installer_utils.installer_class import Installer
|
|
12
12
|
from rich.console import Console
|
|
13
13
|
from rich.panel import Panel
|
|
14
14
|
from machineconfig.utils.schemas.installer.installer_types import InstallerData
|
|
15
15
|
|
|
16
16
|
|
|
17
|
+
LANGUAGES_SUPPORTED_GRAMMER = ["python.so", "nu.so", "bash.so", "lua.so", "powershell.so"]
|
|
17
18
|
config_dict: InstallerData = {
|
|
18
19
|
"appName": "hx",
|
|
19
20
|
"repoURL": "CMD",
|
|
@@ -44,7 +45,7 @@ def main(installer_data: InstallerData, version: Optional[str], install_lib: boo
|
|
|
44
45
|
inst = Installer(installer_data=config_dict_copy)
|
|
45
46
|
|
|
46
47
|
print("\n📥 [Step 1/5] Downloading Helix editor...")
|
|
47
|
-
downloaded, _version_to_be_installed = inst.
|
|
48
|
+
downloaded, _version_to_be_installed = inst.binary_download(version=version)
|
|
48
49
|
print(" ✨ Download complete.")
|
|
49
50
|
|
|
50
51
|
print("\n🔍 [Step 2/5] Locating executable and components...")
|
|
@@ -102,11 +103,12 @@ def main(installer_data: InstallerData, version: Optional[str], install_lib: boo
|
|
|
102
103
|
if not child.exists():
|
|
103
104
|
continue
|
|
104
105
|
if child.name == "grammars":
|
|
105
|
-
# copy only the
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
106
|
+
# copy only the specific language files from runtime/grammars if they exist
|
|
107
|
+
for a_language in LANGUAGES_SUPPORTED_GRAMMER:
|
|
108
|
+
lang_file = child.joinpath(a_language)
|
|
109
|
+
if lang_file.exists() and lang_file.is_file():
|
|
110
|
+
dest = target_runtime.joinpath("grammars")
|
|
111
|
+
lang_file.copy(folder=dest, overwrite=True)
|
|
110
112
|
else:
|
|
111
113
|
# copy the whole child (file or directory) into target_runtime
|
|
112
114
|
# for directories, copy will create target_runtime/<child.name>
|
|
@@ -148,10 +150,11 @@ def main(installer_data: InstallerData, version: Optional[str], install_lib: boo
|
|
|
148
150
|
if not child.exists():
|
|
149
151
|
continue
|
|
150
152
|
if child.name == "grammars":
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
153
|
+
for a_language in LANGUAGES_SUPPORTED_GRAMMER:
|
|
154
|
+
lang_file = child.joinpath(a_language)
|
|
155
|
+
if lang_file.exists() and lang_file.is_file():
|
|
156
|
+
dest = target_runtime.joinpath("grammars")
|
|
157
|
+
lang_file.copy(folder=dest, overwrite=True)
|
|
155
158
|
else:
|
|
156
159
|
try:
|
|
157
160
|
child.copy(folder=target_runtime, overwrite=True)
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
|
|
2
|
+
from typing import Optional
|
|
3
|
+
import platform
|
|
4
|
+
from machineconfig.utils.schemas.installer.installer_types import InstallerData
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
def main(installer_data: InstallerData, version: Optional[str]):
|
|
8
|
+
_ = installer_data, version
|
|
9
|
+
system = platform.system()
|
|
10
|
+
if system == "Windows":
|
|
11
|
+
raise NotImplementedError("Installer is not yet implemented for Windows.")
|
|
12
|
+
elif system == "Linux":
|
|
13
|
+
from pathlib import Path
|
|
14
|
+
import machineconfig.jobs.installer as module
|
|
15
|
+
program = Path(module.__file__).parent.joinpath("linux_scripts/cloudflare_warp_cli.sh").read_text(encoding="utf-8")
|
|
16
|
+
elif system == "Darwin":
|
|
17
|
+
program = "brew install --cask cloudflare-warp"
|
|
18
|
+
else:
|
|
19
|
+
raise NotImplementedError(f"Unsupported platform: {system}")
|
|
20
|
+
import subprocess
|
|
21
|
+
subprocess.run(program, shell=True, check=True)
|
|
22
|
+
return f"Cloudflare WARP CLI installed successfully on {system}."
|
|
23
|
+
|
|
@@ -25,6 +25,6 @@ installer_data: InstallerData = {
|
|
|
25
25
|
|
|
26
26
|
def main(installer_data: InstallerData, version: Optional[str]) -> None:
|
|
27
27
|
_ = version
|
|
28
|
-
from machineconfig.utils.
|
|
28
|
+
from machineconfig.utils.installer_utils.installer_runner import Installer
|
|
29
29
|
installer = Installer(installer_data)
|
|
30
30
|
installer.install(version=None)
|
|
@@ -116,7 +116,7 @@ def install_nerd_fonts() -> None:
|
|
|
116
116
|
console.print(f"🔍 Missing fonts detected: {', '.join(missing)}. Proceeding with installation...")
|
|
117
117
|
console.print("🔍 Downloading Nerd Fonts package...")
|
|
118
118
|
|
|
119
|
-
folder, _version_to_be_installed = Installer(installer_data=nerd_fonts).
|
|
119
|
+
folder, _version_to_be_installed = Installer(installer_data=nerd_fonts).binary_download(version=None)
|
|
120
120
|
|
|
121
121
|
console.print("🧹 Cleaning up unnecessary files...")
|
|
122
122
|
[p.delete(sure=True) for p in folder.search("*Windows*")]
|
|
@@ -8,7 +8,33 @@ from rich.panel import Panel
|
|
|
8
8
|
from machineconfig.utils.schemas.installer.installer_types import InstallerData
|
|
9
9
|
|
|
10
10
|
|
|
11
|
-
|
|
11
|
+
"""
|
|
12
|
+
{
|
|
13
|
+
"appName": "Microsoft.DesktopAppInstaller_8wekyb3d8bbwe.msixbundle",
|
|
14
|
+
"repoURL": "https://github.com/microsoft/winget-cli",
|
|
15
|
+
"doc": "📦 Windows Package Manager CLI",
|
|
16
|
+
"fileNamePattern": {
|
|
17
|
+
"amd64": {
|
|
18
|
+
"linux": null,
|
|
19
|
+
"windows": "Microsoft.DesktopAppInstaller_8wekyb3d8bbwe.msixbundle",
|
|
20
|
+
"macos": null
|
|
21
|
+
},
|
|
22
|
+
"arm64": {
|
|
23
|
+
"linux": null,
|
|
24
|
+
"windows": "Microsoft.DesktopAppInstaller_8wekyb3d8bbwe.msixbundle",
|
|
25
|
+
"macos": null
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
"""
|
|
30
|
+
|
|
31
|
+
ps1 = r"""
|
|
32
|
+
|
|
33
|
+
# if windows is missing
|
|
34
|
+
# download latest from cd $HOME/Downloads; d u "https://github.com/microsoft/winget-cli/releases/download/v1.12.170-preview/Microsoft.DesktopAppInstaller_8wekyb3d8bbwe.msixbundle"
|
|
35
|
+
# this must be run in windows powershell, not in pwsh
|
|
36
|
+
# Add-AppxPackage .\Microsoft.DesktopAppInstaller_8wekyb3d8bbwe.msixbundle
|
|
37
|
+
|
|
12
38
|
winget install --no-upgrade --name "Powershell" --Id "Microsoft.PowerShell" --source winget --scope user --accept-package-agreements --accept-source-agreements # powershell require admin
|
|
13
39
|
winget install --no-upgrade --name "Windows Terminal" --Id "Microsoft.WindowsTerminal" --source winget --scope user --accept-package-agreements --accept-source-agreements # Terminal is is installed by default on W 11
|
|
14
40
|
winget install --no-upgrade --name "GNU Nano" --Id "GNU.Nano" --source winget --scope user --accept-package-agreements --accept-source-agreements
|
|
@@ -20,7 +46,7 @@ winget install --no-upgrade --name "GNU Nano" --Id "GNU.Nano
|
|
|
20
46
|
|
|
21
47
|
"""
|
|
22
48
|
|
|
23
|
-
zsh = """
|
|
49
|
+
zsh = r"""
|
|
24
50
|
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
|
|
25
51
|
echo "🔄 Updating Homebrew..."
|
|
26
52
|
brew update || true
|
|
@@ -48,15 +74,15 @@ nvm install node || true
|
|
|
48
74
|
echo "✅ Essential tools installation complete."
|
|
49
75
|
"""
|
|
50
76
|
|
|
51
|
-
bash = """
|
|
52
|
-
echo "🔄 Updating apt package lists..."
|
|
53
|
-
echo "📥 Installing nala package manager..."
|
|
54
|
-
echo "📥 Installing essential network tools..."
|
|
55
|
-
echo "📥 Installing Node Version Manager (NVM)..."
|
|
77
|
+
bash = r"""
|
|
56
78
|
sudo apt update -y || true
|
|
57
79
|
sudo apt install nala -y || true
|
|
58
80
|
sudo nala install curl wget gpg lsb-release apt-transport-https -y || true
|
|
59
81
|
sudo nala install git net-tools htop nano -y || true
|
|
82
|
+
sudo nala install build-essential python3-dev -y || true # C build toolchain: Where build-essential brings gcc, make, etc., and python3-dev ensures headers for your Python version.
|
|
83
|
+
# sudo nala install libssl-dev -y
|
|
84
|
+
# sudo nala install libaa-bin -y
|
|
85
|
+
|
|
60
86
|
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.3/install.sh | bash
|
|
61
87
|
echo "🔧 Configuring NVM environment..."
|
|
62
88
|
export NVM_DIR="$HOME/.nvm"
|
|
@@ -64,40 +90,19 @@ export NVM_DIR="$HOME/.nvm"
|
|
|
64
90
|
echo "📥 Installing latest Node.js..."
|
|
65
91
|
nvm install node || true
|
|
66
92
|
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
# echo "📥 Installing aafire - ASCII art fire animation..."
|
|
72
|
-
# echo "📥 Installing cmatrix - Matrix-style terminal animation..."
|
|
73
|
-
# echo "📥 Installing hollywood - Hollywood hacker terminal effect..."
|
|
74
|
-
# echo "📥 Installing chafa - terminal image viewer..."
|
|
75
|
-
# sudo nala install cowsay -y || true
|
|
76
|
-
# sudo nala install lolcat -y || true
|
|
77
|
-
# sudo nala install boxes -y || true
|
|
78
|
-
# sudo nala install figlet -y || true
|
|
79
|
-
# sudo nala install fortune -y || true
|
|
80
|
-
# sudo nala install toilet -y || true
|
|
81
|
-
# sudo nala install chafa -y
|
|
82
|
-
# sudo nala install sl -y || true
|
|
83
|
-
# sudo nala install libaa-bin -y
|
|
93
|
+
sudo nala install samba
|
|
94
|
+
sudo nala install fuse3 -y || true
|
|
95
|
+
sudo nala install nfs-common -y || true
|
|
96
|
+
|
|
84
97
|
# echo 'keyboard-configuration keyboard-configuration/layout select US English' | sudo debconf-set-selections
|
|
85
98
|
# echo 'keyboard-configuration keyboard-configuration/layoutcode string us' | sudo debconf-set-selections
|
|
86
99
|
# sudo DEBIAN_FRONTEND=noninteractive nala install -y cmatrix
|
|
87
100
|
# sudo nala install hollywood -y || true
|
|
88
101
|
|
|
89
|
-
# --GROUP:net: sshfs,samba,fuse3,nfs-common
|
|
90
|
-
echo "📥 Installing sshfs - mount remote filesystems over SSH..."
|
|
91
|
-
echo "📥 Installing Samba - LAN-based file sharing..."
|
|
92
|
-
sudo nala install samba
|
|
93
|
-
sudo nala install fuse3 -y || true
|
|
94
|
-
sudo nala install nfs-common -y || true
|
|
95
|
-
|
|
96
|
-
# --GROUP:dev: graphviz,make,rust,libssl-dev,sqlite3,postgresql-client,redis-tools
|
|
97
102
|
# sudo nala install ffmpeg -y || true # Required by some dev tools
|
|
98
103
|
# sudo nala install make -y || true # Required by LunarVim and SpaceVim
|
|
99
104
|
# (curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh) || true
|
|
100
|
-
|
|
105
|
+
|
|
101
106
|
"""
|
|
102
107
|
|
|
103
108
|
|
|
@@ -136,5 +141,5 @@ def main(installer_data: InstallerData, version: Optional[str]) -> None:
|
|
|
136
141
|
)
|
|
137
142
|
raise NotImplementedError(error_msg)
|
|
138
143
|
from machineconfig.utils.code import print_code, run_shell_script
|
|
139
|
-
print_code(program, lexer="shell", desc="Installation Script Preview")
|
|
144
|
+
print_code(code=program, lexer="shell", desc="Installation Script Preview")
|
|
140
145
|
run_shell_script(program)
|
|
@@ -9,10 +9,6 @@ from rich.panel import Panel
|
|
|
9
9
|
|
|
10
10
|
from machineconfig.utils.schemas.installer.installer_types import InstallerData
|
|
11
11
|
|
|
12
|
-
|
|
13
|
-
# config_dict: InstallerData = {"appName": "Wezterm", "repoURL": "CMD", "doc": "Modern, GPU-accelerated terminal emulator"}
|
|
14
|
-
|
|
15
|
-
|
|
16
12
|
console = Console()
|
|
17
13
|
|
|
18
14
|
|
|
@@ -528,6 +528,40 @@
|
|
|
528
528
|
}
|
|
529
529
|
}
|
|
530
530
|
},
|
|
531
|
+
{
|
|
532
|
+
"appName": "cloudflare-warp",
|
|
533
|
+
"repoURL": "CMD",
|
|
534
|
+
"doc": "🌐 Cloudflare WARP VPN client",
|
|
535
|
+
"fileNamePattern": {
|
|
536
|
+
"amd64": {
|
|
537
|
+
"linux": null,
|
|
538
|
+
"windows": "winget install --no-upgrade --name \"Cloudflare WARP\" --Id \"Cloudflare.Warp\" --source winget --scope user --accept-package-agreements --accept-source-agreements",
|
|
539
|
+
"macos": null
|
|
540
|
+
},
|
|
541
|
+
"arm64": {
|
|
542
|
+
"linux": null,
|
|
543
|
+
"windows": "winget install --no-upgrade --name \"Cloudflare WARP\" --Id \"Cloudflare.Warp\" --source winget --scope user --accept-package-agreements --accept-source-agreements",
|
|
544
|
+
"macos": null
|
|
545
|
+
}
|
|
546
|
+
}
|
|
547
|
+
},
|
|
548
|
+
{
|
|
549
|
+
"appName": "cloudflare-warp-cli",
|
|
550
|
+
"repoURL": "CMD",
|
|
551
|
+
"doc": "🌐 Cloudflare WARP VPN client in the terminal",
|
|
552
|
+
"fileNamePattern": {
|
|
553
|
+
"amd64": {
|
|
554
|
+
"linux": "cloudflare_warp_cli.py",
|
|
555
|
+
"windows": "cloudflare_warp_cli.py",
|
|
556
|
+
"macos": "cloudflare_warp_cli.py"
|
|
557
|
+
},
|
|
558
|
+
"arm64": {
|
|
559
|
+
"linux": "cloudflare_warp_cli.py",
|
|
560
|
+
"windows": "cloudflare_warp_cli.py",
|
|
561
|
+
"macos": "cloudflare_warp_cli.py"
|
|
562
|
+
}
|
|
563
|
+
}
|
|
564
|
+
},
|
|
531
565
|
{
|
|
532
566
|
"appName": "cpufetch",
|
|
533
567
|
"repoURL": "https://github.com/Dr-Noob/cpufetch",
|
|
@@ -851,6 +885,40 @@
|
|
|
851
885
|
}
|
|
852
886
|
}
|
|
853
887
|
},
|
|
888
|
+
{
|
|
889
|
+
"appName": "meilisearch",
|
|
890
|
+
"repoURL": "https://github.com/meilisearch/meilisearch",
|
|
891
|
+
"doc": "🔍 symantic search at lightening speed",
|
|
892
|
+
"fileNamePattern": {
|
|
893
|
+
"amd64": {
|
|
894
|
+
"linux": "meilisearch-linux-amd64",
|
|
895
|
+
"macos": "meilisearch-macos-amd64",
|
|
896
|
+
"windows": "meilisearch-windows-amd64.exe"
|
|
897
|
+
},
|
|
898
|
+
"arm64": {
|
|
899
|
+
"linux": "meilisearch-linux-aarch64",
|
|
900
|
+
"macos": "meilisearch-macos-aarch64",
|
|
901
|
+
"windows": "meilisearch-windows-aarch64.exe"
|
|
902
|
+
}
|
|
903
|
+
}
|
|
904
|
+
},
|
|
905
|
+
{
|
|
906
|
+
"appName": "ast-grep",
|
|
907
|
+
"repoURL": "https://github.com/ast-grep/ast-grep",
|
|
908
|
+
"doc": "🔍 grep for code - search and rewrite code with ASTs",
|
|
909
|
+
"fileNamePattern": {
|
|
910
|
+
"amd64": {
|
|
911
|
+
"linux": "app-x86_64-unknown-linux-gnu.zip",
|
|
912
|
+
"macos": "app-x86_64-apple-darwin.zip",
|
|
913
|
+
"windows": "app-x86_64-pc-windows-msvc.zip"
|
|
914
|
+
},
|
|
915
|
+
"arm64": {
|
|
916
|
+
"linux": "app-aarch64-unknown-linux-gnu.zip",
|
|
917
|
+
"macos": "app-aarch64-apple-darwin.zip",
|
|
918
|
+
"windows": "app-aarch64-pc-windows-msvc.zip"
|
|
919
|
+
}
|
|
920
|
+
}
|
|
921
|
+
},
|
|
854
922
|
{
|
|
855
923
|
"appName": "rg",
|
|
856
924
|
"repoURL": "https://github.com/BurntSushi/ripgrep",
|
|
@@ -993,12 +1061,12 @@
|
|
|
993
1061
|
"doc": "⚡ Blazing Fast Terminal File Manager.",
|
|
994
1062
|
"fileNamePattern": {
|
|
995
1063
|
"amd64": {
|
|
996
|
-
"linux": "yazi-x86_64-unknown-linux-
|
|
1064
|
+
"linux": "yazi-x86_64-unknown-linux-musl.zip",
|
|
997
1065
|
"macos": "yazi-x86_64-apple-darwin.zip",
|
|
998
1066
|
"windows": "yazi-x86_64-pc-windows-msvc.zip"
|
|
999
1067
|
},
|
|
1000
1068
|
"arm64": {
|
|
1001
|
-
"linux": "yazi-aarch64-unknown-linux-
|
|
1069
|
+
"linux": "yazi-aarch64-unknown-linux-musl.zip",
|
|
1002
1070
|
"macos": "yazi-aarch64-apple-darwin.zip",
|
|
1003
1071
|
"windows": "yazi-aarch64-pc-windows-msvc.zip"
|
|
1004
1072
|
}
|
|
@@ -1844,12 +1912,12 @@
|
|
|
1844
1912
|
"fileNamePattern": {
|
|
1845
1913
|
"amd64": {
|
|
1846
1914
|
"linux": "miniserve-{version}-x86_64-unknown-linux-musl",
|
|
1847
|
-
"
|
|
1915
|
+
"macos": "miniserve-{version}-x86_64-apple-darwin",
|
|
1848
1916
|
"windows": "miniserve-{version}-x86_64-pc-windows-msvc.exe"
|
|
1849
1917
|
},
|
|
1850
1918
|
"arm64": {
|
|
1851
1919
|
"linux": "miniserve-{version}-aarch64-unknown-linux-musl",
|
|
1852
|
-
"
|
|
1920
|
+
"macos": "miniserve-{version}-aarch64-apple-darwin",
|
|
1853
1921
|
"windows": "miniserve-{version}-aarch64-pc-windows-msvc.exe"
|
|
1854
1922
|
}
|
|
1855
1923
|
}
|
|
@@ -2200,14 +2268,14 @@
|
|
|
2200
2268
|
"doc": "🖥️ Text-based desktop environment inside your terminal",
|
|
2201
2269
|
"fileNamePattern": {
|
|
2202
2270
|
"amd64": {
|
|
2203
|
-
"linux":
|
|
2204
|
-
"macos":
|
|
2205
|
-
"windows":
|
|
2271
|
+
"linux": "vtm_linux_x86_64.tar.7z",
|
|
2272
|
+
"macos": "vtm_macos_any.tar.7z",
|
|
2273
|
+
"windows": "vtm_windows_x86_64.7z"
|
|
2206
2274
|
},
|
|
2207
2275
|
"arm64": {
|
|
2208
|
-
"linux":
|
|
2209
|
-
"macos":
|
|
2210
|
-
"windows":
|
|
2276
|
+
"linux": "vtm_linux_arm64.tar.7z",
|
|
2277
|
+
"macos": "vtm_macos_any.tar.7z",
|
|
2278
|
+
"windows": "vtm_windows_arm64.7z"
|
|
2211
2279
|
}
|
|
2212
2280
|
}
|
|
2213
2281
|
},
|
|
@@ -2488,16 +2556,33 @@
|
|
|
2488
2556
|
"appName": "warp",
|
|
2489
2557
|
"repoURL": "CMD",
|
|
2490
2558
|
"doc": "Modern terminal with AI-powered features",
|
|
2559
|
+
"fileNamePattern": {
|
|
2560
|
+
"amd64": {
|
|
2561
|
+
"linux": "https://app.warp.dev/get_warp?package=deb",
|
|
2562
|
+
"windows": "winget install Warp.Warp",
|
|
2563
|
+
"macos": "brew install --cask warp"
|
|
2564
|
+
},
|
|
2565
|
+
"arm64": {
|
|
2566
|
+
"linux": "https://app.warp.dev/get_warp?package=deb_arm64",
|
|
2567
|
+
"windows": "winget install Warp.Warp",
|
|
2568
|
+
"macos": "brew install --cask warp"
|
|
2569
|
+
}
|
|
2570
|
+
}
|
|
2571
|
+
},
|
|
2572
|
+
{
|
|
2573
|
+
"appName": "warp-terminal-cli",
|
|
2574
|
+
"repoURL": "CMD",
|
|
2575
|
+
"doc": "Modern terminal cli with AI-powered features",
|
|
2491
2576
|
"fileNamePattern": {
|
|
2492
2577
|
"amd64": {
|
|
2493
2578
|
"linux": "https://app.warp.dev/download/cli?os=linux&package=deb&arch=x86_64",
|
|
2494
2579
|
"windows": null,
|
|
2495
|
-
"macos":
|
|
2580
|
+
"macos": " brew tap warpdotdev/warp; brew update; brew install --cask warp-cli"
|
|
2496
2581
|
},
|
|
2497
2582
|
"arm64": {
|
|
2498
2583
|
"linux": "https://app.warp.dev/download/cli?os=linux&package=deb&arch=aarch64",
|
|
2499
2584
|
"windows": null,
|
|
2500
|
-
"macos":
|
|
2585
|
+
"macos": " brew tap warpdotdev/warp; brew update; brew install --cask warp-cli"
|
|
2501
2586
|
}
|
|
2502
2587
|
}
|
|
2503
2588
|
},
|
|
@@ -2570,7 +2655,7 @@
|
|
|
2570
2655
|
}
|
|
2571
2656
|
},
|
|
2572
2657
|
{
|
|
2573
|
-
"appName": "
|
|
2658
|
+
"appName": "brave",
|
|
2574
2659
|
"repoURL": "CMD",
|
|
2575
2660
|
"doc": "Privacy-focused web browser with built-in ad blocking",
|
|
2576
2661
|
"fileNamePattern": {
|
|
@@ -2638,7 +2723,7 @@
|
|
|
2638
2723
|
}
|
|
2639
2724
|
},
|
|
2640
2725
|
{
|
|
2641
|
-
"appName": "
|
|
2726
|
+
"appName": "gorilla",
|
|
2642
2727
|
"repoURL": "https://github.com/ShishirPatil/gorilla",
|
|
2643
2728
|
"doc": "natural language to API",
|
|
2644
2729
|
"fileNamePattern": {
|
|
@@ -2689,7 +2774,7 @@
|
|
|
2689
2774
|
}
|
|
2690
2775
|
},
|
|
2691
2776
|
{
|
|
2692
|
-
"appName": "
|
|
2777
|
+
"appName": "redis",
|
|
2693
2778
|
"repoURL": "CMD",
|
|
2694
2779
|
"doc": "submillisecond fast key-value db",
|
|
2695
2780
|
"fileNamePattern": {
|
|
@@ -2706,7 +2791,7 @@
|
|
|
2706
2791
|
}
|
|
2707
2792
|
},
|
|
2708
2793
|
{
|
|
2709
|
-
"appName": "
|
|
2794
|
+
"appName": "wezterm",
|
|
2710
2795
|
"repoURL": "CMD",
|
|
2711
2796
|
"doc": "Modern, GPU-accelerated terminal emulator",
|
|
2712
2797
|
"fileNamePattern": {
|
|
@@ -2994,23 +3079,6 @@
|
|
|
2994
3079
|
}
|
|
2995
3080
|
}
|
|
2996
3081
|
},
|
|
2997
|
-
{
|
|
2998
|
-
"appName": "cloudflare-warp",
|
|
2999
|
-
"repoURL": "CMD",
|
|
3000
|
-
"doc": "🌐 Cloudflare WARP VPN client",
|
|
3001
|
-
"fileNamePattern": {
|
|
3002
|
-
"amd64": {
|
|
3003
|
-
"linux": null,
|
|
3004
|
-
"windows": "winget install --no-upgrade --name \"Cloudflare WARP\" --Id \"Cloudflare.Warp\" --source winget --scope user --accept-package-agreements --accept-source-agreements",
|
|
3005
|
-
"macos": null
|
|
3006
|
-
},
|
|
3007
|
-
"arm64": {
|
|
3008
|
-
"linux": null,
|
|
3009
|
-
"windows": "winget install --no-upgrade --name \"Cloudflare WARP\" --Id \"Cloudflare.Warp\" --source winget --scope user --accept-package-agreements --accept-source-agreements",
|
|
3010
|
-
"macos": null
|
|
3011
|
-
}
|
|
3012
|
-
}
|
|
3013
|
-
},
|
|
3014
3082
|
{
|
|
3015
3083
|
"appName": "mouse-without-borders",
|
|
3016
3084
|
"repoURL": "CMD",
|
|
@@ -3323,12 +3391,12 @@
|
|
|
3323
3391
|
"doc": "🖼️ Terminal graphics and image viewer",
|
|
3324
3392
|
"fileNamePattern": {
|
|
3325
3393
|
"amd64": {
|
|
3326
|
-
"linux":
|
|
3394
|
+
"linux": "sudo nala install chafa -y",
|
|
3327
3395
|
"windows": "winget install --no-upgrade --name \"Chafa\" --Id \"hpjansson.Chafa\" --source winget --scope user --accept-package-agreements --accept-source-agreements",
|
|
3328
3396
|
"macos": "brew install chafa"
|
|
3329
3397
|
},
|
|
3330
3398
|
"arm64": {
|
|
3331
|
-
"linux":
|
|
3399
|
+
"linux": "sudo nala install chafa -y",
|
|
3332
3400
|
"windows": "winget install --no-upgrade --name \"Chafa\" --Id \"hpjansson.Chafa\" --source winget --scope user --accept-package-agreements --accept-source-agreements",
|
|
3333
3401
|
"macos": "brew install chafa"
|
|
3334
3402
|
}
|
|
@@ -1,4 +1,11 @@
|
|
|
1
1
|
|
|
2
|
+
GUI = [
|
|
3
|
+
"brave",
|
|
4
|
+
"code",
|
|
5
|
+
"git",
|
|
6
|
+
"wezterm",
|
|
7
|
+
]
|
|
8
|
+
|
|
2
9
|
# AI/LLM Tools - AI-powered coding and chat assistants
|
|
3
10
|
AGENTS = [
|
|
4
11
|
"aider",
|
|
@@ -17,6 +24,7 @@ AGENTS = [
|
|
|
17
24
|
"kilocode",
|
|
18
25
|
"cline",
|
|
19
26
|
"auggie",
|
|
27
|
+
# "gorilla",
|
|
20
28
|
]
|
|
21
29
|
|
|
22
30
|
|
|
@@ -55,11 +63,13 @@ PACKAGES_CODE_EDITORS = [
|
|
|
55
63
|
PACKAGES_DATABASE = [
|
|
56
64
|
"SqliteBrowser",
|
|
57
65
|
"sqlite3",
|
|
66
|
+
"redis",
|
|
58
67
|
"redis-cli",
|
|
59
68
|
"postgresql-client",
|
|
60
69
|
"duckdb",
|
|
61
70
|
"DBeaver",
|
|
62
71
|
"rainfrog",
|
|
72
|
+
|
|
63
73
|
]
|
|
64
74
|
|
|
65
75
|
|
|
@@ -139,20 +149,23 @@ PACKAGES_PRODUCTIVITY = [
|
|
|
139
149
|
"hx",
|
|
140
150
|
]
|
|
141
151
|
|
|
142
|
-
|
|
143
|
-
|
|
152
|
+
|
|
153
|
+
# sudo nala install cowsay -y || true
|
|
154
|
+
# sudo nala install lolcat -y || true
|
|
155
|
+
# sudo nala install boxes -y || true
|
|
156
|
+
# sudo nala install figlet -y || true
|
|
157
|
+
# sudo nala install fortune -y || true
|
|
158
|
+
# sudo nala install toilet -y || true
|
|
159
|
+
TERMINAL_EYE_CANDY = [
|
|
144
160
|
"lolcatjs",
|
|
145
161
|
"figlet-cli",
|
|
146
162
|
"boxes",
|
|
147
|
-
"
|
|
148
|
-
"
|
|
149
|
-
"
|
|
150
|
-
"
|
|
151
|
-
"
|
|
152
|
-
"
|
|
153
|
-
"obsidian",
|
|
154
|
-
"istio",
|
|
155
|
-
"cointop",
|
|
163
|
+
# "transmission",
|
|
164
|
+
# "bytehound",
|
|
165
|
+
# "xcrawl3r",
|
|
166
|
+
# "obsidian",
|
|
167
|
+
# "istio",
|
|
168
|
+
# "cointop",
|
|
156
169
|
]
|
|
157
170
|
|
|
158
171
|
|
|
@@ -209,6 +222,7 @@ PACKAGES_TERMINAL_SHELL = [
|
|
|
209
222
|
"zellij",
|
|
210
223
|
"mprocs",
|
|
211
224
|
"mcfly",
|
|
225
|
+
"atuin",
|
|
212
226
|
"starship",
|
|
213
227
|
"gotty",
|
|
214
228
|
"ttyd",
|
|
@@ -221,9 +235,10 @@ PACKAGES_TERMINAL_SHELL = [
|
|
|
221
235
|
PACKAGE_GROUP2NAMES: dict[str, list[str]] = {
|
|
222
236
|
"sysabc": ["sysabc"],
|
|
223
237
|
"termabc": [*PACKAGES_CODE_ANALYSIS, *PACKAGES_SYSTEM_MONITORS, *PACKAGES_TERMINAL_SHELL, *PACKAGES_FILE,],
|
|
224
|
-
"
|
|
238
|
+
"gui": GUI,
|
|
239
|
+
"dev": [*PACKAGES_TERMINAL_EMULATORS, *PACKAGES_BROWSERS, *PACKAGES_CODE_EDITORS, *PACKAGES_DATABASE, *PACKAGES_MEDIA, *PACKAGES_FILE_SHARING, *PACKAGES_DEV_UTILS, *PACKAGES_CODE_ANALYSIS, *PACKAGES_PRODUCTIVITY, *TERMINAL_EYE_CANDY,],
|
|
225
240
|
"dev-utils": PACKAGES_DEV_UTILS,
|
|
226
|
-
"
|
|
241
|
+
"term-eye-candy": TERMINAL_EYE_CANDY,
|
|
227
242
|
"agents": AGENTS,
|
|
228
243
|
"terminal-emulator": PACKAGES_TERMINAL_EMULATORS,
|
|
229
244
|
"shell": PACKAGES_TERMINAL_SHELL,
|
|
@@ -13,7 +13,7 @@ wrap_in_shell_script() {
|
|
|
13
13
|
|
|
14
14
|
local command="$1"
|
|
15
15
|
shift
|
|
16
|
-
local RANDOM_NAME=$(
|
|
16
|
+
local RANDOM_NAME=$(uuidgen | tr -d '-' | head -c 16)
|
|
17
17
|
local OP_DIR="$HOME/tmp_results/tmp_scripts/machineconfig"
|
|
18
18
|
local OP_PROGRAM_PATH="$OP_DIR/${RANDOM_NAME}.sh"
|
|
19
19
|
export OP_PROGRAM_PATH
|