machineconfig 3.1__py3-none-any.whl → 3.3__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.

Files changed (51) hide show
  1. machineconfig/cluster/sessions_managers/zellij_local.py +2 -2
  2. machineconfig/cluster/sessions_managers/zellij_utils/monitoring_types.py +17 -7
  3. machineconfig/jobs/python_custom_installers/archive/ngrok.py +7 -6
  4. machineconfig/jobs/python_custom_installers/dev/aider.py +9 -1
  5. machineconfig/jobs/python_custom_installers/dev/alacritty.py +2 -1
  6. machineconfig/jobs/python_custom_installers/dev/brave.py +10 -1
  7. machineconfig/jobs/python_custom_installers/dev/bypass_paywall.py +9 -1
  8. machineconfig/jobs/python_custom_installers/dev/code.py +10 -3
  9. machineconfig/jobs/python_custom_installers/dev/cursor.py +2 -1
  10. machineconfig/jobs/python_custom_installers/dev/docker_desktop.py +7 -6
  11. machineconfig/jobs/python_custom_installers/dev/espanso.py +13 -5
  12. machineconfig/jobs/python_custom_installers/dev/goes.py +10 -1
  13. machineconfig/jobs/python_custom_installers/dev/lvim.py +9 -1
  14. machineconfig/jobs/python_custom_installers/dev/nerdfont.py +9 -1
  15. machineconfig/jobs/python_custom_installers/dev/redis.py +2 -2
  16. machineconfig/jobs/python_custom_installers/dev/wezterm.py +3 -1
  17. machineconfig/jobs/python_custom_installers/dev/winget.py +2 -1
  18. machineconfig/jobs/python_custom_installers/docker.py +9 -1
  19. machineconfig/jobs/python_custom_installers/gh.py +11 -2
  20. machineconfig/jobs/python_custom_installers/hx.py +9 -8
  21. machineconfig/jobs/python_custom_installers/warp-cli.py +9 -1
  22. machineconfig/jobs/python_generic_installers/config.json +612 -412
  23. machineconfig/jobs/python_generic_installers/config.json.bak +414 -0
  24. machineconfig/jobs/python_generic_installers/dev/config.json +822 -562
  25. machineconfig/jobs/python_generic_installers/dev/config.json.bak +565 -0
  26. machineconfig/jobs/python_linux_installers/archive/config.json +16 -8
  27. machineconfig/jobs/python_linux_installers/archive/config.json.bak +10 -0
  28. machineconfig/jobs/python_linux_installers/config.json +134 -99
  29. machineconfig/jobs/python_linux_installers/config.json.bak +110 -0
  30. machineconfig/jobs/python_linux_installers/dev/config.json +273 -203
  31. machineconfig/jobs/python_linux_installers/dev/config.json.bak +206 -0
  32. machineconfig/jobs/python_windows_installers/config.json +74 -48
  33. machineconfig/jobs/python_windows_installers/config.json.bak +56 -0
  34. machineconfig/jobs/python_windows_installers/dev/config.json +3 -2
  35. machineconfig/jobs/python_windows_installers/dev/config.json.bak +3 -0
  36. machineconfig/profile/create.py +1 -0
  37. machineconfig/scripts/python/devops.py +1 -1
  38. machineconfig/scripts/python/devops_devapps_install.py +40 -18
  39. machineconfig/scripts/python/fire_agents.py +10 -6
  40. machineconfig/setup_windows/wt_and_pwsh/install_nerd_fonts.py +8 -7
  41. machineconfig/utils/installer.py +45 -31
  42. machineconfig/utils/installer_utils/installer_abc.py +1 -4
  43. machineconfig/utils/installer_utils/installer_class.py +108 -102
  44. machineconfig/utils/path_reduced.py +1 -1
  45. machineconfig/utils/procs.py +1 -0
  46. machineconfig/utils/schemas/installer/installer_types.py +20 -0
  47. {machineconfig-3.1.dist-info → machineconfig-3.3.dist-info}/METADATA +1 -1
  48. {machineconfig-3.1.dist-info → machineconfig-3.3.dist-info}/RECORD +51 -43
  49. {machineconfig-3.1.dist-info → machineconfig-3.3.dist-info}/WHEEL +0 -0
  50. {machineconfig-3.1.dist-info → machineconfig-3.3.dist-info}/entry_points.txt +0 -0
  51. {machineconfig-3.1.dist-info → machineconfig-3.3.dist-info}/top_level.txt +0 -0
@@ -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('.py') or arg.endswith('.sh') or arg.endswith('.rb'):
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
@@ -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 # e.g. running | not_running | unknown | error
20
- running: bool # Convenience boolean
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 # Original command string ('' if unknown)
23
- tab_name: str # Tab identifier
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
-
@@ -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
- "repo_url": "CUSTOM",
11
+ config_dict: InstallerData = {
12
+ "appName": "ngrok",
13
+ "repoURL": "CUSTOM",
12
14
  "doc": "ngrok secure introspectable tunnels to localhost",
13
- "filename_template_windows_amd_64": "ngrok-stable-windows-amd64.zip",
14
- "filename_template_linux_amd_64": "ngrok-stable-linux-amd64.zip",
15
- "strip_v": False,
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 = {"repo_url": "CUSTOM", "doc": "Aider Chat", "filename_template_windows_amd_64": "aider-chat-{}.exe", "filename_template_linux_amd_64": "aider-chat-{}.deb", "strip_v": True, "exe_name": "aider-chat"}
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 = {"repo_url": "CUSTOM", "doc": "Terminal Console", "filename_template_windows_amd_64": "", "filename_template_linux_amd_64": "", "strip_v": False, "exe_name": "alacritty"}
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
- config_dict = {"repo_url": "CUSTOM", "doc": "Chrome with no ads", "filename_template_windows_amd_64": "", "filename_template_linux_amd_64": "", "strip_v": False, "exe_name": "brave"}
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.schemas.installer.installer_types import InstallerData
5
6
  from machineconfig.utils.path_reduced import PathExtended as PathExtended
6
7
 
7
8
 
8
- config_dict = {"repo_url": "CUSTOM", "doc": """Plugin for chrome to bypass paywalls""", "filename_template_windows_amd_64": "VSCodeSetup-{}.exe", "filename_template_linux_amd_64": "code_{}.deb", "strip_v": True, "exe_name": "pluginName"}
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 = {"repo_url": "CUSTOM", "doc": "Visual Studio Code", "filename_template_windows_amd_64": "VSCodeSetup-{}.exe", "filename_template_linux_amd_64": "code_{}.deb", "strip_v": True, "exe_name": "code"}
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 = {"repo_url": "CUSTOM", "doc": "Cursor", "filename_template_windows_amd_64": "VSCodeSetup-{}.exe", "filename_template_linux_amd_64": "code_{}.deb", "strip_v": True, "exe_name": "cursor"}
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
- "repo_url": "CUSTOM",
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
- "filename_template_windows_amd_64": "gh_{}_windows_amd64.zip",
21
- "filename_template_linux_amd_64": "gh_{}_linux_amd64.tar.gz",
22
- "strip_v": True,
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 = {"repo_url": "CUSTOM", "doc": "A text expander.", "filename_template_windows_amd_64": "Espanso-Win-Installer-x86_64.exe", "filename_template_linux_amd_64": "", "strip_v": False, "exe_name": "espanso"}
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["repo_url"] = "https://github.com/espanso/espanso"
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["filename_template_linux_amd_64"] = "espanso-debian-wayland-amd64.deb"
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["filename_template_linux_amd_64"] = "espanso-debian-x11-amd64.deb"
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["filename_template_linux_amd_64"] = "Espanso.dmg"
58
+ config_dict["filenameTemplate"]["amd64"]["macos"] = "Espanso.dmg"
51
59
  else:
52
60
  error_msg = f"Unsupported platform: {platform.system()}"
53
61
  print(f"""
@@ -5,7 +5,16 @@ https://github.com/ShishirPatil/gorilla
5
5
 
6
6
  # import subprocess
7
7
 
8
- config_dict = {"repo_url": "CUSTOM", "doc": "natural language to API", "filename_template_windows_amd_64": "", "filename_template_linux_amd_64": "", "strip_v": False, "exe_name": "goex"}
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 = {"repo_url": "CUSTOM", "doc": "Terminal text editor based on neovim.", "filename_template_windows_amd_64": "", "filename_template_linux_amd_64": "", "strip_v": False, "exe_name": "lvim"}
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 = {"repo_url": "CUSTOM", "doc": "lightweight containerization", "filename_template_windows_amd_64": "", "filename_template_linux_amd_64": "", "strip_v": False, "exe_name": "nerdfont"}
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
- config_dict = {"repo_url": "CUSTOM", "doc": "cli for wezterm", "filename_template_windows_amd_64": "", "filename_template_linux_amd_64": "", "strip_v": False, "exe_name": "wezterm"}
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 = {"repo_url": "CUSTOM", "doc": "winget installer", "filename_template_windows_amd_64": "", "filename_template_linux_amd_64": "", "strip_v": False, "exe_name": "winget"}
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 = {"repo_url": "CUSTOM", "doc": "lightweight containerization", "filename_template_windows_amd_64": "", "filename_template_linux_amd_64": "", "strip_v": False, "exe_name": "docker"}
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 = {"repo_url": "https://github.com/cli/cli", "doc": "GitHub CLI", "filename_template_windows_amd_64": "gh_{}_windows_amd64.zip", "filename_template_linux_amd_64": "gh_{}_linux_amd64.tar.gz", "strip_v": True, "exe_name": "gh"}
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.from_dict(d=config_dict, name="gh")
42
+ inst = Installer(installer_data=config_dict)
34
43
  print("""
35
44
  📦 INSTALLATION | Installing GitHub CLI base package...
36
45
  """)
@@ -11,15 +11,16 @@ from machineconfig.utils.installer_utils.installer_abc 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
+ from machineconfig.utils.schemas.installer.installer_types import InstallerData
14
15
 
15
16
 
16
- config_dict = {
17
- "repo_url": "CUSTOM",
17
+ config_dict: InstallerData = {
18
+ "appName": "hx",
19
+ "repoURL": "CUSTOM",
18
20
  "doc": "Helix is a post-modern modal text editor.",
19
- "filename_template_windows_amd_64": "helix-{}-x86_64-windows.zip",
20
- "filename_template_linux_amd_64": "helix-{}-x86_64-linux.tar.xz",
21
- "strip_v": False,
22
- "exe_name": "hx",
21
+ "filenameTemplate": {"amd64": {"windows": "helix-{}-x86_64-windows.zip", "linux": "helix-{}-x86_64-linux.tar.xz", "macos": ""}, "arm64": {"windows": "", "linux": "", "macos": ""}},
22
+ "stripVersion": False,
23
+ "exeName": "hx",
23
24
  }
24
25
 
25
26
 
@@ -29,8 +30,8 @@ def main(version: Optional[str], install_lib: bool = False):
29
30
  console.print(Panel(f"HELIX EDITOR INSTALLER 🧬\nPlatform: {platform.system()}\nVersion: {'latest' if version is None else version}", title="Installer", expand=False))
30
31
 
31
32
  config_dict_copy = config_dict.copy()
32
- config_dict_copy["repo_url"] = "https://github.com/helix-editor/helix"
33
- inst = Installer.from_dict(d=config_dict_copy, name="hx")
33
+ config_dict_copy["repoURL"] = "https://github.com/helix-editor/helix"
34
+ inst = Installer(installer_data=config_dict_copy)
34
35
 
35
36
  print("\n📥 [Step 1/5] Downloading Helix editor...")
36
37
  downloaded, _version_to_be_installed = inst.download(version=version)
@@ -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 = {"repo_url": "CUSTOM", "doc": "cli for warp from cloudflare", "filename_template_windows_amd_64": "", "filename_template_linux_amd_64": "", "strip_v": False, "exe_name": "warp-cli"}
8
+ config_dict: InstallerData = {
9
+ "appName": "warp-cli",
10
+ "repoURL": "CUSTOM",
11
+ "doc": "cli for warp from cloudflare",
12
+ "filenameTemplate": {"amd64": {"windows": "", "linux": "", "macos": ""}, "arm64": {"windows": "", "linux": "", "macos": ""}},
13
+ "stripVersion": False,
14
+ "exeName": "warp-cli",
15
+ }
8
16
 
9
17
 
10
18
  def main(version: Optional[str]):