machineconfig 2.0__py3-none-any.whl → 2.1__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 (235) hide show
  1. machineconfig/cluster/cloud_manager.py +0 -3
  2. machineconfig/cluster/data_transfer.py +0 -1
  3. machineconfig/cluster/file_manager.py +0 -1
  4. machineconfig/cluster/job_params.py +0 -3
  5. machineconfig/cluster/loader_runner.py +0 -3
  6. machineconfig/cluster/remote_machine.py +0 -1
  7. machineconfig/cluster/script_notify_upon_completion.py +0 -1
  8. machineconfig/cluster/sessions_managers/archive/create_zellij_template.py +3 -5
  9. machineconfig/cluster/sessions_managers/archive/session_managers.py +0 -1
  10. machineconfig/cluster/sessions_managers/enhanced_command_runner.py +17 -57
  11. machineconfig/cluster/sessions_managers/wt_local.py +36 -110
  12. machineconfig/cluster/sessions_managers/wt_local_manager.py +42 -112
  13. machineconfig/cluster/sessions_managers/wt_remote.py +23 -30
  14. machineconfig/cluster/sessions_managers/wt_remote_manager.py +20 -62
  15. machineconfig/cluster/sessions_managers/wt_utils/layout_generator.py +10 -15
  16. machineconfig/cluster/sessions_managers/wt_utils/process_monitor.py +27 -127
  17. machineconfig/cluster/sessions_managers/wt_utils/remote_executor.py +10 -43
  18. machineconfig/cluster/sessions_managers/wt_utils/session_manager.py +22 -101
  19. machineconfig/cluster/sessions_managers/wt_utils/status_reporter.py +11 -39
  20. machineconfig/cluster/sessions_managers/zellij_local.py +49 -102
  21. machineconfig/cluster/sessions_managers/zellij_local_manager.py +34 -78
  22. machineconfig/cluster/sessions_managers/zellij_remote.py +17 -24
  23. machineconfig/cluster/sessions_managers/zellij_remote_manager.py +7 -13
  24. machineconfig/cluster/sessions_managers/zellij_utils/example_usage.py +4 -2
  25. machineconfig/cluster/sessions_managers/zellij_utils/layout_generator.py +6 -6
  26. machineconfig/cluster/sessions_managers/zellij_utils/process_monitor.py +18 -88
  27. machineconfig/cluster/sessions_managers/zellij_utils/remote_executor.py +2 -6
  28. machineconfig/cluster/sessions_managers/zellij_utils/session_manager.py +12 -40
  29. machineconfig/cluster/sessions_managers/zellij_utils/status_reporter.py +3 -2
  30. machineconfig/cluster/templates/cli_click.py +0 -1
  31. machineconfig/cluster/templates/cli_gooey.py +0 -2
  32. machineconfig/cluster/templates/cli_trogon.py +0 -1
  33. machineconfig/cluster/templates/run_cloud.py +0 -1
  34. machineconfig/cluster/templates/run_cluster.py +0 -1
  35. machineconfig/cluster/templates/run_remote.py +0 -1
  36. machineconfig/cluster/templates/utils.py +26 -10
  37. machineconfig/jobs/__pycache__/__init__.cpython-313.pyc +0 -0
  38. machineconfig/jobs/linux/msc/cli_agents.sh +16 -0
  39. machineconfig/jobs/python/check_installations.py +1 -0
  40. machineconfig/jobs/python/create_bootable_media.py +0 -2
  41. machineconfig/jobs/python/python_ve_symlink.py +9 -11
  42. machineconfig/jobs/python/tasks.py +0 -1
  43. machineconfig/jobs/python/vscode/api.py +5 -5
  44. machineconfig/jobs/python/vscode/link_ve.py +13 -14
  45. machineconfig/jobs/python/vscode/select_interpreter.py +21 -22
  46. machineconfig/jobs/python/vscode/sync_code.py +9 -13
  47. machineconfig/jobs/python_custom_installers/__pycache__/__init__.cpython-313.pyc +0 -0
  48. machineconfig/jobs/python_custom_installers/archive/ngrok.py +13 -13
  49. machineconfig/jobs/python_custom_installers/dev/aider.py +7 -15
  50. machineconfig/jobs/python_custom_installers/dev/alacritty.py +9 -18
  51. machineconfig/jobs/python_custom_installers/dev/brave.py +10 -19
  52. machineconfig/jobs/python_custom_installers/dev/bypass_paywall.py +8 -15
  53. machineconfig/jobs/python_custom_installers/dev/code.py +14 -21
  54. machineconfig/jobs/python_custom_installers/dev/cursor.py +3 -14
  55. machineconfig/jobs/python_custom_installers/dev/docker_desktop.py +8 -7
  56. machineconfig/jobs/python_custom_installers/dev/espanso.py +15 -19
  57. machineconfig/jobs/python_custom_installers/dev/goes.py +5 -12
  58. machineconfig/jobs/python_custom_installers/dev/lvim.py +9 -17
  59. machineconfig/jobs/python_custom_installers/dev/nerdfont.py +12 -19
  60. machineconfig/jobs/python_custom_installers/dev/redis.py +12 -20
  61. machineconfig/jobs/python_custom_installers/dev/wezterm.py +12 -19
  62. machineconfig/jobs/python_custom_installers/dev/winget.py +5 -23
  63. machineconfig/jobs/python_custom_installers/docker.py +12 -21
  64. machineconfig/jobs/python_custom_installers/gh.py +11 -19
  65. machineconfig/jobs/python_custom_installers/hx.py +32 -16
  66. machineconfig/jobs/python_custom_installers/warp-cli.py +12 -20
  67. machineconfig/jobs/python_generic_installers/__pycache__/__init__.cpython-313.pyc +0 -0
  68. machineconfig/jobs/python_linux_installers/__pycache__/__init__.cpython-313.pyc +0 -0
  69. machineconfig/jobs/windows/archive/archive_pygraphviz.ps1 +1 -1
  70. machineconfig/jobs/windows/msc/cli_agents.bat +0 -0
  71. machineconfig/jobs/windows/msc/cli_agents.ps1 +0 -0
  72. machineconfig/jobs/windows/start_terminal.ps1 +1 -1
  73. machineconfig/profile/create.py +29 -22
  74. machineconfig/profile/create_hardlinks.py +26 -19
  75. machineconfig/profile/shell.py +51 -28
  76. machineconfig/scripts/__pycache__/__init__.cpython-313.pyc +0 -0
  77. machineconfig/scripts/cloud/init.sh +2 -2
  78. machineconfig/scripts/linux/checkout_versions +1 -1
  79. machineconfig/scripts/linux/choose_wezterm_theme +1 -1
  80. machineconfig/scripts/linux/cloud_copy +1 -1
  81. machineconfig/scripts/linux/cloud_manager +1 -1
  82. machineconfig/scripts/linux/cloud_mount +1 -1
  83. machineconfig/scripts/linux/cloud_repo_sync +1 -1
  84. machineconfig/scripts/linux/cloud_sync +1 -1
  85. machineconfig/scripts/linux/croshell +1 -1
  86. machineconfig/scripts/linux/devops +4 -6
  87. machineconfig/scripts/linux/fire +1 -1
  88. machineconfig/scripts/linux/fire_agents +3 -2
  89. machineconfig/scripts/linux/ftpx +1 -1
  90. machineconfig/scripts/linux/gh_models +1 -1
  91. machineconfig/scripts/linux/kill_process +1 -1
  92. machineconfig/scripts/linux/mcinit +1 -1
  93. machineconfig/scripts/linux/repos +1 -1
  94. machineconfig/scripts/linux/scheduler +1 -1
  95. machineconfig/scripts/linux/start_slidev +1 -1
  96. machineconfig/scripts/linux/start_terminals +1 -1
  97. machineconfig/scripts/linux/url2md +1 -1
  98. machineconfig/scripts/linux/warp-cli.sh +122 -0
  99. machineconfig/scripts/linux/wifi_conn +1 -1
  100. machineconfig/scripts/python/__pycache__/__init__.cpython-313.pyc +0 -0
  101. machineconfig/scripts/python/__pycache__/croshell.cpython-313.pyc +0 -0
  102. machineconfig/scripts/python/__pycache__/devops.cpython-313.pyc +0 -0
  103. machineconfig/scripts/python/__pycache__/devops_devapps_install.cpython-313.pyc +0 -0
  104. machineconfig/scripts/python/__pycache__/devops_update_repos.cpython-313.pyc +0 -0
  105. machineconfig/scripts/python/__pycache__/fire_jobs.cpython-313.pyc +0 -0
  106. machineconfig/scripts/python/ai/__init__.py +0 -0
  107. machineconfig/scripts/python/ai/__pycache__/__init__.cpython-313.pyc +0 -0
  108. machineconfig/scripts/python/ai/__pycache__/generate_files.cpython-313.pyc +0 -0
  109. machineconfig/scripts/python/ai/__pycache__/mcinit.cpython-313.pyc +0 -0
  110. machineconfig/scripts/python/ai/generate_files.py +84 -0
  111. machineconfig/scripts/python/ai/instructions/python/dev.instructions.md +2 -2
  112. machineconfig/scripts/python/ai/mcinit.py +7 -3
  113. machineconfig/scripts/python/ai/scripts/lint_and_type_check.sh +10 -5
  114. machineconfig/scripts/python/cloud_copy.py +1 -1
  115. machineconfig/scripts/python/cloud_mount.py +1 -1
  116. machineconfig/scripts/python/cloud_repo_sync.py +4 -4
  117. machineconfig/scripts/python/croshell.py +5 -3
  118. machineconfig/scripts/python/devops_add_identity.py +1 -1
  119. machineconfig/scripts/python/devops_add_ssh_key.py +1 -1
  120. machineconfig/scripts/python/devops_backup_retrieve.py +1 -1
  121. machineconfig/scripts/python/devops_update_repos.py +140 -52
  122. machineconfig/scripts/python/dotfile.py +1 -1
  123. machineconfig/scripts/python/fire_agents.py +28 -9
  124. machineconfig/scripts/python/fire_jobs.py +3 -4
  125. machineconfig/scripts/python/ftpx.py +2 -1
  126. machineconfig/scripts/python/helpers/__pycache__/__init__.cpython-313.pyc +0 -0
  127. machineconfig/scripts/python/helpers/__pycache__/helpers4.cpython-313.pyc +0 -0
  128. machineconfig/scripts/python/helpers/helpers2.py +2 -2
  129. machineconfig/scripts/python/helpers/helpers4.py +1 -2
  130. machineconfig/scripts/python/helpers/repo_sync_helpers.py +1 -1
  131. machineconfig/scripts/python/mount_nfs.py +1 -1
  132. machineconfig/scripts/python/mount_ssh.py +1 -1
  133. machineconfig/scripts/python/repos.py +1 -1
  134. machineconfig/scripts/python/start_slidev.py +1 -1
  135. machineconfig/scripts/python/wsl_windows_transfer.py +1 -1
  136. machineconfig/scripts/windows/checkout_version.ps1 +1 -3
  137. machineconfig/scripts/windows/choose_wezterm_theme.ps1 +1 -3
  138. machineconfig/scripts/windows/cloud_copy.ps1 +2 -6
  139. machineconfig/scripts/windows/cloud_manager.ps1 +1 -1
  140. machineconfig/scripts/windows/cloud_repo_sync.ps1 +1 -2
  141. machineconfig/scripts/windows/cloud_sync.ps1 +2 -2
  142. machineconfig/scripts/windows/croshell.ps1 +2 -2
  143. machineconfig/scripts/windows/devops.ps1 +1 -4
  144. machineconfig/scripts/windows/dotfile.ps1 +1 -3
  145. machineconfig/scripts/windows/fire.ps1 +1 -1
  146. machineconfig/scripts/windows/ftpx.ps1 +2 -2
  147. machineconfig/scripts/windows/gpt.ps1 +1 -1
  148. machineconfig/scripts/windows/kill_process.ps1 +1 -2
  149. machineconfig/scripts/windows/mcinit.ps1 +1 -1
  150. machineconfig/scripts/windows/mount_nfs.ps1 +1 -1
  151. machineconfig/scripts/windows/mount_ssh.ps1 +1 -1
  152. machineconfig/scripts/windows/pomodoro.ps1 +1 -1
  153. machineconfig/scripts/windows/py2exe.ps1 +1 -3
  154. machineconfig/scripts/windows/repos.ps1 +1 -1
  155. machineconfig/scripts/windows/scheduler.ps1 +1 -1
  156. machineconfig/scripts/windows/snapshot.ps1 +2 -2
  157. machineconfig/scripts/windows/start_slidev.ps1 +1 -1
  158. machineconfig/scripts/windows/start_terminals.ps1 +1 -1
  159. machineconfig/scripts/windows/wifi_conn.ps1 +1 -1
  160. machineconfig/scripts/windows/wsl_windows_transfer.ps1 +1 -3
  161. machineconfig/settings/lf/linux/lfrc +1 -1
  162. machineconfig/settings/linters/.ruff_cache/.gitignore +2 -0
  163. machineconfig/settings/linters/.ruff_cache/CACHEDIR.TAG +1 -0
  164. machineconfig/settings/lvim/windows/archive/config_additional.lua +1 -1
  165. machineconfig/settings/svim/linux/init.toml +1 -1
  166. machineconfig/settings/svim/windows/init.toml +1 -1
  167. machineconfig/setup_linux/web_shortcuts/croshell.sh +0 -54
  168. machineconfig/setup_linux/web_shortcuts/interactive.sh +6 -6
  169. machineconfig/setup_windows/web_shortcuts/all.ps1 +2 -2
  170. machineconfig/setup_windows/web_shortcuts/ascii_art.ps1 +1 -1
  171. machineconfig/setup_windows/web_shortcuts/croshell.ps1 +1 -1
  172. machineconfig/setup_windows/web_shortcuts/interactive.ps1 +5 -5
  173. machineconfig/setup_windows/wt_and_pwsh/install_fonts.ps1 +51 -15
  174. machineconfig/setup_windows/wt_and_pwsh/set_pwsh_theme.py +66 -12
  175. machineconfig/setup_windows/wt_and_pwsh/set_wt_settings.py +44 -36
  176. machineconfig/utils/ai/generate_file_checklist.py +8 -10
  177. machineconfig/utils/ai/url2md.py +4 -2
  178. machineconfig/utils/cloud/onedrive/setup_oauth.py +1 -0
  179. machineconfig/utils/cloud/onedrive/transaction.py +63 -98
  180. machineconfig/utils/code.py +60 -39
  181. machineconfig/utils/installer.py +27 -33
  182. machineconfig/utils/installer_utils/installer_abc.py +8 -7
  183. machineconfig/utils/installer_utils/installer_class.py +149 -70
  184. machineconfig/utils/links.py +22 -11
  185. machineconfig/utils/notifications.py +197 -0
  186. machineconfig/utils/options.py +29 -23
  187. machineconfig/utils/path.py +13 -6
  188. machineconfig/utils/path_reduced.py +485 -216
  189. machineconfig/utils/procs.py +47 -41
  190. machineconfig/utils/scheduling.py +0 -1
  191. machineconfig/utils/ssh.py +157 -76
  192. machineconfig/utils/terminal.py +82 -37
  193. machineconfig/utils/utils.py +12 -10
  194. machineconfig/utils/utils2.py +38 -48
  195. machineconfig/utils/utils5.py +183 -116
  196. machineconfig/utils/ve.py +9 -4
  197. {machineconfig-2.0.dist-info → machineconfig-2.1.dist-info}/METADATA +3 -2
  198. {machineconfig-2.0.dist-info → machineconfig-2.1.dist-info}/RECORD +200 -217
  199. machineconfig/jobs/__pycache__/__init__.cpython-311.pyc +0 -0
  200. machineconfig/jobs/python/__pycache__/__init__.cpython-311.pyc +0 -0
  201. machineconfig/jobs/python/__pycache__/python_ve_symlink.cpython-311.pyc +0 -0
  202. machineconfig/jobs/python/archive/python_tools.txt +0 -12
  203. machineconfig/jobs/python/vscode/__pycache__/select_interpreter.cpython-311.pyc +0 -0
  204. machineconfig/jobs/python_custom_installers/__pycache__/__init__.cpython-311.pyc +0 -0
  205. machineconfig/jobs/python_generic_installers/__pycache__/__init__.cpython-311.pyc +0 -0
  206. machineconfig/jobs/python_generic_installers/update.py +0 -3
  207. machineconfig/jobs/python_linux_installers/__pycache__/__init__.cpython-311.pyc +0 -0
  208. machineconfig/profile/__pycache__/__init__.cpython-311.pyc +0 -0
  209. machineconfig/profile/__pycache__/create.cpython-311.pyc +0 -0
  210. machineconfig/profile/__pycache__/shell.cpython-311.pyc +0 -0
  211. machineconfig/scripts/__pycache__/__init__.cpython-311.pyc +0 -0
  212. machineconfig/scripts/linux/activate_ve +0 -87
  213. machineconfig/scripts/python/__pycache__/__init__.cpython-311.pyc +0 -0
  214. machineconfig/scripts/python/__pycache__/cloud_copy.cpython-311.pyc +0 -0
  215. machineconfig/scripts/python/__pycache__/cloud_mount.cpython-311.pyc +0 -0
  216. machineconfig/scripts/python/__pycache__/cloud_sync.cpython-311.pyc +0 -0
  217. machineconfig/scripts/python/__pycache__/croshell.cpython-311.pyc +0 -0
  218. machineconfig/scripts/python/__pycache__/devops.cpython-311.pyc +0 -0
  219. machineconfig/scripts/python/__pycache__/devops_backup_retrieve.cpython-311.pyc +0 -0
  220. machineconfig/scripts/python/__pycache__/devops_devapps_install.cpython-311.pyc +0 -0
  221. machineconfig/scripts/python/__pycache__/devops_update_repos.cpython-311.pyc +0 -0
  222. machineconfig/scripts/python/__pycache__/fire_agents.cpython-311.pyc +0 -0
  223. machineconfig/scripts/python/__pycache__/fire_jobs.cpython-311.pyc +0 -0
  224. machineconfig/scripts/python/__pycache__/get_zellij_cmd.cpython-311.pyc +0 -0
  225. machineconfig/scripts/python/__pycache__/repos.cpython-311.pyc +0 -0
  226. machineconfig/scripts/python/ai/__pycache__/init.cpython-311.pyc +0 -0
  227. machineconfig/scripts/python/ai/__pycache__/mcinit.cpython-311.pyc +0 -0
  228. machineconfig/scripts/python/helpers/__pycache__/__init__.cpython-311.pyc +0 -0
  229. machineconfig/scripts/python/helpers/__pycache__/cloud_helpers.cpython-311.pyc +0 -0
  230. machineconfig/scripts/python/helpers/__pycache__/helpers2.cpython-311.pyc +0 -0
  231. machineconfig/scripts/python/helpers/__pycache__/helpers4.cpython-311.pyc +0 -0
  232. machineconfig/scripts/python/helpers/__pycache__/repo_sync_helpers.cpython-311.pyc +0 -0
  233. machineconfig/scripts/windows/activate_ve.ps1 +0 -54
  234. {machineconfig-2.0.dist-info → machineconfig-2.1.dist-info}/WHEEL +0 -0
  235. {machineconfig-2.0.dist-info → machineconfig-2.1.dist-info}/top_level.txt +0 -0
@@ -2,25 +2,18 @@
2
2
 
3
3
  # from platform import system
4
4
  from typing import Optional
5
- from machineconfig.utils.path_reduced import P as PathExtended
5
+ from machineconfig.utils.path_reduced import PathExtended as PathExtended
6
6
 
7
7
 
8
- config_dict = {
9
- "repo_url": "CUSTOM",
10
- "doc": """Plugin for chrome to bypass paywalls""",
11
- "filename_template_windows_amd_64": "VSCodeSetup-{}.exe",
12
- "filename_template_linux_amd_64": "code_{}.deb",
13
- "strip_v": True,
14
- "exe_name": "pluginName"
15
- }
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"}
16
9
 
17
10
 
18
11
  def main(version: Optional[str] = None):
19
12
  print(f"""
20
- {'=' * 150}
13
+ {"=" * 150}
21
14
  🔓 BYPASS PAYWALL | Installing paywall bypass extension for Chrome
22
- 🔄 Version: {'latest' if version is None else version}
23
- {'=' * 150}
15
+ 🔄 Version: {"latest" if version is None else version}
16
+ {"=" * 150}
24
17
  """)
25
18
 
26
19
  _ = version
@@ -32,18 +25,18 @@ def main(version: Optional[str] = None):
32
25
  extension_folder = PathExtended(folder).joinpath("bypass-paywalls-chrome-master")
33
26
 
34
27
  print(f"""
35
- {'=' * 150}
28
+ {"=" * 150}
36
29
  ✅ SUCCESS | Extension downloaded successfully
37
30
  📂 Location: {extension_folder}
38
31
  â„šī¸ Next steps:
39
32
  1ī¸âƒŖ Open Chrome and navigate to chrome://extensions
40
33
  2ī¸âƒŖ Enable Developer Mode (toggle in top right)
41
34
  3ī¸âƒŖ Click "Load unpacked" and select the extension folder
42
- {'=' * 150}
35
+ {"=" * 150}
43
36
  """)
44
37
 
45
38
  return ""
46
39
 
47
40
 
48
- if __name__ == '__main__':
41
+ if __name__ == "__main__":
49
42
  pass
@@ -1,64 +1,57 @@
1
- """vs code installer as per https://code.visualstudio.com/docs/setup/linux
2
- """
1
+ """vs code installer as per https://code.visualstudio.com/docs/setup/linux"""
3
2
 
4
3
  from typing import Optional
5
4
  import platform
6
5
 
7
6
 
8
- config_dict = {
9
- "repo_url": "CUSTOM",
10
- "doc": "Visual Studio Code",
11
- "filename_template_windows_amd_64": "VSCodeSetup-{}.exe",
12
- "filename_template_linux_amd_64": "code_{}.deb",
13
- "strip_v": True,
14
- "exe_name": "code"
15
- }
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"}
16
8
 
17
9
 
18
10
  def main(version: Optional[str] = None):
19
11
  print(f"""
20
- {'=' * 150}
12
+ {"=" * 150}
21
13
  đŸ’ģ VS CODE INSTALLER | Setting up Visual Studio Code
22
14
  đŸ–Ĩī¸ Platform: {platform.system()}
23
- 🔄 Version: {'latest' if version is None else version}
24
- {'=' * 150}
15
+ 🔄 Version: {"latest" if version is None else version}
16
+ {"=" * 150}
25
17
  """)
26
18
 
27
- if platform.system() == 'Linux':
19
+ if platform.system() == "Linux":
28
20
  print("🐧 Installing VS Code on Linux using official script...")
29
21
  import machineconfig.jobs.python_custom_installers as module
30
22
  from pathlib import Path
23
+
31
24
  install_script = Path(module.__file__).parent.joinpath("scripts/linux/vscode.sh").read_text(encoding="utf-8")
32
- elif platform.system() == 'Darwin':
25
+ elif platform.system() == "Darwin":
33
26
  print("🍎 Installing VS Code on macOS using Homebrew...")
34
27
  install_script = """brew install --cask visual-studio-code"""
35
- elif platform.system() == 'Windows':
28
+ elif platform.system() == "Windows":
36
29
  print("đŸĒŸ Installing VS Code on Windows using winget...")
37
30
  install_script = """winget install --no-upgrade --name "Microsoft Visual Studio Code" --Id "Microsoft.VisualStudioCode" --source winget --scope user --accept-package-agreements --accept-source-agreements"""
38
31
  else:
39
32
  error_msg = f"Unsupported platform: {platform.system()}"
40
33
  print(f"""
41
- {'âš ī¸' * 20}
34
+ {"âš ī¸" * 20}
42
35
  ❌ ERROR | {error_msg}
43
- {'âš ī¸' * 20}
36
+ {"âš ī¸" * 20}
44
37
  """)
45
38
  raise NotImplementedError(error_msg)
46
39
 
47
40
  _ = version
48
41
 
49
42
  print(f"""
50
- {'=' * 150}
43
+ {"=" * 150}
51
44
  â„šī¸ INFO | VS Code features:
52
45
  📝 Powerful code editor with IntelliSense
53
46
  🧩 Thousands of extensions available
54
47
  🔍 Integrated debugging
55
48
  🔄 Git integration
56
49
  âš™ī¸ Highly customizable
57
- {'=' * 150}
50
+ {"=" * 150}
58
51
  """)
59
52
 
60
53
  return install_script
61
54
 
62
55
 
63
- if __name__ == '__main__':
56
+ if __name__ == "__main__":
64
57
  pass
@@ -1,5 +1,3 @@
1
-
2
-
3
1
  import os
4
2
  import shutil
5
3
  from pathlib import Path
@@ -8,14 +6,7 @@ import subprocess
8
6
  from typing import Optional
9
7
 
10
8
 
11
- config_dict = {
12
- "repo_url": "CUSTOM",
13
- "doc": "Cursor",
14
- "filename_template_windows_amd_64": "VSCodeSetup-{}.exe",
15
- "filename_template_linux_amd_64": "code_{}.deb",
16
- "strip_v": True,
17
- "exe_name": "cursor"
18
- }
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"}
19
10
 
20
11
 
21
12
  def install_linux(version: Optional[str] = None):
@@ -83,8 +74,7 @@ def install_windows(version: Optional[str] = None):
83
74
  # Run the installer silently
84
75
  try:
85
76
  print("Running Cursor installer...")
86
- subprocess.run([str(cursor_installer), "/SILENT"],
87
- capture_output=True, text=True, check=True)
77
+ subprocess.run([str(cursor_installer), "/SILENT"], capture_output=True, text=True, check=True)
88
78
  print("Cursor installer completed successfully.")
89
79
  except subprocess.CalledProcessError as e:
90
80
  print(f"Installer failed with exit code {e.returncode}")
@@ -92,8 +82,7 @@ def install_windows(version: Optional[str] = None):
92
82
  # Try alternative silent install flags
93
83
  try:
94
84
  print("Trying alternative silent install...")
95
- subprocess.run([str(cursor_installer), "/S"],
96
- capture_output=True, text=True, check=True)
85
+ subprocess.run([str(cursor_installer), "/S"], capture_output=True, text=True, check=True)
97
86
  print("Cursor installer completed successfully with /S flag.")
98
87
  except subprocess.CalledProcessError as e2:
99
88
  print(f"Alternative installer also failed with exit code {e2.returncode}")
@@ -1,6 +1,7 @@
1
1
  """
2
2
  Installer
3
3
  """
4
+
4
5
  # from machineconfig.utils.installer import get_latest_release
5
6
  from typing import Optional
6
7
 
@@ -19,17 +20,17 @@ config_dict = {
19
20
  "filename_template_windows_amd_64": "gh_{}_windows_amd64.zip",
20
21
  "filename_template_linux_amd_64": "gh_{}_linux_amd64.tar.gz",
21
22
  "strip_v": True,
22
- "exe_name": "docker"
23
+ "exe_name": "docker",
23
24
  }
24
25
 
25
26
 
26
27
  def main(version: Optional[str]):
27
28
  print(f"""
28
- {'=' * 150}
29
+ {"=" * 150}
29
30
  đŸŗ DOCKER DESKTOP | Installing Docker Desktop for Ubuntu
30
- 🔄 Version: {'latest' if version is None else version}
31
+ 🔄 Version: {"latest" if version is None else version}
31
32
  📚 Source: https://docs.docker.com/desktop/install/ubuntu/
32
- {'=' * 150}
33
+ {"=" * 150}
33
34
  """)
34
35
 
35
36
  _ = version
@@ -61,16 +62,16 @@ sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin
61
62
 
62
63
  """
63
64
  print(f"""
64
- {'=' * 150}
65
+ {"=" * 150}
65
66
  â„šī¸ INFO | After installation:
66
67
  🔹 Run 'sudo docker run hello-world' to verify installation
67
68
  🔹 Add your user to the docker group with 'sudo usermod -aG docker $USER'
68
69
  🔹 Log out and back in to apply group changes
69
- {'=' * 150}
70
+ {"=" * 150}
70
71
  """)
71
72
 
72
73
  return code
73
74
 
74
75
 
75
- if __name__ == '__main__':
76
+ if __name__ == "__main__":
76
77
  pass
@@ -6,48 +6,43 @@ https://github.com/espanso/espanso
6
6
 
7
7
  from typing import Optional
8
8
 
9
- config_dict = {
10
- "repo_url": "CUSTOM",
11
- "doc": "A text expander.",
12
- "filename_template_windows_amd_64": "Espanso-Win-Installer-x86_64.exe",
13
- "filename_template_linux_amd_64": "",
14
- "strip_v": False,
15
- "exe_name": "espanso"
16
- }
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"}
17
10
 
18
11
 
19
12
  def main(version: Optional[str]):
20
13
  print(f"""
21
- {'=' * 150}
14
+ {"=" * 150}
22
15
  ⚡ ESPANSO INSTALLER | Setting up text expansion tool
23
- 🔄 Version: {'latest' if version is None else version}
16
+ 🔄 Version: {"latest" if version is None else version}
24
17
  🔗 Source: https://github.com/espanso/espanso
25
- {'=' * 150}
18
+ {"=" * 150}
26
19
  """)
27
20
 
28
21
  _ = version
29
22
  import platform
23
+
30
24
  config_dict["repo_url"] = "https://github.com/espanso/espanso"
31
25
  if platform.system() == "Windows":
32
26
  print("đŸĒŸ Installing Espanso on Windows...")
33
27
  elif platform.system() in ["Linux", "Darwin"]:
34
28
  if platform.system() == "Linux":
35
29
  import os
30
+
36
31
  env = os.environ["XDG_SESSION_TYPE"]
37
32
  if env == "wayland":
38
33
  print(f"""
39
- {'=' * 150}
34
+ {"=" * 150}
40
35
  đŸ–Ĩī¸ DISPLAY SERVER | Wayland detected
41
36
  đŸ“Ļ Using Wayland-specific package
42
- {'=' * 150}
37
+ {"=" * 150}
43
38
  """)
44
39
  config_dict["filename_template_linux_amd_64"] = "espanso-debian-wayland-amd64.deb"
45
40
  else:
46
41
  print(f"""
47
- {'=' * 150}
42
+ {"=" * 150}
48
43
  đŸ–Ĩī¸ DISPLAY SERVER | X11 detected
49
44
  đŸ“Ļ Using X11-specific package
50
- {'=' * 150}
45
+ {"=" * 150}
51
46
  """)
52
47
  config_dict["filename_template_linux_amd_64"] = "espanso-debian-x11-amd64.deb"
53
48
  else: # Darwin/macOS
@@ -56,14 +51,15 @@ def main(version: Optional[str]):
56
51
  else:
57
52
  error_msg = f"Unsupported platform: {platform.system()}"
58
53
  print(f"""
59
- {'âš ī¸' * 20}
54
+ {"âš ī¸" * 20}
60
55
  ❌ ERROR | {error_msg}
61
- {'âš ī¸' * 20}
56
+ {"âš ī¸" * 20}
62
57
  """)
63
58
  raise NotImplementedError(error_msg)
64
59
 
65
60
  print("🚀 Installing Espanso using installer...")
66
61
  from machineconfig.utils.installer_utils.installer_class import Installer
62
+
67
63
  installer = Installer.from_dict(config_dict, name="espanso")
68
64
  installer.install(version=None)
69
65
 
@@ -74,13 +70,13 @@ espanso install actually-all-emojis
74
70
  """
75
71
 
76
72
  print(f"""
77
- {'=' * 150}
73
+ {"=" * 150}
78
74
  ✅ SUCCESS | Espanso installation completed
79
75
  📋 Post-installation steps:
80
76
  1ī¸âƒŖ Register Espanso as a service
81
77
  2ī¸âƒŖ Start the Espanso service
82
78
  3ī¸âƒŖ Install the emoji package
83
- {'=' * 150}
79
+ {"=" * 150}
84
80
  """)
85
81
 
86
82
  return config
@@ -5,25 +5,18 @@ https://github.com/ShishirPatil/gorilla
5
5
 
6
6
  # import subprocess
7
7
 
8
- config_dict = {
9
- "repo_url": "CUSTOM",
10
- "doc": "natural language to API",
11
- "filename_template_windows_amd_64": "",
12
- "filename_template_linux_amd_64": "",
13
- "strip_v": False,
14
- "exe_name": "goex"
15
- }
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"}
16
9
 
17
10
  ve_name = "goex"
18
11
 
19
12
 
20
13
  def main():
21
14
  print(f"""
22
- {'=' * 150}
15
+ {"=" * 150}
23
16
  đŸĻ GORILLA INSTALLER | Natural language to API converter
24
17
  🌐 Source: https://github.com/ShishirPatil/gorilla
25
18
  đŸ“Ļ Virtual Environment: {ve_name}
26
- {'=' * 150}
19
+ {"=" * 150}
27
20
  """)
28
21
 
29
22
  print("🔄 Preparing installation script...")
@@ -36,12 +29,12 @@ uv sync
36
29
  """
37
30
 
38
31
  print(f"""
39
- {'=' * 150}
32
+ {"=" * 150}
40
33
  📋 INSTALLATION STEPS:
41
34
  1ī¸âƒŖ Creating Python 3.13 virtual environment: {ve_name}
42
35
  2ī¸âƒŖ Cloning Gorilla repository to ~/code/foreign
43
36
  3ī¸âƒŖ Installing Gorilla in development mode
44
- {'=' * 150}
37
+ {"=" * 150}
45
38
 
46
39
  ✅ Installation script prepared successfully!
47
40
  """)
@@ -1,5 +1,4 @@
1
- """lvim
2
- """
1
+ """lvim"""
3
2
 
4
3
  from machineconfig.utils.terminal import Terminal
5
4
  import subprocess
@@ -11,23 +10,16 @@ _ = Terminal, subprocess
11
10
  # as per https://www.lunarvim.org/docs/installation
12
11
 
13
12
 
14
- config_dict = {
15
- "repo_url": "CUSTOM",
16
- "doc": "Terminal text editor based on neovim.",
17
- "filename_template_windows_amd_64": "",
18
- "filename_template_linux_amd_64": "",
19
- "strip_v": False,
20
- "exe_name": "lvim"
21
- }
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"}
22
14
 
23
15
 
24
16
  def main(version: Optional[str]):
25
17
  print(f"""
26
- {'=' * 150}
18
+ {"=" * 150}
27
19
  🌙 LUNARVIM INSTALLER | Setting up Neovim-based IDE
28
- 🔄 Version: {'latest' if version is None else version}
20
+ 🔄 Version: {"latest" if version is None else version}
29
21
  📚 Branch: release-1.4/neovim-0.9
30
- {'=' * 150}
22
+ {"=" * 150}
31
23
  """)
32
24
 
33
25
  _ = version
@@ -49,21 +41,21 @@ LV_BRANCH='release-1.4/neovim-0.9' bash <(curl -s https://raw.githubusercontent.
49
41
  else:
50
42
  error_msg = f"Unsupported platform: {platform.system()}"
51
43
  print(f"""
52
- {'âš ī¸' * 20}
44
+ {"âš ī¸" * 20}
53
45
  ❌ ERROR | {error_msg}
54
- {'âš ī¸' * 20}
46
+ {"âš ī¸" * 20}
55
47
  """)
56
48
  raise NotImplementedError(error_msg)
57
49
 
58
50
  print(f"""
59
- {'=' * 150}
51
+ {"=" * 150}
60
52
  â„šī¸ INFO | LunarVim features:
61
53
  📝 IDE-like experience for Neovim
62
54
  🔌 Built-in plugin management
63
55
  đŸ› ī¸ LSP configuration out of the box
64
56
  🔍 Powerful fuzzy finding
65
57
  âš™ī¸ Simple and unified configuration
66
- {'=' * 150}
58
+ {"=" * 150}
67
59
 
68
60
  âš ī¸ NOTE: The installer will prompt for user input during installation.
69
61
  """)
@@ -1,61 +1,54 @@
1
- """nerfont installer
2
- """
1
+ """nerfont installer"""
3
2
 
4
3
  import platform
5
4
  from typing import Optional
6
5
 
7
6
 
8
- config_dict = {
9
- "repo_url": "CUSTOM",
10
- "doc": "lightweight containerization",
11
- "filename_template_windows_amd_64": "",
12
- "filename_template_linux_amd_64": "",
13
- "strip_v": False,
14
- "exe_name": "nerdfont"
15
- }
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"}
16
8
 
17
9
 
18
10
  def main(version: Optional[str]):
19
11
  print(f"""
20
- {'=' * 150}
12
+ {"=" * 150}
21
13
  🔤 NERD FONTS INSTALLER | Installing programming fonts with icons
22
14
  đŸ’ģ Platform: {platform.system()}
23
- 🔄 Version: {'latest' if version is None else version}
24
- {'=' * 150}
15
+ 🔄 Version: {"latest" if version is None else version}
16
+ {"=" * 150}
25
17
  """)
26
18
 
27
19
  _ = version
28
20
  if platform.system() == "Windows":
29
21
  error_msg = "Nerd Fonts installation not supported on Windows through this installer"
30
22
  print(f"""
31
- {'âš ī¸' * 20}
23
+ {"âš ī¸" * 20}
32
24
  ❌ ERROR | {error_msg}
33
25
  💡 TIP: Please download and install manually from https://www.nerdfonts.com
34
- {'âš ī¸' * 20}
26
+ {"âš ī¸" * 20}
35
27
  """)
36
28
  raise NotImplementedError(error_msg)
37
29
  elif platform.system() in ["Linux", "Darwin"]:
38
30
  print("🐧 Installing Nerd Fonts on Linux using installation script...")
39
31
  import machineconfig.jobs.python_custom_installers as module
40
32
  from pathlib import Path
33
+
41
34
  program = Path(module.__file__).parent.joinpath("scripts/linux/nerdfont.sh").read_text(encoding="utf-8")
42
35
  else:
43
36
  error_msg = f"Unsupported platform: {platform.system()}"
44
37
  print(f"""
45
- {'âš ī¸' * 20}
38
+ {"âš ī¸" * 20}
46
39
  ❌ ERROR | {error_msg}
47
- {'âš ī¸' * 20}
40
+ {"âš ī¸" * 20}
48
41
  """)
49
42
  raise NotImplementedError(error_msg)
50
43
 
51
44
  print(f"""
52
- {'=' * 150}
45
+ {"=" * 150}
53
46
  â„šī¸ INFO | Nerd Fonts features:
54
47
  🎨 Programming fonts patched with icons
55
48
  đŸ”Ŗ Includes icons from popular sets (FontAwesome, Devicons, etc.)
56
49
  đŸ–Ĩī¸ Perfect for terminals and coding environments
57
50
  🧰 Works with many terminal applications and editors
58
- {'=' * 150}
51
+ {"=" * 150}
59
52
  """)
60
53
 
61
54
  # _res = Terminal(stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE).run_script(script=program, shell="default").print(desc="Running custom installer", capture=True)
@@ -1,37 +1,29 @@
1
- """nedis installer
2
- """
1
+ """nedis installer"""
3
2
 
4
3
  import platform
5
4
  from typing import Optional
6
5
 
7
6
 
8
- config_dict = {
9
- "repo_url": "CUSTOM",
10
- "doc": "submillisecond fast key-value db",
11
- "filename_template_windows_amd_64": "",
12
- "filename_template_linux_amd_64": "",
13
- "strip_v": False,
14
- "exe_name": "redis"
15
- }
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"}
16
8
 
17
9
 
18
10
  def main(version: Optional[str]):
19
11
  print(f"""
20
- {'=' * 150}
12
+ {"=" * 150}
21
13
  đŸ—ƒī¸ REDIS INSTALLER | Setting up in-memory database
22
14
  đŸ’ģ Platform: {platform.system()}
23
- 🔄 Version: {'latest' if version is None else version}
24
- {'=' * 150}
15
+ 🔄 Version: {"latest" if version is None else version}
16
+ {"=" * 150}
25
17
  """)
26
18
 
27
19
  _ = version
28
20
  if platform.system() == "Windows":
29
21
  error_msg = "Redis installation not supported on Windows through this installer"
30
22
  print(f"""
31
- {'âš ī¸' * 20}
23
+ {"âš ī¸" * 20}
32
24
  ❌ ERROR | {error_msg}
33
25
  💡 TIP: Consider using WSL2 or Docker to run Redis on Windows
34
- {'âš ī¸' * 20}
26
+ {"âš ī¸" * 20}
35
27
  """)
36
28
  raise NotImplementedError(error_msg)
37
29
  elif platform.system() in ["Linux", "Darwin"]:
@@ -39,6 +31,7 @@ def main(version: Optional[str]):
39
31
  print(f"🐧 Installing Redis on {system_name} using installation script...")
40
32
  import machineconfig.jobs.python_custom_installers as module
41
33
  from pathlib import Path
34
+
42
35
  if platform.system() == "Linux":
43
36
  program = Path(module.__file__).parent.joinpath("scripts/linux/redis.sh").read_text(encoding="utf-8")
44
37
  else: # Darwin/macOS
@@ -46,21 +39,21 @@ def main(version: Optional[str]):
46
39
  else:
47
40
  error_msg = f"Unsupported platform: {platform.system()}"
48
41
  print(f"""
49
- {'âš ī¸' * 20}
42
+ {"âš ī¸" * 20}
50
43
  ❌ ERROR | {error_msg}
51
- {'âš ī¸' * 20}
44
+ {"âš ī¸" * 20}
52
45
  """)
53
46
  raise NotImplementedError(error_msg)
54
47
 
55
48
  print(f"""
56
- {'=' * 150}
49
+ {"=" * 150}
57
50
  â„šī¸ INFO | Redis features:
58
51
  ⚡ In-memory data structure store
59
52
  🔑 Key-value database with optional persistence
60
53
  🚀 Sub-millisecond response times
61
54
  💾 Supports strings, lists, sets, sorted sets, hashes
62
55
  🔄 Built-in replication and Lua scripting
63
- {'=' * 150}
56
+ {"=" * 150}
64
57
  """)
65
58
 
66
59
  # _res = Terminal(stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE).run_script(script=program, shell="default").print(desc="Running custom installer", capture=True)
@@ -70,4 +63,3 @@ def main(version: Optional[str]):
70
63
 
71
64
  if __name__ == "__main__":
72
65
  pass
73
-
@@ -1,37 +1,29 @@
1
- """wezterm installer
2
- """
1
+ """wezterm installer"""
3
2
 
4
3
  import platform
5
4
  from typing import Optional
6
5
 
7
6
 
8
- config_dict = {
9
- "repo_url": "CUSTOM",
10
- "doc": "cli for wezterm",
11
- "filename_template_windows_amd_64": "",
12
- "filename_template_linux_amd_64": "",
13
- "strip_v": False,
14
- "exe_name": "wezterm"
15
- }
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"}
16
8
 
17
9
 
18
10
  def main(version: Optional[str]):
19
11
  print(f"""
20
- {'═' * 150}
12
+ {"═" * 150}
21
13
  đŸ–Ĩī¸ WEZTERM INSTALLER | Modern, GPU-accelerated terminal emulator
22
14
  đŸ’ģ Platform: {platform.system()}
23
- 🔄 Version: {'latest' if version is None else version}
24
- {'═' * 150}
15
+ 🔄 Version: {"latest" if version is None else version}
16
+ {"═" * 150}
25
17
  """)
26
18
 
27
19
  _ = version
28
20
  if platform.system() == "Windows":
29
21
  error_msg = "WezTerm installation not supported on Windows through this installer"
30
22
  print(f"""
31
- {'âš ī¸' * 20}
23
+ {"âš ī¸" * 20}
32
24
  ❌ ERROR | {error_msg}
33
25
  💡 TIP: Please download and install manually from the WezTerm website
34
- {'âš ī¸' * 20}
26
+ {"âš ī¸" * 20}
35
27
  """)
36
28
  raise NotImplementedError(error_msg)
37
29
  elif platform.system() in ["Linux", "Darwin"]:
@@ -41,6 +33,7 @@ def main(version: Optional[str]):
41
33
  """)
42
34
  import machineconfig.jobs.python_custom_installers as module
43
35
  from pathlib import Path
36
+
44
37
  if platform.system() == "Linux":
45
38
  program = Path(module.__file__).parent.joinpath("scripts/linux/wezterm.sh").read_text(encoding="utf-8")
46
39
  else: # Darwin/macOS
@@ -48,14 +41,14 @@ def main(version: Optional[str]):
48
41
  else:
49
42
  error_msg = f"Unsupported platform: {platform.system()}"
50
43
  print(f"""
51
- {'âš ī¸' * 20}
44
+ {"âš ī¸" * 20}
52
45
  ❌ ERROR | {error_msg}
53
- {'âš ī¸' * 20}
46
+ {"âš ī¸" * 20}
54
47
  """)
55
48
  raise NotImplementedError(error_msg)
56
49
 
57
50
  print(f"""
58
- {'═' * 150}
51
+ {"═" * 150}
59
52
  â„šī¸ INFO | WezTerm Features:
60
53
  ⚡ GPU-accelerated rendering
61
54
  🎨 Full color emoji support
@@ -63,7 +56,7 @@ def main(version: Optional[str]):
63
56
  âš™ī¸ Lua configuration
64
57
  đŸ“Ļ Cross-platform support
65
58
  🔌 Plugin system
66
- {'═' * 150}
59
+ {"═" * 150}
67
60
  """)
68
61
 
69
62
  # _res = Terminal(stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE).run_script(script=program, shell="default").print(desc="Running custom installer", capture=True)