machineconfig 7.47__py3-none-any.whl → 7.52__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 +2 -2
- machineconfig/jobs/installer/custom/hx.py +1 -0
- machineconfig/jobs/installer/custom_dev/brave.py +1 -1
- machineconfig/jobs/installer/custom_dev/code.py +4 -1
- machineconfig/jobs/installer/custom_dev/nerfont_windows_helper.py +0 -9
- machineconfig/jobs/installer/custom_dev/sysabc.py +140 -0
- machineconfig/jobs/installer/custom_dev/wezterm.py +2 -15
- machineconfig/jobs/installer/installer_data.json +689 -9
- machineconfig/jobs/installer/linux_scripts/redis.sh +1 -0
- machineconfig/jobs/installer/package_groups.py +23 -72
- machineconfig/logger.py +0 -1
- machineconfig/profile/create_links_export.py +15 -6
- machineconfig/profile/mapper.toml +3 -6
- machineconfig/scripts/python/croshell.py +20 -43
- machineconfig/scripts/python/devops.py +1 -1
- machineconfig/scripts/python/env_manager/path_manager_tui.py +1 -1
- machineconfig/scripts/python/fire_jobs.py +52 -39
- machineconfig/scripts/python/ftpx.py +4 -2
- machineconfig/scripts/python/helpers_agents/agentic_frameworks/fire_qwen.py +0 -12
- machineconfig/scripts/python/helpers_croshell/crosh.py +1 -1
- machineconfig/scripts/python/helpers_devops/cli_config.py +3 -19
- machineconfig/scripts/python/helpers_devops/cli_self.py +12 -6
- machineconfig/scripts/python/helpers_devops/cli_utils.py +1 -80
- machineconfig/scripts/python/helpers_fire_command/file_wrangler.py +0 -17
- machineconfig/scripts/python/helpers_msearch/scripts_linux/fzfg +1 -1
- machineconfig/scripts/python/helpers_repos/clone.py +0 -1
- machineconfig/scripts/python/helpers_repos/cloud_repo_sync.py +1 -1
- machineconfig/scripts/python/helpers_repos/count_lines_frontend.py +1 -1
- machineconfig/scripts/python/helpers_sessions/sessions_multiprocess.py +2 -2
- machineconfig/scripts/python/helpers_utils/path.py +106 -0
- machineconfig/scripts/python/interactive.py +9 -15
- machineconfig/scripts/python/sessions.py +2 -2
- machineconfig/scripts/python/utils.py +7 -3
- machineconfig/scripts/windows/mounts/mount_ssh.ps1 +1 -1
- machineconfig/settings/shells/nushell/init.nu +2 -2
- machineconfig/settings/shells/zsh/init.sh +1 -1
- machineconfig/settings/yazi/keymap_windows.toml +78 -0
- machineconfig/setup_linux/__init__.py +0 -1
- machineconfig/setup_linux/web_shortcuts/interactive.sh +11 -10
- machineconfig/setup_mac/__init__.py +2 -3
- machineconfig/setup_windows/__init__.py +0 -3
- machineconfig/setup_windows/web_shortcuts/interactive.ps1 +11 -10
- machineconfig/setup_windows/web_shortcuts/quick_init.ps1 +15 -0
- machineconfig/utils/installer.py +11 -27
- machineconfig/utils/installer_utils/installer.py +9 -50
- machineconfig/utils/installer_utils/installer_abc.py +0 -68
- machineconfig/utils/io.py +0 -1
- machineconfig/utils/path_helper.py +57 -6
- machineconfig/utils/ssh.py +3 -3
- {machineconfig-7.47.dist-info → machineconfig-7.52.dist-info}/METADATA +5 -3
- {machineconfig-7.47.dist-info → machineconfig-7.52.dist-info}/RECORD +57 -58
- machineconfig/jobs/installer/linux_scripts/timescaledb.sh +0 -71
- machineconfig/jobs/installer/powershell_scripts/archive_pygraphviz.ps1 +0 -12
- machineconfig/setup_linux/apps.sh +0 -66
- machineconfig/setup_mac/apps.sh +0 -73
- machineconfig/setup_windows/apps.ps1 +0 -62
- /machineconfig/settings/yazi/{keymap.toml → keymap_linux.toml} +0 -0
- /machineconfig/{jobs/installer/powershell_scripts → setup_windows/ssh}/openssh-server_add_key.ps1 +0 -0
- /machineconfig/{jobs/installer/powershell_scripts → setup_windows/ssh}/openssh-server_copy-ssh-id.ps1 +0 -0
- {machineconfig-7.47.dist-info → machineconfig-7.52.dist-info}/WHEEL +0 -0
- {machineconfig-7.47.dist-info → machineconfig-7.52.dist-info}/entry_points.txt +0 -0
- {machineconfig-7.47.dist-info → machineconfig-7.52.dist-info}/top_level.txt +0 -0
|
@@ -20,10 +20,10 @@ def get_fire_tab_using_fire(func: FunctionType):
|
|
|
20
20
|
from machineconfig.utils.source_of_truth import CONFIG_ROOT
|
|
21
21
|
import platform
|
|
22
22
|
if platform.system().lower() == "windows":
|
|
23
|
-
wrap_mcfg = CONFIG_ROOT / "scripts/
|
|
23
|
+
wrap_mcfg = CONFIG_ROOT / "scripts/wrap_mcfg.ps1"
|
|
24
24
|
wrap_mcfg = f'& "{wrap_mcfg}"'
|
|
25
25
|
elif platform.system().lower() == "linux" or platform.system().lower() == "darwin":
|
|
26
|
-
wrap_mcfg = CONFIG_ROOT / "scripts/
|
|
26
|
+
wrap_mcfg = CONFIG_ROOT / "scripts/wrap_mcfg"
|
|
27
27
|
else:
|
|
28
28
|
raise ValueError(f"Unsupported platform: {platform.system()}")
|
|
29
29
|
path = Path(inspect.getfile(func))
|
|
@@ -58,6 +58,7 @@ def main(installer_data: InstallerData, version: Optional[str], install_lib: boo
|
|
|
58
58
|
raise FileNotFoundError(f"Could not find 'hx' executable in {downloaded.name}")
|
|
59
59
|
|
|
60
60
|
assert len(hx_file_search) == 1, f"Expected 1 'hx' executable, found {len(hx_file_search)}"
|
|
61
|
+
|
|
61
62
|
hx_file = hx_file_search[0]
|
|
62
63
|
contrib = hx_file.parent / "contrib"
|
|
63
64
|
runtime = contrib.parent / "runtime"
|
|
@@ -27,7 +27,7 @@ def main(installer_data: InstallerData, version: Optional[str]) -> None:
|
|
|
27
27
|
console.print("🪟 Installing Brave Browser on Windows using winget...", style="bold")
|
|
28
28
|
program = """
|
|
29
29
|
|
|
30
|
-
winget install --
|
|
30
|
+
winget install --no-upgrade --name "Brave" --Id "Brave.Brave" --source winget --scope user --accept-package-agreements --accept-source-agreements
|
|
31
31
|
|
|
32
32
|
"""
|
|
33
33
|
elif platform.system() in ["Linux", "Darwin"]:
|
|
@@ -32,7 +32,10 @@ def main(installer_data: InstallerData, version: Optional[str] = None) -> None:
|
|
|
32
32
|
install_script = """brew install --cask visual-studio-code"""
|
|
33
33
|
elif platform.system() == "Windows":
|
|
34
34
|
console.print("🪟 Installing VS Code on Windows using winget...", style="bold")
|
|
35
|
-
install_script = """
|
|
35
|
+
install_script = """
|
|
36
|
+
winget install --no-upgrade --name "Microsoft Visual Studio Code" --Id "Microsoft.VisualStudioCode" --source winget --scope user --accept-package-agreements --accept-source-agreements
|
|
37
|
+
|
|
38
|
+
"""
|
|
36
39
|
else:
|
|
37
40
|
error_msg = f"Unsupported platform: {platform.system()}"
|
|
38
41
|
console.print(
|
|
@@ -18,7 +18,6 @@ from machineconfig.utils.installer_utils.installer_class import Installer
|
|
|
18
18
|
from machineconfig.utils.schemas.installer.installer_types import InstallerData
|
|
19
19
|
|
|
20
20
|
|
|
21
|
-
# Nerd Fonts installer configuration data
|
|
22
21
|
nerd_fonts: InstallerData = {
|
|
23
22
|
"appName": "Cascadia Code Nerd Font",
|
|
24
23
|
"repoURL": "https://github.com/ryanoasis/nerd-fonts",
|
|
@@ -38,14 +37,6 @@ nerd_fonts: InstallerData = {
|
|
|
38
37
|
}
|
|
39
38
|
|
|
40
39
|
|
|
41
|
-
# Patterns to match any installed variant (NF, Nerd Font, Mono, Propo, style weights) of Cascadia/Caskaydia
|
|
42
|
-
# We'll compile them at runtime for flexibility. Keep them simple to avoid false positives.
|
|
43
|
-
# REQUIRED_FONT_PATTERNS: tuple[str, ...] = (
|
|
44
|
-
# r"caskaydiacove.*(nf|nerd ?font)",
|
|
45
|
-
# r"cascadiacode.*(nf|nerd ?font)"
|
|
46
|
-
# )
|
|
47
|
-
|
|
48
|
-
|
|
49
40
|
console = Console()
|
|
50
41
|
|
|
51
42
|
|
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
|
|
2
|
+
|
|
3
|
+
import platform
|
|
4
|
+
from typing import Optional
|
|
5
|
+
from rich import box
|
|
6
|
+
from rich.console import Console
|
|
7
|
+
from rich.panel import Panel
|
|
8
|
+
from machineconfig.utils.schemas.installer.installer_types import InstallerData
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
ps1 = """
|
|
12
|
+
winget install --no-upgrade --name "Powershell" --Id "Microsoft.PowerShell" --source winget --scope user --accept-package-agreements --accept-source-agreements # powershell require admin
|
|
13
|
+
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
|
+
winget install --no-upgrade --name "GNU Nano" --Id "GNU.Nano" --source winget --scope user --accept-package-agreements --accept-source-agreements
|
|
15
|
+
# --GROUP:gui:Brave+VSCode+Git+WezTerm
|
|
16
|
+
# --GROUP:dev2:VSRedistrib+VSBuildTools+Codeblocks+GnuWin32: Make+GnuPG+graphviz+WinFsp+SSHFS-win+xming+Node.js+Rustup+Cloudflare+Cloudflare WARP+Microsoft Garage Mouse without Borders
|
|
17
|
+
# --GROUP:user:nu+Chrome+ChromeRemoteDesktop+Zoom+7zip+Firefox+Thunderbird+StreamlabsOBS+OBSStudio+MiKTeX+TexMaker+notepad+++Lapce+TesseractOCR+perl+DB Browser for SQLite+sql server management studio+Adobe Acrobat Reader DC+julia+Chafa+bottom+onefetch+Just+hyperfine+AWS CLI
|
|
18
|
+
# Install-Module -Name Terminal-Icons -Repository PSGallery -Force -AcceptLicense -PassThru -Confirm # -RequiredVersion 2.5.10
|
|
19
|
+
# Install-Module -Name PSFzf -SkipPublisherCheck # -AcceptLicense -PassThru -Confirm # -RequiredVersion 2.5.10
|
|
20
|
+
|
|
21
|
+
"""
|
|
22
|
+
|
|
23
|
+
zsh = """
|
|
24
|
+
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
|
|
25
|
+
echo "🔄 Updating Homebrew..."
|
|
26
|
+
brew update || true
|
|
27
|
+
echo "📥 Installing essential tools..."
|
|
28
|
+
echo "📥 Installing Git version control..."
|
|
29
|
+
echo "📥 Installing Nano text editor..."
|
|
30
|
+
echo "📥 Installing Node Version Manager (NVM)..."
|
|
31
|
+
# Note: git and nano are pre-installed on macOS, but we install via Homebrew to ensure latest versions
|
|
32
|
+
# brew install git || true
|
|
33
|
+
# brew install nano || true
|
|
34
|
+
# brew install curl || true
|
|
35
|
+
# Install NVM
|
|
36
|
+
if [ ! -s "$HOME/.nvm/nvm.sh" ]; then
|
|
37
|
+
echo "📥 Installing NVM (Node Version Manager)..."
|
|
38
|
+
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.3/install.sh | bash
|
|
39
|
+
fi
|
|
40
|
+
echo "🔧 Configuring NVM environment..."
|
|
41
|
+
export NVM_DIR="$HOME/.nvm"
|
|
42
|
+
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"
|
|
43
|
+
echo "📥 Installing latest Node.js..."
|
|
44
|
+
nvm install node || true
|
|
45
|
+
# brew install make
|
|
46
|
+
# brew install ffmpeg
|
|
47
|
+
# brew install openssl
|
|
48
|
+
echo "✅ Essential tools installation complete."
|
|
49
|
+
"""
|
|
50
|
+
|
|
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)..."
|
|
56
|
+
sudo apt update -y || true
|
|
57
|
+
sudo apt install nala -y || true
|
|
58
|
+
sudo nala install curl wget gpg lsb-release apt-transport-https -y || true
|
|
59
|
+
sudo nala install git net-tools htop nano -y || true
|
|
60
|
+
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.3/install.sh | bash
|
|
61
|
+
echo "🔧 Configuring NVM environment..."
|
|
62
|
+
export NVM_DIR="$HOME/.nvm"
|
|
63
|
+
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"
|
|
64
|
+
echo "📥 Installing latest Node.js..."
|
|
65
|
+
nvm install node || true
|
|
66
|
+
|
|
67
|
+
# --GROUP:TerminalEyeCandy:fortune,toilet,sl,aafire,cmatrix,hollywood,chafa
|
|
68
|
+
# echo "📥 Installing fortune - random wisdom generator..."
|
|
69
|
+
# echo "📥 Installing toilet - large ASCII text generator..."
|
|
70
|
+
# echo "📥 Installing sl - steam locomotive animation..."
|
|
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
|
|
84
|
+
# echo 'keyboard-configuration keyboard-configuration/layout select US English' | sudo debconf-set-selections
|
|
85
|
+
# echo 'keyboard-configuration keyboard-configuration/layoutcode string us' | sudo debconf-set-selections
|
|
86
|
+
# sudo DEBIAN_FRONTEND=noninteractive nala install -y cmatrix
|
|
87
|
+
# sudo nala install hollywood -y || true
|
|
88
|
+
|
|
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
|
+
# sudo nala install ffmpeg -y || true # Required by some dev tools
|
|
98
|
+
# sudo nala install make -y || true # Required by LunarVim and SpaceVim
|
|
99
|
+
# (curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh) || true
|
|
100
|
+
# sudo nala install libssl-dev -y
|
|
101
|
+
"""
|
|
102
|
+
|
|
103
|
+
|
|
104
|
+
def main(installer_data: InstallerData, version: Optional[str]) -> None:
|
|
105
|
+
console = Console()
|
|
106
|
+
_ = installer_data
|
|
107
|
+
console.print(
|
|
108
|
+
Panel.fit(
|
|
109
|
+
"\n".join([f"💻 Platform: {platform.system()}", f"🔄 Version: {'latest' if version is None else version}"]),
|
|
110
|
+
title="🔧 ABC Installer",
|
|
111
|
+
border_style="blue",
|
|
112
|
+
box=box.ROUNDED,
|
|
113
|
+
)
|
|
114
|
+
)
|
|
115
|
+
|
|
116
|
+
_ = version
|
|
117
|
+
if platform.system() == "Windows":
|
|
118
|
+
console.print("🪟 Installing ABC on Windows using winget...", style="bold")
|
|
119
|
+
program = ps1
|
|
120
|
+
elif platform.system() == "Linux":
|
|
121
|
+
console.print("🐧 Installing ABC on Linux...", style="bold")
|
|
122
|
+
program = bash
|
|
123
|
+
elif platform.system() == "Darwin":
|
|
124
|
+
console.print("🍎 Installing ABC on macOS...", style="bold")
|
|
125
|
+
program = zsh
|
|
126
|
+
else:
|
|
127
|
+
error_msg = f"Unsupported platform: {platform.system()}"
|
|
128
|
+
console.print(
|
|
129
|
+
Panel.fit(
|
|
130
|
+
"\n".join([error_msg]),
|
|
131
|
+
title="❌ Error",
|
|
132
|
+
subtitle="⚠️ Unsupported platform",
|
|
133
|
+
border_style="red",
|
|
134
|
+
box=box.ROUNDED,
|
|
135
|
+
)
|
|
136
|
+
)
|
|
137
|
+
raise NotImplementedError(error_msg)
|
|
138
|
+
from machineconfig.utils.code import print_code, run_shell_script
|
|
139
|
+
print_code(program, lexer="shell", desc="Installation Script Preview")
|
|
140
|
+
run_shell_script(program)
|
|
@@ -35,21 +35,8 @@ def main(installer_data: InstallerData, version: Optional[str]):
|
|
|
35
35
|
|
|
36
36
|
_ = version
|
|
37
37
|
if platform.system() == "Windows":
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
Panel.fit(
|
|
41
|
-
"\n".join(
|
|
42
|
-
[
|
|
43
|
-
f"❌ ERROR | {error_msg}",
|
|
44
|
-
"💡 TIP: Please download and install manually from the WezTerm website",
|
|
45
|
-
]
|
|
46
|
-
),
|
|
47
|
-
title="Unsupported Platform",
|
|
48
|
-
border_style="red",
|
|
49
|
-
padding=(1, 2),
|
|
50
|
-
)
|
|
51
|
-
)
|
|
52
|
-
raise NotImplementedError(error_msg)
|
|
38
|
+
program = """winget install --no-upgrade --name "WezTerm" --Id "wez.wezterm" --source winget --accept-package-agreements --accept-source-agreements
|
|
39
|
+
"""
|
|
53
40
|
elif platform.system() in ["Linux", "Darwin"]:
|
|
54
41
|
system_name = "LINUX" if platform.system() == "Linux" else "MACOS"
|
|
55
42
|
console.print(
|