machineconfig 3.2__py3-none-any.whl → 3.5__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/wt_local_manager.py +1 -1
- machineconfig/cluster/sessions_managers/wt_remote_manager.py +1 -1
- machineconfig/cluster/sessions_managers/zellij_local.py +2 -2
- machineconfig/cluster/sessions_managers/zellij_local_manager.py +1 -1
- machineconfig/cluster/sessions_managers/zellij_remote_manager.py +1 -1
- machineconfig/cluster/sessions_managers/zellij_utils/monitoring_types.py +17 -7
- machineconfig/cluster/templates/utils.py +1 -1
- machineconfig/jobs/linux/msc/cli_agents.sh +18 -2
- machineconfig/jobs/python/python_ve_symlink.py +1 -1
- machineconfig/jobs/python/vscode/api.py +1 -1
- machineconfig/jobs/python/vscode/select_interpreter.py +2 -2
- machineconfig/jobs/python/vscode/sync_code.py +1 -1
- machineconfig/jobs/python_custom_installers/archive/ngrok.py +7 -6
- machineconfig/jobs/python_custom_installers/dev/aider.py +9 -1
- machineconfig/jobs/python_custom_installers/dev/alacritty.py +2 -1
- machineconfig/jobs/python_custom_installers/dev/brave.py +10 -1
- machineconfig/jobs/python_custom_installers/dev/bypass_paywall.py +12 -4
- machineconfig/jobs/python_custom_installers/dev/code.py +10 -3
- machineconfig/jobs/python_custom_installers/dev/cursor.py +2 -1
- machineconfig/jobs/python_custom_installers/dev/docker_desktop.py +7 -6
- machineconfig/jobs/python_custom_installers/dev/espanso.py +14 -6
- machineconfig/jobs/python_custom_installers/dev/goes.py +10 -1
- machineconfig/jobs/python_custom_installers/dev/lvim.py +9 -1
- machineconfig/jobs/python_custom_installers/dev/nerdfont.py +9 -1
- machineconfig/jobs/python_custom_installers/dev/redis.py +2 -2
- machineconfig/jobs/python_custom_installers/dev/wezterm.py +3 -1
- machineconfig/jobs/python_custom_installers/dev/winget.py +2 -1
- machineconfig/jobs/python_custom_installers/docker.py +9 -1
- machineconfig/jobs/python_custom_installers/gh.py +11 -2
- machineconfig/jobs/python_custom_installers/hx.py +10 -9
- machineconfig/jobs/python_custom_installers/warp-cli.py +9 -1
- machineconfig/jobs/python_generic_installers/config.json +601 -412
- machineconfig/jobs/python_generic_installers/config.json.bak +414 -0
- machineconfig/jobs/python_generic_installers/dev/config.json +822 -562
- machineconfig/jobs/python_generic_installers/dev/config.json.bak +565 -0
- machineconfig/jobs/python_linux_installers/archive/config.json +16 -8
- machineconfig/jobs/python_linux_installers/archive/config.json.bak +10 -0
- machineconfig/jobs/python_linux_installers/config.json +134 -99
- machineconfig/jobs/python_linux_installers/config.json.bak +110 -0
- machineconfig/jobs/python_linux_installers/dev/config.json +273 -203
- machineconfig/jobs/python_linux_installers/dev/config.json.bak +206 -0
- machineconfig/jobs/python_windows_installers/config.json +74 -48
- machineconfig/jobs/python_windows_installers/config.json.bak +56 -0
- machineconfig/jobs/python_windows_installers/dev/config.json +3 -2
- machineconfig/jobs/python_windows_installers/dev/config.json.bak +3 -0
- machineconfig/profile/create.py +3 -3
- machineconfig/profile/shell.py +1 -1
- machineconfig/scripts/python/ai/mcinit.py +23 -67
- machineconfig/scripts/python/ai/solutions/__init__.py +0 -0
- machineconfig/scripts/python/ai/solutions/_shared.py +5 -0
- machineconfig/scripts/python/ai/solutions/claude/claude.py +8 -0
- machineconfig/scripts/python/ai/solutions/cline/cline.py +10 -0
- machineconfig/scripts/python/ai/solutions/copilot/github_copilot.py +35 -0
- machineconfig/scripts/python/ai/solutions/copilot/privacy.md +4 -0
- machineconfig/scripts/python/ai/solutions/crush/crush.json +216 -0
- machineconfig/scripts/python/ai/solutions/crush/crush.py +25 -0
- machineconfig/scripts/python/ai/solutions/crush/privacy.md +2 -0
- machineconfig/scripts/python/ai/solutions/cursor/cursors.py +10 -0
- machineconfig/scripts/python/ai/solutions/gemini/gemini.py +14 -0
- machineconfig/scripts/python/ai/solutions/generic.py +41 -0
- machineconfig/scripts/python/ai/solutions/kilocode/privacy.md +3 -0
- machineconfig/scripts/python/ai/solutions/opencode/opencode.json +4 -0
- machineconfig/scripts/python/ai/solutions/opencode/opencode.py +1 -0
- machineconfig/scripts/python/choose_wezterm_theme.py +1 -1
- machineconfig/scripts/python/cloud_copy.py +2 -2
- machineconfig/scripts/python/cloud_mount.py +2 -2
- machineconfig/scripts/python/cloud_repo_sync.py +3 -2
- machineconfig/scripts/python/croshell.py +12 -7
- machineconfig/scripts/python/devops.py +1 -0
- machineconfig/scripts/python/devops_add_identity.py +1 -1
- machineconfig/scripts/python/devops_add_ssh_key.py +1 -1
- machineconfig/scripts/python/devops_backup_retrieve.py +4 -3
- machineconfig/scripts/python/devops_devapps_install.py +39 -17
- machineconfig/scripts/python/devops_update_repos.py +2 -2
- machineconfig/scripts/python/dotfile.py +1 -1
- machineconfig/scripts/python/fire_agents.py +7 -3
- machineconfig/scripts/python/fire_agents_help_launch.py +2 -2
- machineconfig/scripts/python/fire_jobs.py +8 -8
- machineconfig/scripts/python/fire_jobs_layout_helper.py +2 -2
- machineconfig/scripts/python/ftpx.py +2 -2
- machineconfig/scripts/python/helpers/cloud_helpers.py +2 -1
- machineconfig/scripts/python/helpers/helpers2.py +4 -3
- machineconfig/scripts/python/helpers/helpers4.py +1 -1
- machineconfig/scripts/python/helpers/repo_sync_helpers.py +2 -2
- machineconfig/scripts/python/mount_nfs.py +1 -1
- machineconfig/scripts/python/mount_ssh.py +1 -1
- machineconfig/scripts/python/repos.py +6 -3
- machineconfig/scripts/python/repos_helper_clone.py +121 -0
- machineconfig/scripts/python/repos_helper_record.py +2 -2
- machineconfig/scripts/python/start_slidev.py +1 -1
- machineconfig/scripts/python/wsl_windows_transfer.py +1 -1
- machineconfig/setup_windows/wt_and_pwsh/install_nerd_fonts.py +9 -8
- machineconfig/setup_windows/wt_and_pwsh/set_wt_settings.py +3 -3
- machineconfig/utils/{utils2.py → accessories.py} +13 -27
- machineconfig/utils/code.py +2 -2
- machineconfig/utils/installer.py +47 -33
- machineconfig/utils/installer_utils/installer_abc.py +2 -5
- machineconfig/utils/installer_utils/installer_class.py +109 -103
- machineconfig/utils/io.py +94 -0
- machineconfig/utils/links.py +2 -2
- machineconfig/utils/notifications.py +0 -9
- machineconfig/utils/{path_reduced.py → path_extended.py} +2 -2
- machineconfig/utils/{path.py → path_helper.py} +1 -1
- machineconfig/utils/procs.py +2 -1
- machineconfig/utils/{utils5.py → scheduler.py} +3 -8
- machineconfig/utils/schemas/installer/installer_types.py +20 -0
- machineconfig/utils/ssh.py +2 -2
- machineconfig/utils/terminal.py +12 -2
- machineconfig/utils/ve.py +2 -16
- {machineconfig-3.2.dist-info → machineconfig-3.5.dist-info}/METADATA +1 -4
- {machineconfig-3.2.dist-info → machineconfig-3.5.dist-info}/RECORD +121 -97
- machineconfig/utils/io_save.py +0 -95
- /machineconfig/scripts/python/ai/{chatmodes → solutions/copilot/chatmodes}/Thinking-Beast-Mode.chatmode.md +0 -0
- /machineconfig/scripts/python/ai/{chatmodes → solutions/copilot/chatmodes}/Ultimate-Transparent-Thinking-Beast-Mode.chatmode.md +0 -0
- /machineconfig/scripts/python/ai/{chatmodes → solutions/copilot/chatmodes}/deepResearch.chatmode.md +0 -0
- /machineconfig/scripts/python/ai/{instructions → solutions/copilot/instructions}/python/dev.instructions.md +0 -0
- /machineconfig/scripts/python/ai/{prompts → solutions/copilot/prompts}/allLintersAndTypeCheckers.prompt.md +0 -0
- /machineconfig/scripts/python/ai/{prompts → solutions/copilot/prompts}/research-report-skeleton.prompt.md +0 -0
- /machineconfig/scripts/python/ai/{configs/.gemini → solutions/gemini}/settings.json +0 -0
- {machineconfig-3.2.dist-info → machineconfig-3.5.dist-info}/WHEEL +0 -0
- {machineconfig-3.2.dist-info → machineconfig-3.5.dist-info}/entry_points.txt +0 -0
- {machineconfig-3.2.dist-info → machineconfig-3.5.dist-info}/top_level.txt +0 -0
|
@@ -6,7 +6,7 @@ import logging
|
|
|
6
6
|
import subprocess
|
|
7
7
|
from pathlib import Path
|
|
8
8
|
from typing import Optional, Dict, List, Any
|
|
9
|
-
from machineconfig.utils.
|
|
9
|
+
from machineconfig.utils.scheduler import Scheduler
|
|
10
10
|
from machineconfig.cluster.sessions_managers.wt_local import WTLayoutGenerator
|
|
11
11
|
from machineconfig.utils.schemas.layouts.layout_types import LayoutConfig
|
|
12
12
|
|
|
@@ -4,7 +4,7 @@ import uuid
|
|
|
4
4
|
import logging
|
|
5
5
|
from pathlib import Path
|
|
6
6
|
from typing import Optional, Any
|
|
7
|
-
from machineconfig.utils.
|
|
7
|
+
from machineconfig.utils.scheduler import Scheduler
|
|
8
8
|
from machineconfig.cluster.sessions_managers.wt_local import run_command_in_wt_tab
|
|
9
9
|
from machineconfig.cluster.sessions_managers.wt_remote import WTRemoteLayoutGenerator
|
|
10
10
|
from machineconfig.utils.schemas.layouts.layout_types import TabConfig
|
|
@@ -204,7 +204,7 @@ class ZellijLayoutGenerator:
|
|
|
204
204
|
elif cmd in proc_cmdline[0] and cmd not in shells:
|
|
205
205
|
# Non-shell command in first argument
|
|
206
206
|
is_match = True
|
|
207
|
-
|
|
207
|
+
|
|
208
208
|
# Additional shell wrapper filter - be more restrictive for shells
|
|
209
209
|
if is_match and proc_name in shells and args:
|
|
210
210
|
# For shell processes, ensure the match is actually meaningful
|
|
@@ -216,7 +216,7 @@ class ZellijLayoutGenerator:
|
|
|
216
216
|
meaningful_match = True
|
|
217
217
|
break
|
|
218
218
|
# Or if it's an exact script name match
|
|
219
|
-
elif arg.endswith(
|
|
219
|
+
elif arg.endswith(".py") or arg.endswith(".sh") or arg.endswith(".rb"):
|
|
220
220
|
if any(arg in cmdline_arg for cmdline_arg in proc_cmdline[1:]):
|
|
221
221
|
meaningful_match = True
|
|
222
222
|
break
|
|
@@ -11,7 +11,7 @@ from typing import Optional, List
|
|
|
11
11
|
from rich.console import Console
|
|
12
12
|
|
|
13
13
|
from machineconfig.cluster.sessions_managers.zellij_utils.monitoring_types import SessionReport, GlobalSummary, StartResult, ActiveSessionInfo, StatusRow
|
|
14
|
-
from machineconfig.utils.
|
|
14
|
+
from machineconfig.utils.scheduler import Scheduler
|
|
15
15
|
from machineconfig.cluster.sessions_managers.zellij_local import ZellijLayoutGenerator
|
|
16
16
|
from machineconfig.utils.schemas.layouts.layout_types import LayoutConfig
|
|
17
17
|
|
|
@@ -3,7 +3,7 @@ import json
|
|
|
3
3
|
import uuid
|
|
4
4
|
from pathlib import Path
|
|
5
5
|
from typing import Optional, Dict
|
|
6
|
-
from machineconfig.utils.
|
|
6
|
+
from machineconfig.utils.scheduler import Scheduler
|
|
7
7
|
from machineconfig.cluster.sessions_managers.zellij_local import run_command_in_zellij_tab
|
|
8
8
|
from machineconfig.cluster.sessions_managers.zellij_remote import ZellijRemoteLayoutGenerator
|
|
9
9
|
from machineconfig.utils.schemas.layouts.layout_types import LayoutConfig
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
|
|
2
1
|
from typing import NotRequired, TypedDict, Optional
|
|
3
2
|
from machineconfig.utils.schemas.layouts.layout_types import LayoutConfig
|
|
4
3
|
|
|
@@ -16,11 +15,11 @@ class ProcessInfo(TypedDict):
|
|
|
16
15
|
|
|
17
16
|
|
|
18
17
|
class CommandStatus(TypedDict):
|
|
19
|
-
status: str
|
|
20
|
-
running: bool
|
|
18
|
+
status: str # e.g. running | not_running | unknown | error
|
|
19
|
+
running: bool # Convenience boolean
|
|
21
20
|
processes: list[ProcessInfo] # Matching processes (can be empty)
|
|
22
|
-
command: str
|
|
23
|
-
tab_name: str
|
|
21
|
+
command: str # Original command string ('' if unknown)
|
|
22
|
+
tab_name: str # Tab identifier
|
|
24
23
|
# Optional / contextual fields
|
|
25
24
|
cwd: NotRequired[str]
|
|
26
25
|
error: NotRequired[str]
|
|
@@ -30,12 +29,15 @@ class CommandStatus(TypedDict):
|
|
|
30
29
|
method: NotRequired[str]
|
|
31
30
|
raw_output: NotRequired[str]
|
|
32
31
|
verification_method: NotRequired[str]
|
|
32
|
+
|
|
33
|
+
|
|
33
34
|
class CommandSummary(TypedDict):
|
|
34
35
|
total_commands: int
|
|
35
36
|
running_commands: int
|
|
36
37
|
stopped_commands: int
|
|
37
38
|
session_healthy: bool
|
|
38
39
|
|
|
40
|
+
|
|
39
41
|
class ZellijSessionStatus(TypedDict):
|
|
40
42
|
zellij_running: bool
|
|
41
43
|
session_exists: bool
|
|
@@ -48,20 +50,28 @@ class SessionReport(TypedDict):
|
|
|
48
50
|
session_status: ZellijSessionStatus # ZellijSessionStatus from zellij_local
|
|
49
51
|
commands_status: dict[str, CommandStatus] # dict[str, CommandStatus from zellij_local]
|
|
50
52
|
summary: CommandSummary
|
|
53
|
+
|
|
54
|
+
|
|
51
55
|
class ComprehensiveStatus(TypedDict):
|
|
52
56
|
zellij_session: ZellijSessionStatus
|
|
53
57
|
commands: dict[str, CommandStatus]
|
|
54
58
|
summary: CommandSummary
|
|
59
|
+
|
|
60
|
+
|
|
55
61
|
class SessionMetadata(TypedDict):
|
|
56
62
|
session_name_prefix: str
|
|
57
63
|
created_at: str
|
|
58
64
|
num_managers: int
|
|
59
65
|
sessions: list[str]
|
|
60
66
|
manager_type: str
|
|
67
|
+
|
|
68
|
+
|
|
61
69
|
class ManagerData(TypedDict):
|
|
62
70
|
session_name: Optional[str]
|
|
63
71
|
layout_config: Optional[LayoutConfig] # Will be LayoutConfig from layout_types
|
|
64
72
|
layout_path: Optional[str]
|
|
73
|
+
|
|
74
|
+
|
|
65
75
|
class ActiveSessionInfo(TypedDict):
|
|
66
76
|
session_name: str
|
|
67
77
|
is_active: bool
|
|
@@ -84,11 +94,11 @@ class StartResult(TypedDict):
|
|
|
84
94
|
success: bool
|
|
85
95
|
message: NotRequired[str]
|
|
86
96
|
error: NotRequired[str]
|
|
97
|
+
|
|
98
|
+
|
|
87
99
|
class StatusRow(TypedDict):
|
|
88
100
|
session: str
|
|
89
101
|
tab: str
|
|
90
102
|
running: bool
|
|
91
103
|
command: str
|
|
92
104
|
processes: int
|
|
93
|
-
|
|
94
|
-
|
|
@@ -1,12 +1,15 @@
|
|
|
1
1
|
#!/bin/bash
|
|
2
2
|
|
|
3
3
|
|
|
4
|
+
# Terminal-based CLI agents and tools for productivity and coding.
|
|
4
5
|
npm install -g @google/gemini-cli
|
|
5
6
|
npm install -g @charmland/crush
|
|
6
|
-
npm install -g opencode-ai@latest
|
|
7
|
+
npm install -g opencode-ai@latest # or curl -fsSL https://opencode.ai/install | bash
|
|
8
|
+
uv tool install --force --python python3.12 --with pip aider-chat@latest
|
|
7
9
|
|
|
8
|
-
curl https://cursor.com/install -fsS | bash
|
|
9
10
|
|
|
11
|
+
# cursor-cli
|
|
12
|
+
curl https://cursor.com/install -fsS | bash
|
|
10
13
|
cd $HOME/Downloads
|
|
11
14
|
curl --proto '=https' --tlsv1.2 -sSf "https://desktop-release.q.us-east-1.amazonaws.com/latest/q-x86_64-linux.zip" -o "q.zip"
|
|
12
15
|
unzip q.zip
|
|
@@ -14,3 +17,16 @@ unzip q.zip
|
|
|
14
17
|
rm q.zip
|
|
15
18
|
rm -rfd q
|
|
16
19
|
|
|
20
|
+
# Vscode extensions for AI-assisted coding.
|
|
21
|
+
# Github copilot
|
|
22
|
+
# Roo
|
|
23
|
+
# Cline
|
|
24
|
+
# Kilocode
|
|
25
|
+
# Continue
|
|
26
|
+
# CodeGPT
|
|
27
|
+
# qodo (and cli)
|
|
28
|
+
|
|
29
|
+
# Editors based on AI
|
|
30
|
+
# Kiro
|
|
31
|
+
# Cursor
|
|
32
|
+
|
|
@@ -3,8 +3,8 @@
|
|
|
3
3
|
# import os
|
|
4
4
|
# import json
|
|
5
5
|
from pathlib import Path
|
|
6
|
-
from machineconfig.utils.
|
|
7
|
-
from machineconfig.utils.
|
|
6
|
+
from machineconfig.utils.io import save_json
|
|
7
|
+
from machineconfig.utils.io import read_json
|
|
8
8
|
import argparse
|
|
9
9
|
import platform
|
|
10
10
|
|
|
@@ -5,15 +5,16 @@ flagged as virus by 35% of antivirus engines
|
|
|
5
5
|
|
|
6
6
|
import platform
|
|
7
7
|
from typing import Optional
|
|
8
|
+
from machineconfig.utils.schemas.installer.installer_types import InstallerData
|
|
8
9
|
|
|
9
10
|
|
|
10
|
-
config_dict = {
|
|
11
|
-
"
|
|
11
|
+
config_dict: InstallerData = {
|
|
12
|
+
"appName": "ngrok",
|
|
13
|
+
"repoURL": "CUSTOM",
|
|
12
14
|
"doc": "ngrok secure introspectable tunnels to localhost",
|
|
13
|
-
"
|
|
14
|
-
"
|
|
15
|
-
"
|
|
16
|
-
"exe_name": "ngrok",
|
|
15
|
+
"filenameTemplate": {"amd64": {"windows": "ngrok-stable-windows-amd64.zip", "linux": "ngrok-stable-linux-amd64.zip", "macos": ""}, "arm64": {"windows": "", "linux": "", "macos": ""}},
|
|
16
|
+
"stripVersion": False,
|
|
17
|
+
"exeName": "ngrok",
|
|
17
18
|
}
|
|
18
19
|
|
|
19
20
|
|
|
@@ -1,7 +1,15 @@
|
|
|
1
1
|
from typing import Optional
|
|
2
|
+
from machineconfig.utils.schemas.installer.installer_types import InstallerData
|
|
2
3
|
import platform
|
|
3
4
|
|
|
4
|
-
config_dict
|
|
5
|
+
config_dict: InstallerData = {
|
|
6
|
+
"appName": "aider-chat",
|
|
7
|
+
"repoURL": "https://github.com/paul-gauthier/aider",
|
|
8
|
+
"doc": "Aider Chat",
|
|
9
|
+
"filenameTemplate": {"amd64": {"windows": "aider-chat-{}.exe", "linux": "aider-chat-{}.deb", "macos": ""}, "arm64": {"windows": "", "linux": "", "macos": ""}},
|
|
10
|
+
"stripVersion": True,
|
|
11
|
+
"exeName": "aider-chat",
|
|
12
|
+
}
|
|
5
13
|
|
|
6
14
|
|
|
7
15
|
def main(version: Optional[str] = None):
|
|
@@ -2,9 +2,10 @@
|
|
|
2
2
|
|
|
3
3
|
import platform
|
|
4
4
|
from typing import Optional
|
|
5
|
+
from machineconfig.utils.schemas.installer.installer_types import InstallerData
|
|
5
6
|
|
|
6
7
|
|
|
7
|
-
config_dict = {"
|
|
8
|
+
config_dict: InstallerData = {"appName": "Alacritty", "repoURL": "CUSTOM", "doc": "Terminal Console", "filenameTemplate": {"amd64": {"windows": "", "linux": "", "macos": ""}}, "stripVersion": False, "exeName": "alacritty"}
|
|
8
9
|
|
|
9
10
|
|
|
10
11
|
def main(version: Optional[str]):
|
|
@@ -3,8 +3,17 @@
|
|
|
3
3
|
import platform
|
|
4
4
|
from typing import Optional
|
|
5
5
|
|
|
6
|
+
from machineconfig.utils.schemas.installer.installer_types import InstallerData
|
|
6
7
|
|
|
7
|
-
|
|
8
|
+
|
|
9
|
+
config_dict: InstallerData = {
|
|
10
|
+
"appName": "Brave",
|
|
11
|
+
"repoURL": "CUSTOM",
|
|
12
|
+
"doc": "Privacy-focused web browser with built-in ad blocking",
|
|
13
|
+
"filenameTemplate": {"amd64": {"windows": "", "linux": "", "macos": ""}},
|
|
14
|
+
"stripVersion": False,
|
|
15
|
+
"exeName": "brave",
|
|
16
|
+
}
|
|
8
17
|
|
|
9
18
|
|
|
10
19
|
def main(version: Optional[str]):
|
|
@@ -2,10 +2,18 @@
|
|
|
2
2
|
|
|
3
3
|
# from platform import system
|
|
4
4
|
from typing import Optional
|
|
5
|
-
from machineconfig.utils.
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
5
|
+
from machineconfig.utils.schemas.installer.installer_types import InstallerData
|
|
6
|
+
from machineconfig.utils.path_extended import PathExtended as PathExtended
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
config_dict: InstallerData = {
|
|
10
|
+
"appName": "bypass-paywalls-chrome",
|
|
11
|
+
"repoURL": "https://github.com/iamadamdev/bypass-paywalls-chrome",
|
|
12
|
+
"doc": """Plugin for chrome to bypass paywalls""",
|
|
13
|
+
"filenameTemplate": {"amd64": {"windows": "", "linux": "", "macos": ""}, "arm64": {"windows": "", "linux": "", "macos": ""}},
|
|
14
|
+
"stripVersion": True,
|
|
15
|
+
"exeName": "",
|
|
16
|
+
}
|
|
9
17
|
|
|
10
18
|
|
|
11
19
|
def main(version: Optional[str] = None):
|
|
@@ -2,9 +2,16 @@
|
|
|
2
2
|
|
|
3
3
|
from typing import Optional
|
|
4
4
|
import platform
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
config_dict
|
|
5
|
+
from machineconfig.utils.schemas.installer.installer_types import InstallerData
|
|
6
|
+
|
|
7
|
+
config_dict: InstallerData = {
|
|
8
|
+
"appName": "Visual Studio Code",
|
|
9
|
+
"repoURL": "CUSTOM",
|
|
10
|
+
"doc": "Visual Studio Code",
|
|
11
|
+
"filenameTemplate": {"amd64": {"windows": "VSCodeSetup-{}.exe", "linux": "code_{}.deb", "macos": ""}},
|
|
12
|
+
"stripVersion": True,
|
|
13
|
+
"exeName": "code",
|
|
14
|
+
}
|
|
8
15
|
|
|
9
16
|
|
|
10
17
|
def main(version: Optional[str] = None):
|
|
@@ -4,9 +4,10 @@ from pathlib import Path
|
|
|
4
4
|
import platform
|
|
5
5
|
import subprocess
|
|
6
6
|
from typing import Optional
|
|
7
|
+
from machineconfig.utils.schemas.installer.installer_types import InstallerData
|
|
7
8
|
|
|
8
9
|
|
|
9
|
-
config_dict = {"
|
|
10
|
+
config_dict: InstallerData = {"appName": "Cursor", "repoURL": "CUSTOM", "doc": "Cursor", "filenameTemplate": {"amd64": {"windows": "VSCodeSetup-{}.exe", "linux": "code_{}.deb", "macos": ""}}, "stripVersion": True, "exeName": "cursor"}
|
|
10
11
|
|
|
11
12
|
|
|
12
13
|
def install_linux(version: Optional[str] = None):
|
|
@@ -4,6 +4,7 @@ Installer
|
|
|
4
4
|
|
|
5
5
|
# from machineconfig.utils.installer import get_latest_release
|
|
6
6
|
from typing import Optional
|
|
7
|
+
from machineconfig.utils.schemas.installer.installer_types import InstallerData
|
|
7
8
|
|
|
8
9
|
# https://docs.docker.com/desktop/install/ubuntu/
|
|
9
10
|
# https://docs.docker.com/engine/install/ubuntu/#install-using-the-repository
|
|
@@ -14,13 +15,13 @@ from typing import Optional
|
|
|
14
15
|
# fname = r"bytehound-x86_64-unknown-linux-gnu.tgz"
|
|
15
16
|
|
|
16
17
|
|
|
17
|
-
config_dict = {
|
|
18
|
-
"
|
|
18
|
+
config_dict: InstallerData = {
|
|
19
|
+
"appName": "docker_desktop",
|
|
20
|
+
"repoURL": "CUSTOM",
|
|
19
21
|
"doc": """Docker Desktop for Ubuntu as per https://docs.docker.com/desktop/install/ubuntu/""",
|
|
20
|
-
"
|
|
21
|
-
"
|
|
22
|
-
"
|
|
23
|
-
"exe_name": "docker",
|
|
22
|
+
"filenameTemplate": {"amd64": {"windows": "gh_{}_windows_amd64.zip", "linux": "gh_{}_linux_amd64.tar.gz", "macos": ""}, "arm64": {"windows": "", "linux": "", "macos": ""}},
|
|
23
|
+
"stripVersion": True,
|
|
24
|
+
"exeName": "docker",
|
|
24
25
|
}
|
|
25
26
|
|
|
26
27
|
|
|
@@ -5,8 +5,16 @@ https://github.com/espanso/espanso
|
|
|
5
5
|
"""
|
|
6
6
|
|
|
7
7
|
from typing import Optional
|
|
8
|
+
from machineconfig.utils.schemas.installer.installer_types import InstallerData
|
|
8
9
|
|
|
9
|
-
config_dict = {
|
|
10
|
+
config_dict: InstallerData = {
|
|
11
|
+
"appName": "espanso",
|
|
12
|
+
"repoURL": "CUSTOM",
|
|
13
|
+
"doc": "A text expander.",
|
|
14
|
+
"filenameTemplate": {"amd64": {"windows": "Espanso-Win-Installer-x86_64.exe", "linux": "", "macos": "Espanso.dmg"}, "arm64": {"windows": "", "linux": "", "macos": ""}},
|
|
15
|
+
"stripVersion": False,
|
|
16
|
+
"exeName": "espanso",
|
|
17
|
+
}
|
|
10
18
|
|
|
11
19
|
|
|
12
20
|
def main(version: Optional[str]):
|
|
@@ -21,7 +29,7 @@ def main(version: Optional[str]):
|
|
|
21
29
|
_ = version
|
|
22
30
|
import platform
|
|
23
31
|
|
|
24
|
-
config_dict["
|
|
32
|
+
config_dict["repoURL"] = "https://github.com/espanso/espanso"
|
|
25
33
|
if platform.system() == "Windows":
|
|
26
34
|
print("🪟 Installing Espanso on Windows...")
|
|
27
35
|
elif platform.system() in ["Linux", "Darwin"]:
|
|
@@ -36,7 +44,7 @@ def main(version: Optional[str]):
|
|
|
36
44
|
📦 Using Wayland-specific package
|
|
37
45
|
{"=" * 150}
|
|
38
46
|
""")
|
|
39
|
-
config_dict["
|
|
47
|
+
config_dict["filenameTemplate"]["amd64"]["linux"] = "espanso-debian-wayland-amd64.deb"
|
|
40
48
|
else:
|
|
41
49
|
print(f"""
|
|
42
50
|
{"=" * 150}
|
|
@@ -44,10 +52,10 @@ def main(version: Optional[str]):
|
|
|
44
52
|
📦 Using X11-specific package
|
|
45
53
|
{"=" * 150}
|
|
46
54
|
""")
|
|
47
|
-
config_dict["
|
|
55
|
+
config_dict["filenameTemplate"]["amd64"]["linux"] = "espanso-debian-x11-amd64.deb"
|
|
48
56
|
else: # Darwin/macOS
|
|
49
57
|
print("🍎 Installing Espanso on macOS...")
|
|
50
|
-
config_dict["
|
|
58
|
+
config_dict["filenameTemplate"]["amd64"]["macos"] = "Espanso.dmg"
|
|
51
59
|
else:
|
|
52
60
|
error_msg = f"Unsupported platform: {platform.system()}"
|
|
53
61
|
print(f"""
|
|
@@ -60,7 +68,7 @@ def main(version: Optional[str]):
|
|
|
60
68
|
print("🚀 Installing Espanso using installer...")
|
|
61
69
|
from machineconfig.utils.installer_utils.installer_class import Installer
|
|
62
70
|
|
|
63
|
-
installer = Installer
|
|
71
|
+
installer = Installer(config_dict)
|
|
64
72
|
installer.install(version=None)
|
|
65
73
|
|
|
66
74
|
config = """
|
|
@@ -5,7 +5,16 @@ https://github.com/ShishirPatil/gorilla
|
|
|
5
5
|
|
|
6
6
|
# import subprocess
|
|
7
7
|
|
|
8
|
-
|
|
8
|
+
from machineconfig.utils.schemas.installer.installer_types import InstallerData
|
|
9
|
+
|
|
10
|
+
config_dict: InstallerData = {
|
|
11
|
+
"appName": "Gorilla",
|
|
12
|
+
"repoURL": "https://github.com/ShishirPatil/gorilla",
|
|
13
|
+
"doc": "natural language to API",
|
|
14
|
+
"filenameTemplate": {"amd64": {"windows": "", "linux": "", "macos": ""}},
|
|
15
|
+
"stripVersion": False,
|
|
16
|
+
"exeName": "goex",
|
|
17
|
+
}
|
|
9
18
|
|
|
10
19
|
ve_name = "goex"
|
|
11
20
|
|
|
@@ -4,13 +4,21 @@ from machineconfig.utils.terminal import Terminal
|
|
|
4
4
|
import subprocess
|
|
5
5
|
import platform
|
|
6
6
|
from typing import Optional
|
|
7
|
+
from machineconfig.utils.schemas.installer.installer_types import InstallerData
|
|
7
8
|
|
|
8
9
|
|
|
9
10
|
_ = Terminal, subprocess
|
|
10
11
|
# as per https://www.lunarvim.org/docs/installation
|
|
11
12
|
|
|
12
13
|
|
|
13
|
-
config_dict = {
|
|
14
|
+
config_dict: InstallerData = {
|
|
15
|
+
"appName": "lvim",
|
|
16
|
+
"repoURL": "CUSTOM",
|
|
17
|
+
"doc": "Terminal text editor based on neovim.",
|
|
18
|
+
"filenameTemplate": {"amd64": {"windows": "", "linux": "", "macos": ""}, "arm64": {"windows": "", "linux": "", "macos": ""}},
|
|
19
|
+
"stripVersion": False,
|
|
20
|
+
"exeName": "lvim",
|
|
21
|
+
}
|
|
14
22
|
|
|
15
23
|
|
|
16
24
|
def main(version: Optional[str]):
|
|
@@ -2,9 +2,17 @@
|
|
|
2
2
|
|
|
3
3
|
import platform
|
|
4
4
|
from typing import Optional
|
|
5
|
+
from machineconfig.utils.schemas.installer.installer_types import InstallerData
|
|
5
6
|
|
|
6
7
|
|
|
7
|
-
config_dict = {
|
|
8
|
+
config_dict: InstallerData = {
|
|
9
|
+
"appName": "nerdfont",
|
|
10
|
+
"repoURL": "CUSTOM",
|
|
11
|
+
"doc": "lightweight containerization",
|
|
12
|
+
"filenameTemplate": {"amd64": {"windows": "", "linux": "", "macos": ""}, "arm64": {"windows": "", "linux": "", "macos": ""}},
|
|
13
|
+
"stripVersion": False,
|
|
14
|
+
"exeName": "nerdfont",
|
|
15
|
+
}
|
|
8
16
|
|
|
9
17
|
|
|
10
18
|
def main(version: Optional[str]):
|
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
|
|
3
3
|
import platform
|
|
4
4
|
from typing import Optional
|
|
5
|
+
from machineconfig.utils.schemas.installer.installer_types import InstallerData
|
|
5
6
|
|
|
6
|
-
|
|
7
|
-
config_dict = {"repo_url": "CUSTOM", "doc": "submillisecond fast key-value db", "filename_template_windows_amd_64": "", "filename_template_linux_amd_64": "", "strip_v": False, "exe_name": "redis"}
|
|
7
|
+
config_dict: InstallerData = {"appName": "Redis", "repoURL": "CUSTOM", "doc": "submillisecond fast key-value db", "filenameTemplate": {"amd64": {"windows": "", "linux": "", "macos": ""}}, "stripVersion": False, "exeName": "redis"}
|
|
8
8
|
|
|
9
9
|
|
|
10
10
|
def main(version: Optional[str]):
|
|
@@ -3,8 +3,10 @@
|
|
|
3
3
|
import platform
|
|
4
4
|
from typing import Optional
|
|
5
5
|
|
|
6
|
+
from machineconfig.utils.schemas.installer.installer_types import InstallerData
|
|
6
7
|
|
|
7
|
-
|
|
8
|
+
|
|
9
|
+
config_dict: InstallerData = {"appName": "Wezterm", "repoURL": "CUSTOM", "doc": "Modern, GPU-accelerated terminal emulator", "filenameTemplate": {"amd64": {"windows": "", "linux": "", "macos": ""}}, "stripVersion": False, "exeName": "wezterm"}
|
|
8
10
|
|
|
9
11
|
|
|
10
12
|
def main(version: Optional[str]):
|
|
@@ -3,9 +3,10 @@ import requests
|
|
|
3
3
|
import tempfile
|
|
4
4
|
from pathlib import Path
|
|
5
5
|
from typing import Optional
|
|
6
|
+
from machineconfig.utils.schemas.installer.installer_types import InstallerData
|
|
6
7
|
|
|
7
8
|
|
|
8
|
-
config_dict = {"
|
|
9
|
+
config_dict: InstallerData = {"appName": "winget", "repoURL": "CUSTOM", "doc": "winget installer", "filenameTemplate": {"amd64": {"windows": "", "linux": "", "macos": ""}}, "stripVersion": False, "exeName": "winget"}
|
|
9
10
|
|
|
10
11
|
|
|
11
12
|
def is_winget_available() -> bool:
|
|
@@ -2,9 +2,17 @@
|
|
|
2
2
|
|
|
3
3
|
import platform
|
|
4
4
|
from typing import Optional
|
|
5
|
+
from machineconfig.utils.schemas.installer.installer_types import InstallerData
|
|
5
6
|
|
|
6
7
|
|
|
7
|
-
config_dict = {
|
|
8
|
+
config_dict: InstallerData = {
|
|
9
|
+
"appName": "docker",
|
|
10
|
+
"repoURL": "CUSTOM",
|
|
11
|
+
"doc": "lightweight containerization",
|
|
12
|
+
"filenameTemplate": {"amd64": {"windows": "", "linux": "", "macos": ""}, "arm64": {"windows": "", "linux": "", "macos": ""}},
|
|
13
|
+
"stripVersion": False,
|
|
14
|
+
"exeName": "docker",
|
|
15
|
+
}
|
|
8
16
|
|
|
9
17
|
|
|
10
18
|
def main(version: Optional[str]):
|
|
@@ -3,11 +3,13 @@
|
|
|
3
3
|
import platform
|
|
4
4
|
from typing import Optional
|
|
5
5
|
from machineconfig.utils.installer_utils.installer_class import Installer
|
|
6
|
+
from machineconfig.utils.schemas.installer.installer_types import InstallerData
|
|
6
7
|
from machineconfig.utils.terminal import Terminal
|
|
7
8
|
|
|
8
9
|
r"""
|
|
9
10
|
https://github.com/cli/cli
|
|
10
11
|
|
|
12
|
+
|
|
11
13
|
# as per https://docs.github.com/en/copilot/github-copilot-in-the-cli/using-github-copilot-in-the-cli
|
|
12
14
|
# gh auth login
|
|
13
15
|
# gh extension install github/gh-copilot
|
|
@@ -17,7 +19,14 @@ https://github.com/cli/cli
|
|
|
17
19
|
|
|
18
20
|
"""
|
|
19
21
|
|
|
20
|
-
config_dict
|
|
22
|
+
config_dict: InstallerData = {
|
|
23
|
+
"appName": "gh",
|
|
24
|
+
"repoURL": "https://github.com/cli/cli",
|
|
25
|
+
"doc": "GitHub CLI",
|
|
26
|
+
"filenameTemplate": {"amd64": {"windows": "gh_{}_windows_amd64.zip", "linux": "gh_{}_linux_amd64.tar.gz", "macos": "gh_{}_macOS_amd64.tar.gz"}},
|
|
27
|
+
"stripVersion": True,
|
|
28
|
+
"exeName": "gh",
|
|
29
|
+
}
|
|
21
30
|
|
|
22
31
|
|
|
23
32
|
def main(version: Optional[str]):
|
|
@@ -30,7 +39,7 @@ def main(version: Optional[str]):
|
|
|
30
39
|
""")
|
|
31
40
|
|
|
32
41
|
_ = version
|
|
33
|
-
inst = Installer
|
|
42
|
+
inst = Installer(installer_data=config_dict)
|
|
34
43
|
print("""
|
|
35
44
|
📦 INSTALLATION | Installing GitHub CLI base package...
|
|
36
45
|
""")
|