machineconfig 7.57__py3-none-any.whl → 7.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/cluster/sessions_managers/utils/maker.py +21 -9
- machineconfig/jobs/installer/custom/boxes.py +2 -2
- machineconfig/jobs/installer/custom/hx.py +3 -3
- 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 +36 -28
- machineconfig/jobs/installer/custom_dev/wezterm.py +0 -4
- machineconfig/jobs/installer/installer_data.json +127 -25
- machineconfig/jobs/installer/package_groups.py +20 -13
- machineconfig/profile/create_links_export.py +2 -2
- machineconfig/scripts/__init__.py +0 -4
- machineconfig/scripts/linux/wrap_mcfg +1 -1
- machineconfig/scripts/python/agents.py +22 -17
- 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 +19 -18
- machineconfig/scripts/python/ftpx.py +36 -12
- machineconfig/scripts/python/helpers/ast_search.py +74 -0
- machineconfig/scripts/python/helpers/qr_code.py +166 -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_mount.py +19 -17
- machineconfig/scripts/python/helpers_cloud/cloud_sync.py +8 -7
- machineconfig/scripts/python/helpers_croshell/crosh.py +2 -2
- machineconfig/scripts/python/helpers_croshell/start_slidev.py +6 -7
- machineconfig/scripts/python/helpers_devops/cli_config_dotfile.py +4 -5
- machineconfig/scripts/python/helpers_devops/cli_nw.py +88 -7
- machineconfig/scripts/python/helpers_devops/cli_self.py +7 -6
- machineconfig/scripts/python/helpers_devops/cli_share_file.py +9 -9
- machineconfig/scripts/python/helpers_devops/cli_share_server.py +13 -12
- machineconfig/scripts/python/helpers_devops/cli_terminal.py +7 -6
- 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_devops/devops_status.py +7 -19
- machineconfig/scripts/python/helpers_fire_command/file_wrangler.py +2 -3
- machineconfig/scripts/python/helpers_fire_command/fire_jobs_route_helper.py +23 -13
- machineconfig/scripts/python/helpers_navigator/command_tree.py +50 -18
- machineconfig/scripts/python/helpers_repos/cloud_repo_sync.py +7 -4
- 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 +81 -31
- machineconfig/scripts/python/interactive.py +2 -2
- machineconfig/scripts/python/{machineconfig.py → mcfg_entry.py} +4 -0
- machineconfig/scripts/python/msearch.py +21 -2
- machineconfig/scripts/python/nw/address.py +132 -0
- machineconfig/scripts/python/nw/devops_add_ssh_key.py +8 -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/nushell/config.nu +2 -2
- machineconfig/settings/shells/nushell/env.nu +45 -6
- machineconfig/settings/shells/nushell/init.nu +282 -95
- machineconfig/settings/shells/pwsh/init.ps1 +1 -0
- machineconfig/settings/shells/zsh/init.sh +0 -7
- machineconfig/setup_linux/web_shortcuts/interactive.sh +10 -10
- machineconfig/setup_windows/uv.ps1 +8 -1
- machineconfig/setup_windows/web_shortcuts/interactive.ps1 +10 -10
- machineconfig/setup_windows/web_shortcuts/quick_init.ps1 +3 -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 +53 -47
- machineconfig/utils/installer_utils/{installer.py → installer_cli.py} +71 -65
- machineconfig/utils/{installer.py → installer_utils/installer_runner.py} +1 -25
- machineconfig/utils/links.py +2 -2
- machineconfig/utils/meta.py +30 -16
- machineconfig/utils/options.py +4 -4
- machineconfig/utils/path_extended.py +3 -3
- machineconfig/utils/path_helper.py +33 -31
- machineconfig/utils/schemas/layouts/layout_types.py +1 -1
- machineconfig/utils/ssh.py +143 -409
- machineconfig/utils/ssh_utils/abc.py +8 -0
- machineconfig/utils/ssh_utils/copy_from_here.py +110 -0
- machineconfig/utils/ssh_utils/copy_to_here.py +302 -0
- machineconfig/utils/ssh_utils/utils.py +141 -0
- machineconfig/utils/ssh_utils/wsl.py +168 -0
- machineconfig/utils/upgrade_packages.py +2 -1
- machineconfig/utils/ve.py +11 -4
- {machineconfig-7.57.dist-info → machineconfig-7.79.dist-info}/METADATA +1 -1
- {machineconfig-7.57.dist-info → machineconfig-7.79.dist-info}/RECORD +102 -92
- {machineconfig-7.57.dist-info → machineconfig-7.79.dist-info}/entry_points.txt +2 -2
- machineconfig/jobs/installer/linux_scripts/pgsql.sh +0 -41
- machineconfig/scripts/python/explore.py +0 -49
- /machineconfig/jobs/installer/linux_scripts/{warp-cli.sh → cloudflare_warp_cli.sh} +0 -0
- /machineconfig/{settings/shells/pwsh/profile.ps1 → scripts/python/helpers_fire_command/f.py} +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.57.dist-info → machineconfig-7.79.dist-info}/WHEEL +0 -0
- {machineconfig-7.57.dist-info → machineconfig-7.79.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(func,
|
|
11
|
+
in_global=True, import_module=import_module)
|
|
12
|
+
else:
|
|
13
|
+
py_script = lambda_to_python_script(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,11 +3,11 @@ 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
|
|
@@ -45,7 +45,7 @@ def main(installer_data: InstallerData, version: Optional[str], install_lib: boo
|
|
|
45
45
|
inst = Installer(installer_data=config_dict_copy)
|
|
46
46
|
|
|
47
47
|
print("\n📥 [Step 1/5] Downloading Helix editor...")
|
|
48
|
-
downloaded, _version_to_be_installed = inst.
|
|
48
|
+
downloaded, _version_to_be_installed = inst.binary_download(version=version)
|
|
49
49
|
print(" ✨ Download complete.")
|
|
50
50
|
|
|
51
51
|
print("\n🔍 [Step 2/5] Locating executable and components...")
|
|
@@ -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
|
+
"""
|
|
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
|
+
|
|
11
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
|
|
@@ -49,14 +75,14 @@ echo "✅ Essential tools installation complete."
|
|
|
49
75
|
"""
|
|
50
76
|
|
|
51
77
|
bash = r"""
|
|
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)..."
|
|
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,37 +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
|
-
sudo nala install samba
|
|
91
|
-
sudo nala install fuse3 -y || true
|
|
92
|
-
sudo nala install nfs-common -y || true
|
|
93
|
-
# --GROUP:dev: graphviz,make,rust,libssl-dev,sqlite3,postgresql-client,redis-tools
|
|
94
102
|
# sudo nala install ffmpeg -y || true # Required by some dev tools
|
|
95
103
|
# sudo nala install make -y || true # Required by LunarVim and SpaceVim
|
|
96
104
|
# (curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh) || true
|
|
97
|
-
|
|
105
|
+
|
|
98
106
|
"""
|
|
99
107
|
|
|
100
108
|
|
|
@@ -133,5 +141,5 @@ def main(installer_data: InstallerData, version: Optional[str]) -> None:
|
|
|
133
141
|
)
|
|
134
142
|
raise NotImplementedError(error_msg)
|
|
135
143
|
from machineconfig.utils.code import print_code, run_shell_script
|
|
136
|
-
print_code(program, lexer="shell", desc="Installation Script Preview")
|
|
144
|
+
print_code(code=program, lexer="shell", desc="Installation Script Preview")
|
|
137
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
|
|
|
@@ -18,6 +18,23 @@
|
|
|
18
18
|
}
|
|
19
19
|
}
|
|
20
20
|
},
|
|
21
|
+
{
|
|
22
|
+
"appName": "scrcpy",
|
|
23
|
+
"repoURL": "https://github.com/Genymobile/scrcpy",
|
|
24
|
+
"doc": "This application mirrors Android devices",
|
|
25
|
+
"fileNamePattern": {
|
|
26
|
+
"amd64": {
|
|
27
|
+
"linux": "scrcpy-linux-x86_64-v3.3.3.tar.gz",
|
|
28
|
+
"windows": "scrcpy-win64-v3.3.3.zip",
|
|
29
|
+
"macos": "scrcpy-macos-x86_64-v3.3.3.tar.gz"
|
|
30
|
+
},
|
|
31
|
+
"arm64": {
|
|
32
|
+
"linux": null,
|
|
33
|
+
"windows": null,
|
|
34
|
+
"macos": "scrcpy-macos-aarch64-v3.3.3.tar.gz"
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
},
|
|
21
38
|
{
|
|
22
39
|
"appName": "fx",
|
|
23
40
|
"repoURL": "https://github.com/antonmedv/fx",
|
|
@@ -528,6 +545,40 @@
|
|
|
528
545
|
}
|
|
529
546
|
}
|
|
530
547
|
},
|
|
548
|
+
{
|
|
549
|
+
"appName": "cloudflare-warp",
|
|
550
|
+
"repoURL": "CMD",
|
|
551
|
+
"doc": "🌐 Cloudflare WARP VPN client",
|
|
552
|
+
"fileNamePattern": {
|
|
553
|
+
"amd64": {
|
|
554
|
+
"linux": null,
|
|
555
|
+
"windows": "winget install --no-upgrade --name \"Cloudflare WARP\" --Id \"Cloudflare.Warp\" --source winget --scope user --accept-package-agreements --accept-source-agreements",
|
|
556
|
+
"macos": null
|
|
557
|
+
},
|
|
558
|
+
"arm64": {
|
|
559
|
+
"linux": null,
|
|
560
|
+
"windows": "winget install --no-upgrade --name \"Cloudflare WARP\" --Id \"Cloudflare.Warp\" --source winget --scope user --accept-package-agreements --accept-source-agreements",
|
|
561
|
+
"macos": null
|
|
562
|
+
}
|
|
563
|
+
}
|
|
564
|
+
},
|
|
565
|
+
{
|
|
566
|
+
"appName": "cloudflare-warp-cli",
|
|
567
|
+
"repoURL": "CMD",
|
|
568
|
+
"doc": "🌐 Cloudflare WARP VPN client in the terminal",
|
|
569
|
+
"fileNamePattern": {
|
|
570
|
+
"amd64": {
|
|
571
|
+
"linux": "cloudflare_warp_cli.py",
|
|
572
|
+
"windows": "cloudflare_warp_cli.py",
|
|
573
|
+
"macos": "cloudflare_warp_cli.py"
|
|
574
|
+
},
|
|
575
|
+
"arm64": {
|
|
576
|
+
"linux": "cloudflare_warp_cli.py",
|
|
577
|
+
"windows": "cloudflare_warp_cli.py",
|
|
578
|
+
"macos": "cloudflare_warp_cli.py"
|
|
579
|
+
}
|
|
580
|
+
}
|
|
581
|
+
},
|
|
531
582
|
{
|
|
532
583
|
"appName": "cpufetch",
|
|
533
584
|
"repoURL": "https://github.com/Dr-Noob/cpufetch",
|
|
@@ -851,6 +902,40 @@
|
|
|
851
902
|
}
|
|
852
903
|
}
|
|
853
904
|
},
|
|
905
|
+
{
|
|
906
|
+
"appName": "meilisearch",
|
|
907
|
+
"repoURL": "https://github.com/meilisearch/meilisearch",
|
|
908
|
+
"doc": "🔍 symantic search at lightening speed",
|
|
909
|
+
"fileNamePattern": {
|
|
910
|
+
"amd64": {
|
|
911
|
+
"linux": "meilisearch-linux-amd64",
|
|
912
|
+
"macos": "meilisearch-macos-amd64",
|
|
913
|
+
"windows": "meilisearch-windows-amd64.exe"
|
|
914
|
+
},
|
|
915
|
+
"arm64": {
|
|
916
|
+
"linux": "meilisearch-linux-aarch64",
|
|
917
|
+
"macos": "meilisearch-macos-aarch64",
|
|
918
|
+
"windows": "meilisearch-windows-aarch64.exe"
|
|
919
|
+
}
|
|
920
|
+
}
|
|
921
|
+
},
|
|
922
|
+
{
|
|
923
|
+
"appName": "ast-grep",
|
|
924
|
+
"repoURL": "https://github.com/ast-grep/ast-grep",
|
|
925
|
+
"doc": "🔍 grep for code - search and rewrite code with ASTs",
|
|
926
|
+
"fileNamePattern": {
|
|
927
|
+
"amd64": {
|
|
928
|
+
"linux": "app-x86_64-unknown-linux-gnu.zip",
|
|
929
|
+
"macos": "app-x86_64-apple-darwin.zip",
|
|
930
|
+
"windows": "app-x86_64-pc-windows-msvc.zip"
|
|
931
|
+
},
|
|
932
|
+
"arm64": {
|
|
933
|
+
"linux": "app-aarch64-unknown-linux-gnu.zip",
|
|
934
|
+
"macos": "app-aarch64-apple-darwin.zip",
|
|
935
|
+
"windows": "app-aarch64-pc-windows-msvc.zip"
|
|
936
|
+
}
|
|
937
|
+
}
|
|
938
|
+
},
|
|
854
939
|
{
|
|
855
940
|
"appName": "rg",
|
|
856
941
|
"repoURL": "https://github.com/BurntSushi/ripgrep",
|
|
@@ -1786,6 +1871,23 @@
|
|
|
1786
1871
|
}
|
|
1787
1872
|
}
|
|
1788
1873
|
},
|
|
1874
|
+
{
|
|
1875
|
+
"appName": "qrterminal",
|
|
1876
|
+
"repoURL": "https://github.com/mdp/qrterminal",
|
|
1877
|
+
"doc": "📷 qr code terminal from string",
|
|
1878
|
+
"fileNamePattern": {
|
|
1879
|
+
"amd64": {
|
|
1880
|
+
"linux": "qrterminal_Linux_x86_64.tar.gz",
|
|
1881
|
+
"macos": "qrterminal_Darwin_x86_64.tar.gz",
|
|
1882
|
+
"windows": "qrterminal_Windows_x86_64.zip"
|
|
1883
|
+
},
|
|
1884
|
+
"arm64": {
|
|
1885
|
+
"linux": "qrterminal_Linux_arm64.tar.gz",
|
|
1886
|
+
"macos": "qrterminal_Darwin_arm64.tar.gz",
|
|
1887
|
+
"windows": "qrterminal_Windows_arm64.zip"
|
|
1888
|
+
}
|
|
1889
|
+
}
|
|
1890
|
+
},
|
|
1789
1891
|
{
|
|
1790
1892
|
"appName": "termscp",
|
|
1791
1893
|
"repoURL": "https://github.com/veeso/termscp",
|
|
@@ -2485,19 +2587,36 @@
|
|
|
2485
2587
|
}
|
|
2486
2588
|
},
|
|
2487
2589
|
{
|
|
2488
|
-
"appName": "warp",
|
|
2590
|
+
"appName": "warp-terminal",
|
|
2489
2591
|
"repoURL": "CMD",
|
|
2490
2592
|
"doc": "Modern terminal with AI-powered features",
|
|
2593
|
+
"fileNamePattern": {
|
|
2594
|
+
"amd64": {
|
|
2595
|
+
"linux": "https://app.warp.dev/get_warp?package=deb",
|
|
2596
|
+
"windows": "winget install Warp.Warp",
|
|
2597
|
+
"macos": "brew install --cask warp"
|
|
2598
|
+
},
|
|
2599
|
+
"arm64": {
|
|
2600
|
+
"linux": "https://app.warp.dev/get_warp?package=deb_arm64",
|
|
2601
|
+
"windows": "winget install Warp.Warp",
|
|
2602
|
+
"macos": "brew install --cask warp"
|
|
2603
|
+
}
|
|
2604
|
+
}
|
|
2605
|
+
},
|
|
2606
|
+
{
|
|
2607
|
+
"appName": "warp-terminal-cli",
|
|
2608
|
+
"repoURL": "CMD",
|
|
2609
|
+
"doc": "Modern terminal cli with AI-powered features",
|
|
2491
2610
|
"fileNamePattern": {
|
|
2492
2611
|
"amd64": {
|
|
2493
2612
|
"linux": "https://app.warp.dev/download/cli?os=linux&package=deb&arch=x86_64",
|
|
2494
2613
|
"windows": null,
|
|
2495
|
-
"macos":
|
|
2614
|
+
"macos": " brew tap warpdotdev/warp; brew update; brew install --cask warp-cli"
|
|
2496
2615
|
},
|
|
2497
2616
|
"arm64": {
|
|
2498
2617
|
"linux": "https://app.warp.dev/download/cli?os=linux&package=deb&arch=aarch64",
|
|
2499
2618
|
"windows": null,
|
|
2500
|
-
"macos":
|
|
2619
|
+
"macos": " brew tap warpdotdev/warp; brew update; brew install --cask warp-cli"
|
|
2501
2620
|
}
|
|
2502
2621
|
}
|
|
2503
2622
|
},
|
|
@@ -2638,7 +2757,7 @@
|
|
|
2638
2757
|
}
|
|
2639
2758
|
},
|
|
2640
2759
|
{
|
|
2641
|
-
"appName": "
|
|
2760
|
+
"appName": "gorilla",
|
|
2642
2761
|
"repoURL": "https://github.com/ShishirPatil/gorilla",
|
|
2643
2762
|
"doc": "natural language to API",
|
|
2644
2763
|
"fileNamePattern": {
|
|
@@ -2689,7 +2808,7 @@
|
|
|
2689
2808
|
}
|
|
2690
2809
|
},
|
|
2691
2810
|
{
|
|
2692
|
-
"appName": "
|
|
2811
|
+
"appName": "redis",
|
|
2693
2812
|
"repoURL": "CMD",
|
|
2694
2813
|
"doc": "submillisecond fast key-value db",
|
|
2695
2814
|
"fileNamePattern": {
|
|
@@ -2994,23 +3113,6 @@
|
|
|
2994
3113
|
}
|
|
2995
3114
|
}
|
|
2996
3115
|
},
|
|
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
3116
|
{
|
|
3015
3117
|
"appName": "mouse-without-borders",
|
|
3016
3118
|
"repoURL": "CMD",
|
|
@@ -3323,12 +3425,12 @@
|
|
|
3323
3425
|
"doc": "🖼️ Terminal graphics and image viewer",
|
|
3324
3426
|
"fileNamePattern": {
|
|
3325
3427
|
"amd64": {
|
|
3326
|
-
"linux":
|
|
3428
|
+
"linux": "sudo nala install chafa -y",
|
|
3327
3429
|
"windows": "winget install --no-upgrade --name \"Chafa\" --Id \"hpjansson.Chafa\" --source winget --scope user --accept-package-agreements --accept-source-agreements",
|
|
3328
3430
|
"macos": "brew install chafa"
|
|
3329
3431
|
},
|
|
3330
3432
|
"arm64": {
|
|
3331
|
-
"linux":
|
|
3433
|
+
"linux": "sudo nala install chafa -y",
|
|
3332
3434
|
"windows": "winget install --no-upgrade --name \"Chafa\" --Id \"hpjansson.Chafa\" --source winget --scope user --accept-package-agreements --accept-source-agreements",
|
|
3333
3435
|
"macos": "brew install chafa"
|
|
3334
3436
|
}
|
|
@@ -3369,4 +3471,4 @@
|
|
|
3369
3471
|
}
|
|
3370
3472
|
}
|
|
3371
3473
|
]
|
|
3372
|
-
}
|
|
3474
|
+
}
|
|
@@ -24,6 +24,7 @@ AGENTS = [
|
|
|
24
24
|
"kilocode",
|
|
25
25
|
"cline",
|
|
26
26
|
"auggie",
|
|
27
|
+
# "gorilla",
|
|
27
28
|
]
|
|
28
29
|
|
|
29
30
|
|
|
@@ -62,11 +63,13 @@ PACKAGES_CODE_EDITORS = [
|
|
|
62
63
|
PACKAGES_DATABASE = [
|
|
63
64
|
"SqliteBrowser",
|
|
64
65
|
"sqlite3",
|
|
66
|
+
"redis",
|
|
65
67
|
"redis-cli",
|
|
66
68
|
"postgresql-client",
|
|
67
69
|
"duckdb",
|
|
68
70
|
"DBeaver",
|
|
69
71
|
"rainfrog",
|
|
72
|
+
|
|
70
73
|
]
|
|
71
74
|
|
|
72
75
|
|
|
@@ -146,20 +149,23 @@ PACKAGES_PRODUCTIVITY = [
|
|
|
146
149
|
"hx",
|
|
147
150
|
]
|
|
148
151
|
|
|
149
|
-
|
|
150
|
-
|
|
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 = [
|
|
151
160
|
"lolcatjs",
|
|
152
161
|
"figlet-cli",
|
|
153
162
|
"boxes",
|
|
154
|
-
"
|
|
155
|
-
"
|
|
156
|
-
"
|
|
157
|
-
"
|
|
158
|
-
"
|
|
159
|
-
"
|
|
160
|
-
"obsidian",
|
|
161
|
-
"istio",
|
|
162
|
-
"cointop",
|
|
163
|
+
# "transmission",
|
|
164
|
+
# "bytehound",
|
|
165
|
+
# "xcrawl3r",
|
|
166
|
+
# "obsidian",
|
|
167
|
+
# "istio",
|
|
168
|
+
# "cointop",
|
|
163
169
|
]
|
|
164
170
|
|
|
165
171
|
|
|
@@ -216,6 +222,7 @@ PACKAGES_TERMINAL_SHELL = [
|
|
|
216
222
|
"zellij",
|
|
217
223
|
"mprocs",
|
|
218
224
|
"mcfly",
|
|
225
|
+
"atuin",
|
|
219
226
|
"starship",
|
|
220
227
|
"gotty",
|
|
221
228
|
"ttyd",
|
|
@@ -229,9 +236,9 @@ PACKAGE_GROUP2NAMES: dict[str, list[str]] = {
|
|
|
229
236
|
"sysabc": ["sysabc"],
|
|
230
237
|
"termabc": [*PACKAGES_CODE_ANALYSIS, *PACKAGES_SYSTEM_MONITORS, *PACKAGES_TERMINAL_SHELL, *PACKAGES_FILE,],
|
|
231
238
|
"gui": GUI,
|
|
232
|
-
"dev": [*PACKAGES_TERMINAL_EMULATORS, *PACKAGES_BROWSERS, *PACKAGES_CODE_EDITORS, *PACKAGES_DATABASE, *PACKAGES_MEDIA, *PACKAGES_FILE_SHARING, *PACKAGES_DEV_UTILS, *PACKAGES_CODE_ANALYSIS, *PACKAGES_PRODUCTIVITY, *
|
|
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,],
|
|
233
240
|
"dev-utils": PACKAGES_DEV_UTILS,
|
|
234
|
-
"
|
|
241
|
+
"term-eye-candy": TERMINAL_EYE_CANDY,
|
|
235
242
|
"agents": AGENTS,
|
|
236
243
|
"terminal-emulator": PACKAGES_TERMINAL_EMULATORS,
|
|
237
244
|
"shell": PACKAGES_TERMINAL_SHELL,
|
|
@@ -62,8 +62,8 @@ def main_public_from_parser(method: Annotated[Literal["symlink", "s", "copy", "c
|
|
|
62
62
|
apply_mapper(mapper_data=items_objections, on_conflict=ON_CONFLICT_MAPPER[on_conflict], method=method)
|
|
63
63
|
|
|
64
64
|
|
|
65
|
-
def main_private_from_parser(method: Annotated[Literal["symlink", "s", "copy", "c"], typer.Option(..., help="Method to use for linking files")],
|
|
66
|
-
on_conflict: Annotated[ON_CONFLICT_LOOSE, typer.Option(..., help="Action to take on conflict")] = "throw-error",
|
|
65
|
+
def main_private_from_parser(method: Annotated[Literal["symlink", "s", "copy", "c"], typer.Option(..., "--method", "-m", help="Method to use for linking files")],
|
|
66
|
+
on_conflict: Annotated[ON_CONFLICT_LOOSE, typer.Option(..., "--on-conflict", "-o", help="Action to take on conflict")] = "throw-error",
|
|
67
67
|
which: Annotated[Optional[str], typer.Option(..., "--which", "-w", help="Specific items to process")] = "all",
|
|
68
68
|
interactive: Annotated[bool, typer.Option(..., "--interactive", "-i", help="Run in interactive mode")] = False):
|
|
69
69
|
from machineconfig.profile.create_links import ConfigMapper, read_mapper
|
|
@@ -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
|