machineconfig 1.94__py3-none-any.whl → 1.95__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 (120) hide show
  1. machineconfig/cluster/data_transfer.py +2 -1
  2. machineconfig/cluster/job_params.py +1 -1
  3. machineconfig/cluster/script_execution.py +1 -1
  4. machineconfig/jobs/__pycache__/__init__.cpython-311.pyc +0 -0
  5. machineconfig/jobs/linux/msc/lid.sh +2 -4
  6. machineconfig/jobs/linux/msc/network.sh +3 -6
  7. machineconfig/jobs/python/check_installations.py +6 -6
  8. machineconfig/jobs/python/checkout_version.py +4 -4
  9. machineconfig/jobs/python/python_cargo_build_share.py +2 -2
  10. machineconfig/jobs/python/python_ve_symlink.py +4 -4
  11. machineconfig/jobs/python/vscode/api.py +2 -2
  12. machineconfig/jobs/python/vscode/link_ve.py +4 -4
  13. machineconfig/jobs/python/vscode/select_interpreter.py +4 -4
  14. machineconfig/jobs/python/vscode/sync_code.py +6 -6
  15. machineconfig/jobs/python_custom_installers/archive/ngrok.py +4 -4
  16. machineconfig/jobs/python_custom_installers/dev/aider.py +4 -4
  17. machineconfig/jobs/python_custom_installers/dev/alacritty.py +4 -4
  18. machineconfig/jobs/python_custom_installers/dev/brave.py +4 -4
  19. machineconfig/jobs/python_custom_installers/dev/bypass_paywall.py +4 -4
  20. machineconfig/jobs/python_custom_installers/dev/code.py +4 -4
  21. machineconfig/jobs/python_custom_installers/dev/docker.py +4 -4
  22. machineconfig/jobs/python_custom_installers/dev/docker_desktop.py +4 -4
  23. machineconfig/jobs/python_custom_installers/dev/espanso.py +8 -8
  24. machineconfig/jobs/python_custom_installers/dev/goes.py +4 -4
  25. machineconfig/jobs/python_custom_installers/dev/lvim.py +4 -4
  26. machineconfig/jobs/python_custom_installers/dev/nerdfont.py +4 -4
  27. machineconfig/jobs/python_custom_installers/dev/redis.py +4 -4
  28. machineconfig/jobs/python_custom_installers/dev/warp-cli.py +4 -4
  29. machineconfig/jobs/python_custom_installers/dev/wezterm.py +4 -4
  30. machineconfig/jobs/python_custom_installers/gh.py +6 -6
  31. machineconfig/jobs/python_custom_installers/hx.py +28 -58
  32. machineconfig/jobs/python_custom_installers/scripts/linux/brave.sh +4 -8
  33. machineconfig/jobs/python_custom_installers/scripts/linux/docker.sh +5 -10
  34. machineconfig/jobs/python_custom_installers/scripts/linux/docker_start.sh +3 -6
  35. machineconfig/jobs/python_custom_installers/scripts/linux/edge.sh +3 -6
  36. machineconfig/jobs/python_custom_installers/scripts/linux/nerdfont.sh +5 -10
  37. machineconfig/jobs/python_custom_installers/scripts/linux/pgsql.sh +4 -8
  38. machineconfig/jobs/python_custom_installers/scripts/linux/redis.sh +5 -10
  39. machineconfig/jobs/python_custom_installers/scripts/linux/timescaledb.sh +6 -12
  40. machineconfig/jobs/python_custom_installers/scripts/linux/vscode.sh +9 -8
  41. machineconfig/jobs/python_custom_installers/scripts/linux/warp-cli.sh +5 -10
  42. machineconfig/jobs/python_custom_installers/scripts/linux/wezterm.sh +3 -6
  43. machineconfig/jobs/python_generic_installers/__pycache__/__init__.cpython-311.pyc +0 -0
  44. machineconfig/jobs/python_linux_installers/__pycache__/__init__.cpython-311.pyc +0 -0
  45. machineconfig/profile/shell.py +26 -47
  46. machineconfig/scripts/__pycache__/__init__.cpython-311.pyc +0 -0
  47. machineconfig/scripts/cloud/init.sh +9 -18
  48. machineconfig/scripts/linux/fire +5 -24
  49. machineconfig/scripts/linux/share_cloud.sh +6 -12
  50. machineconfig/scripts/python/__pycache__/__init__.cpython-311.pyc +0 -0
  51. machineconfig/scripts/python/__pycache__/cloud_copy.cpython-311.pyc +0 -0
  52. machineconfig/scripts/python/__pycache__/cloud_mount.cpython-311.pyc +0 -0
  53. machineconfig/scripts/python/__pycache__/cloud_repo_sync.cpython-311.pyc +0 -0
  54. machineconfig/scripts/python/__pycache__/cloud_sync.cpython-311.pyc +0 -0
  55. machineconfig/scripts/python/__pycache__/croshell.cpython-311.pyc +0 -0
  56. machineconfig/scripts/python/__pycache__/devops.cpython-311.pyc +0 -0
  57. machineconfig/scripts/python/__pycache__/devops_devapps_install.cpython-311.pyc +0 -0
  58. machineconfig/scripts/python/__pycache__/devops_update_repos.cpython-311.pyc +0 -0
  59. machineconfig/scripts/python/__pycache__/fire_jobs.cpython-311.pyc +0 -0
  60. machineconfig/scripts/python/__pycache__/get_zellij_cmd.cpython-311.pyc +0 -0
  61. machineconfig/scripts/python/__pycache__/repos.cpython-311.pyc +0 -0
  62. machineconfig/scripts/python/archive/im2text.py +30 -30
  63. machineconfig/scripts/python/archive/tmate_conn.py +10 -13
  64. machineconfig/scripts/python/archive/tmate_start.py +12 -16
  65. machineconfig/scripts/python/choose_wezterm_theme.py +9 -18
  66. machineconfig/scripts/python/cloud_copy.py +38 -93
  67. machineconfig/scripts/python/cloud_manager.py +61 -53
  68. machineconfig/scripts/python/cloud_mount.py +23 -34
  69. machineconfig/scripts/python/cloud_repo_sync.py +20 -69
  70. machineconfig/scripts/python/cloud_sync.py +35 -45
  71. machineconfig/scripts/python/croshell.py +48 -73
  72. machineconfig/scripts/python/devops.py +50 -104
  73. machineconfig/scripts/python/devops_add_identity.py +41 -101
  74. machineconfig/scripts/python/devops_add_ssh_key.py +33 -140
  75. machineconfig/scripts/python/devops_backup_retrieve.py +23 -112
  76. machineconfig/scripts/python/devops_devapps_install.py +0 -4
  77. machineconfig/scripts/python/devops_update_repos.py +1 -1
  78. machineconfig/scripts/python/fire_jobs.py +73 -25
  79. machineconfig/scripts/python/helpers/__pycache__/__init__.cpython-311.pyc +0 -0
  80. machineconfig/scripts/python/helpers/__pycache__/cloud_helpers.cpython-311.pyc +0 -0
  81. machineconfig/scripts/python/helpers/__pycache__/helpers2.cpython-311.pyc +0 -0
  82. machineconfig/scripts/python/helpers/__pycache__/helpers4.cpython-311.pyc +0 -0
  83. machineconfig/scripts/python/helpers/__pycache__/repo_sync_helpers.cpython-311.pyc +0 -0
  84. machineconfig/scripts/python/helpers/cloud_helpers.py +37 -34
  85. machineconfig/scripts/python/helpers/helpers2.py +17 -31
  86. machineconfig/scripts/python/helpers/repo_sync_helpers.py +19 -54
  87. machineconfig/scripts/python/pomodoro.py +1 -1
  88. machineconfig/scripts/python/repos.py +49 -34
  89. machineconfig/scripts/python/wifi_conn.py +5 -3
  90. machineconfig/scripts/windows/fire.ps1 +27 -15
  91. machineconfig/settings/__pycache__/__init__.cpython-311.pyc +0 -0
  92. machineconfig/settings/shells/ipy/profiles/default/__pycache__/__init__.cpython-311.pyc +0 -0
  93. machineconfig/settings/shells/ipy/profiles/default/startup/__pycache__/__init__.cpython-311.pyc +0 -0
  94. machineconfig/settings/shells/ipy/profiles/default/startup/__pycache__/playext.cpython-311.pyc +0 -0
  95. machineconfig/setup_linux/nix/cli_installation.sh +9 -18
  96. machineconfig/setup_linux/others/openssh-server_add_pub_key.sh +3 -6
  97. machineconfig/setup_linux/web_shortcuts/all.sh +5 -10
  98. machineconfig/setup_linux/web_shortcuts/ascii_art.sh +7 -14
  99. machineconfig/setup_linux/web_shortcuts/croshell.sh +6 -12
  100. machineconfig/setup_linux/web_shortcuts/interactive.sh +34 -68
  101. machineconfig/setup_linux/web_shortcuts/ssh.sh +8 -16
  102. machineconfig/setup_linux/web_shortcuts/update_system.sh +7 -14
  103. machineconfig/setup_windows/wt_and_pwsh/set_wt_settings.py +16 -12
  104. machineconfig/utils/ai/browser_user_wrapper.py +60 -45
  105. machineconfig/utils/ai/generate_file_checklist.py +4 -7
  106. machineconfig/utils/ai/url2md.py +13 -5
  107. machineconfig/utils/{utils_code.py → code.py} +4 -10
  108. machineconfig/utils/installer.py +4 -10
  109. machineconfig/utils/{utils_links.py → links.py} +9 -20
  110. machineconfig/utils/{utils_options.py → options.py} +10 -20
  111. machineconfig/utils/{utils_path.py → path.py} +28 -80
  112. machineconfig/utils/procs.py +26 -30
  113. machineconfig/utils/scheduling.py +11 -11
  114. machineconfig/utils/utils.py +12 -19
  115. machineconfig/utils/ve.py +5 -21
  116. machineconfig/utils/ve_utils/ve2.py +15 -2
  117. {machineconfig-1.94.dist-info → machineconfig-1.95.dist-info}/METADATA +4 -2
  118. {machineconfig-1.94.dist-info → machineconfig-1.95.dist-info}/RECORD +120 -118
  119. {machineconfig-1.94.dist-info → machineconfig-1.95.dist-info}/WHEEL +1 -1
  120. {machineconfig-1.94.dist-info → machineconfig-1.95.dist-info}/top_level.txt +0 -0
@@ -2,7 +2,8 @@
2
2
  """
3
3
 
4
4
 
5
- from crocodile.file_management import P, List as L
5
+ from crocodile.file_management import P
6
+ from crocodile.core import List as L
6
7
  from machineconfig.cluster.remote_machine import RemoteMachine, FileManager
7
8
 
8
9
 
@@ -126,7 +126,7 @@ workload_params = []
126
126
  for idx, x in enumerate(kwargs_workload):
127
127
  S(x).print(as_config=True, title=f"Instance {{idx}}")
128
128
  workload_params.append(WorkloadParams(**x))
129
- print("\\n" * 2)
129
+ print("\n" * 2)
130
130
  res = L(workload_params).apply(lambda a_workload_params: func(workload_params=a_workload_params, **func_kwargs), jobs={workload_params.jobs})
131
131
  """
132
132
  else: base += """
@@ -153,7 +153,7 @@ kwargs_path @ `{manager.kwargs_path.collapseuser()}`
153
153
 
154
154
  # print to execution console:
155
155
  exec_times.print(title="âąī¸ Execution Times", as_config=True)
156
- print("\n" + "─" * 60 + "\n")
156
+ console.rule(title="", characters="─", style="blue")
157
157
  ssh_repr_remote = params.ssh_repr_remote or f"{getpass.getuser()}@{platform.node()}" # os.getlogin() can throw an error in non-login shells.
158
158
  console.print(Panel(Text(f'''
159
159
  ftprx {ssh_repr_remote} {res_folder.collapseuser()} -r
@@ -5,8 +5,7 @@
5
5
  # This script disables suspension when laptop lid is closed
6
6
  # Reference: https://askubuntu.com/questions/141866/keep-ubuntu-server-running-on-a-laptop-with-the-lid-closed/1426611#1426611
7
7
 
8
- echo """
9
- #=======================================================================
8
+ echo """#=======================================================================
10
9
  🔧 CONFIGURING | Modifying lid close behavior
11
10
  #=======================================================================
12
11
  """
@@ -18,8 +17,7 @@ sudo sed -i 's/#HandleLidSwitch=suspend/HandleLidSwitch=ignore/g' /etc/systemd/l
18
17
  echo "📝 Updating HandleLidSwitchExternalPower parameter..."
19
18
  sudo sed -i 's/#HandleLidSwitchExternalPower=suspend/HandleLidSwitchExternalPower=ignore/g' /etc/systemd/logind.conf
20
19
 
21
- echo """
22
- #=======================================================================
20
+ echo """#=======================================================================
23
21
  ✅ COMPLETE | Lid close configuration has been updated
24
22
  #=======================================================================
25
23
  """
@@ -5,15 +5,13 @@
5
5
  # This script fixes the "A start job is running for wait for network to be configured" issue
6
6
  # Reference: https://askubuntu.com/questions/972215/a-start-job-is-running-for-wait-for-network-to-be-configured-ubuntu-server-17-1
7
7
 
8
- echo """
9
- #=======================================================================
8
+ echo """#=======================================================================
10
9
  🔧 CONFIGURING NETWORK | Making network interfaces optional
11
10
  #=======================================================================
12
11
  """
13
12
 
14
13
  echo "📋 Original network config format from 'subiquity':"
15
- echo """
16
- # network:
14
+ echo """# network:
17
15
  # ethernets:
18
16
  # enp0s31f6:
19
17
  # dhcp4: true
@@ -24,8 +22,7 @@ echo """
24
22
  echo "🔄 Modifying netplan configuration..."
25
23
  sudo sed -i 's/dhcp4: true/dhcp4: true\n optional: true/g' /etc/netplan/00-installer-config.yaml
26
24
 
27
- echo """
28
- #=======================================================================
25
+ echo """#=======================================================================
29
26
  ✅ COMPLETE | Network configuration has been updated
30
27
  #=======================================================================
31
28
  """
@@ -83,9 +83,9 @@ def main() -> None:
83
83
  # print(f"âžĄī¸ Found version `{tmp}` for {an_app.stem}.")
84
84
  # app_versions.append(None)
85
85
  print(f"""
86
- {'=' * 70}
86
+ {'=' * 150}
87
87
  🔍 TOOL CHECK | Checking tools (#{len(apps_paths_tmp)}) collected from `{INSTALL_VERSION_ROOT}`
88
- {'=' * 70}
88
+ {'=' * 150}
89
89
  """)
90
90
  apps_paths_raw.print()
91
91
  positive_pct: list[Optional[float]] = []
@@ -120,9 +120,9 @@ def main() -> None:
120
120
  res_df.to_csv(APP_SUMMARY_PATH.with_suffix(".csv").create(parents_only=True), index=False)
121
121
  APP_SUMMARY_PATH.with_suffix(".md").write_text(res_df.to_markdown())
122
122
  print(f"""
123
- {'=' * 70}
123
+ {'=' * 150}
124
124
  📊 SAFETY REPORT | Summary of app scanning results
125
- {'=' * 70}
125
+ {'=' * 150}
126
126
  """)
127
127
  print(res_df)
128
128
 
@@ -176,9 +176,9 @@ class PrecheckedCloudInstaller:
176
176
 
177
177
  if name == "AllEssentials":
178
178
  print(f"""
179
- {'=' * 70}
179
+ {'=' * 150}
180
180
  đŸ“Ĩ DOWNLOAD | Downloading {self.df.shape[0]} apps...
181
- {'=' * 70}
181
+ {'=' * 150}
182
182
  """)
183
183
  print(self.df)
184
184
  _res = L(self.df.app_url).apply(PrecheckedCloudInstaller.install_cli_apps, jobs=20)
@@ -69,9 +69,9 @@ python -m pip freeze {'--exclude-editable' if exclude_editable else ''} > requir
69
69
  """
70
70
  Terminal().run_script(pip_freeze_script, verbose=True, shell="default").print()
71
71
  print(f"""
72
- {'=' * 70}
72
+ {'=' * 150}
73
73
  ✅ SUCCESS | Requirements for version {version} installed successfully
74
- {'=' * 70}
74
+ {'=' * 150}
75
75
  """)
76
76
 
77
77
 
@@ -81,9 +81,9 @@ def main():
81
81
  try:
82
82
  repo = Repo(P.cwd(), search_parent_directories=True)
83
83
  print(f"""
84
- {'=' * 70}
84
+ {'=' * 150}
85
85
  🔍 GIT REPO | Found repository at {repo.working_dir}
86
- {'=' * 70}
86
+ {'=' * 150}
87
87
  """)
88
88
  except InvalidGitRepositoryError as err:
89
89
  print(f"""
@@ -21,10 +21,10 @@ cd {tool_name}
21
21
  cargo install --path .
22
22
  """
23
23
  print(f"""
24
- {'=' * 70}
24
+ {'=' * 150}
25
25
  đŸĻ€ CARGO BUILD | Building Rust project: {tool_name}
26
26
  đŸ“Ļ Source: {url}
27
- {'=' * 70}
27
+ {'=' * 150}
28
28
  """)
29
29
  if platform.system() == "Windows":
30
30
  Terminal(stdout=None).run(f". {P.tmpfile(suffix='.ps1').write_text(script)}", shell="pwsh").print()
@@ -7,9 +7,9 @@ from crocodile.file_management import P
7
7
 
8
8
  def main():
9
9
  print(f"""
10
- {'=' * 70}
10
+ {'=' * 150}
11
11
  🔗 SYMLINK CREATOR | Create symlinks for virtual environments
12
- {'=' * 70}
12
+ {'=' * 150}
13
13
  """)
14
14
  target = P(input("đŸŽ¯ Symlink to which target? ")).expanduser().absolute()
15
15
  source = input(f"📍 Symlink from which source? [default to: CWD/{target.name}] ") or P.cwd().joinpath(target.name)
@@ -18,11 +18,11 @@ def main():
18
18
  # P('.gitignore').modify_text('venv', 'venv', replace_line=True)"
19
19
  source.symlink_to(target, overwrite=True)
20
20
  print(f"""
21
- {'=' * 70}
21
+ {'=' * 150}
22
22
  ✅ SUCCESS | Symlink created successfully
23
23
  📍 Source: {source}
24
24
  đŸŽ¯ Target: {target}
25
- {'=' * 70}
25
+ {'=' * 150}
26
26
  """)
27
27
  return "echo '🔗 Finished creating symlink.'"
28
28
 
@@ -20,13 +20,13 @@ code --profile bitProfile --new-window {file_path}
20
20
  from rich.syntax import Syntax
21
21
  from rich.panel import Panel
22
22
  console = Console()
23
- console.print(f"\n{'=' * 70}")
23
+ console.print(f"\n{'=' * 150}")
24
24
  console.print(Panel(
25
25
  Syntax(code, lexer="bash"),
26
26
  title="🔍 VS CODE API | Opening file in new instance",
27
27
  subtitle=f"📂 {file_path}"
28
28
  ), style="bold blue")
29
- console.print(f"{'=' * 70}\n")
29
+ console.print(f"{'=' * 150}\n")
30
30
 
31
31
  code_path = Path.home().joinpath(".config", "machingconfig", "vscode_api", "code_temp")
32
32
  code_path.parent.mkdir(parents=True, exist_ok=True)
@@ -10,10 +10,10 @@ import argparse
10
10
 
11
11
  def select_interpreter(workspace_root: str):
12
12
  print(f"""
13
- {'=' * 70}
13
+ {'=' * 150}
14
14
  🔗 VSCODE VE LINKER | Linking virtual environment for VS Code
15
15
  📂 Workspace: {workspace_root}
16
- {'=' * 70}
16
+ {'=' * 150}
17
17
  """)
18
18
 
19
19
  path = Path(workspace_root).joinpath('.ve_path')
@@ -44,11 +44,11 @@ def select_interpreter(workspace_root: str):
44
44
  venv_link.symlink_to(target=ve_path.expanduser().absolute())
45
45
 
46
46
  print(f"""
47
- {'=' * 70}
47
+ {'=' * 150}
48
48
  ✅ SUCCESS | Virtual environment linked successfully
49
49
  🔗 Link: {venv_link}
50
50
  đŸŽ¯ Target: {ve_path.expanduser().absolute()}
51
- {'=' * 70}
51
+ {'=' * 150}
52
52
  """)
53
53
 
54
54
 
@@ -10,10 +10,10 @@ import platform
10
10
 
11
11
  def select_interpreter(workspace_root: str):
12
12
  print(f"""
13
- {'=' * 70}
13
+ {'=' * 150}
14
14
  🐍 PYTHON INTERPRETER | Setting up VS Code Python interpreter
15
15
  📂 Workspace: {workspace_root}
16
- {'=' * 70}
16
+ {'=' * 150}
17
17
  """)
18
18
 
19
19
  path = Path(workspace_root).joinpath('.ve_path')
@@ -64,11 +64,11 @@ def select_interpreter(workspace_root: str):
64
64
  Save.json(obj=settings, path=work_space_settings, indent=4)
65
65
 
66
66
  print(f"""
67
- {'=' * 70}
67
+ {'=' * 150}
68
68
  ✅ SUCCESS | Python interpreter configured successfully
69
69
  🐍 Interpreter: {python_path}
70
70
  📄 Settings: {work_space_settings}
71
- {'=' * 70}
71
+ {'=' * 150}
72
72
  """)
73
73
 
74
74
 
@@ -8,10 +8,10 @@ if config is None:
8
8
 
9
9
  def sync_remote(machine_name: str):
10
10
  print(f"""
11
- {'=' * 70}
11
+ {'=' * 150}
12
12
  🔄 SYNC REMOTE | Initiating remote code synchronization
13
13
  đŸ–Ĩī¸ Target machine: {machine_name}
14
- {'=' * 70}
14
+ {'=' * 150}
15
15
  """)
16
16
 
17
17
  machine_config = config.get(machine_name)
@@ -33,13 +33,13 @@ ssh -o "HostName={machine_config['HostName']}" -o "User={machine_config['User']}
33
33
  from rich.panel import Panel
34
34
 
35
35
  console = Console()
36
- console.print(f"\n{'=' * 70}")
36
+ console.print(f"\n{'=' * 150}")
37
37
  console.print(Panel(
38
38
  Syntax(code, lexer="bash"),
39
39
  title=f"🔄 SYNC COMMAND | Connecting to {machine_name}",
40
40
  subtitle=f"🌐 Host: {machine_config['HostName']}"
41
41
  ), style="bold blue")
42
- console.print(f"{'=' * 70}\n")
42
+ console.print(f"{'=' * 150}\n")
43
43
 
44
44
  code_path = Path.home().joinpath(".config", "machingconfig", "vscode_api", "code_temp")
45
45
  code_path.parent.mkdir(parents=True, exist_ok=True)
@@ -52,9 +52,9 @@ ssh -o "HostName={machine_config['HostName']}" -o "User={machine_config['User']}
52
52
  subprocess.run([str(code_path)], shell=True, check=True)
53
53
 
54
54
  print(f"""
55
- {'=' * 70}
55
+ {'=' * 150}
56
56
  ✅ SUCCESS | Remote sync completed successfully
57
57
  đŸ–Ĩī¸ Machine: {machine_name}
58
- {'=' * 70}
58
+ {'=' * 150}
59
59
  """)
60
60
 
@@ -19,10 +19,10 @@ config_dict = {
19
19
 
20
20
  def main(version: Optional[str]):
21
21
  print(f"""
22
- {'=' * 70}
22
+ {'=' * 150}
23
23
  🔄 NGROK INSTALLER | Setting up secure tunnels to localhost
24
24
  đŸ’ģ Platform: {platform.system()}
25
- {'=' * 70}
25
+ {'=' * 150}
26
26
  """)
27
27
 
28
28
  _ = version
@@ -50,10 +50,10 @@ sudo nala update && sudo nala install ngrok
50
50
  raise NotImplementedError(error_msg)
51
51
 
52
52
  print(f"""
53
- {'=' * 70}
53
+ {'=' * 150}
54
54
  âš ī¸ SECURITY WARNING | ngrok has been flagged by some antivirus engines
55
55
  đŸ›Ąī¸ Use at your own risk - flagged by 35% of antivirus engines
56
- {'=' * 70}
56
+ {'=' * 150}
57
57
  """)
58
58
  return program
59
59
 
@@ -13,20 +13,20 @@ config_dict = {
13
13
 
14
14
  def main(version: Optional[str] = None):
15
15
  print(f"""
16
- {'=' * 70}
16
+ {'=' * 150}
17
17
  🤖 AIDER INSTALLER | Installing AI code assistant
18
18
  đŸ’ģ Platform: {platform.system()}
19
19
  🔄 Version: {'latest' if version is None else version}
20
- {'=' * 70}
20
+ {'=' * 150}
21
21
  """)
22
22
 
23
23
  install_script = "uv tool install --force --python python3.12 aider-chat@latest"
24
24
 
25
25
  print(f"""
26
- {'=' * 70}
26
+ {'=' * 150}
27
27
  ✅ SUCCESS | Installation command prepared:
28
28
  📄 Command: {install_script}
29
- {'=' * 70}
29
+ {'=' * 150}
30
30
  """)
31
31
 
32
32
  return install_script
@@ -17,11 +17,11 @@ config_dict = {
17
17
 
18
18
  def main(version: Optional[str]):
19
19
  print(f"""
20
- {'=' * 70}
20
+ {'=' * 150}
21
21
  đŸ–Ĩī¸ ALACRITTY INSTALLER | Installing GPU-accelerated terminal emulator
22
22
  đŸ’ģ Platform: {platform.system()}
23
23
  🔄 Version: {'latest' if version is None else version}
24
- {'=' * 70}
24
+ {'=' * 150}
25
25
  """)
26
26
 
27
27
  _ = version
@@ -54,12 +54,12 @@ git clone https://github.com/alacritty/alacritty-theme ~/.config/alacritty/theme
54
54
  raise NotImplementedError(error_msg)
55
55
 
56
56
  print(f"""
57
- {'=' * 70}
57
+ {'=' * 150}
58
58
  â„šī¸ INFO | Installation will proceed with the following steps:
59
59
  1ī¸âƒŖ Install Alacritty using Cargo
60
60
  2ī¸âƒŖ Create config directories
61
61
  3ī¸âƒŖ Clone theme repository
62
- {'=' * 70}
62
+ {'=' * 150}
63
63
  """)
64
64
 
65
65
  # _res = Terminal(stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE).run_script(script=program, shell="default").print(desc="Running custom installer", capture=True)
@@ -18,11 +18,11 @@ config_dict = {
18
18
 
19
19
  def main(version: Optional[str]):
20
20
  print(f"""
21
- {'=' * 70}
21
+ {'=' * 150}
22
22
  đŸĻ BRAVE BROWSER | Installing privacy-focused web browser
23
23
  đŸ’ģ Platform: {platform.system()}
24
24
  🔄 Version: {'latest' if version is None else version}
25
- {'=' * 70}
25
+ {'=' * 150}
26
26
  """)
27
27
 
28
28
  _ = version
@@ -48,13 +48,13 @@ winget install --Name "Brave Browser" --Id Brave.Brave --source winget --accept-
48
48
  raise NotImplementedError(error_msg)
49
49
 
50
50
  print(f"""
51
- {'=' * 70}
51
+ {'=' * 150}
52
52
  â„šī¸ INFO | Brave Browser features:
53
53
  🔒 Built-in ad blocking
54
54
  đŸ›Ąī¸ Privacy-focused browsing
55
55
  💨 Faster page loading
56
56
  đŸĒ™ Optional crypto rewards
57
- {'=' * 70}
57
+ {'=' * 150}
58
58
  """)
59
59
 
60
60
  # _res = Terminal(stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE).run_script(script=program, shell="default").print(desc="Running custom installer", capture=True)
@@ -18,10 +18,10 @@ config_dict = {
18
18
 
19
19
  def main(version: Optional[str] = None):
20
20
  print(f"""
21
- {'=' * 70}
21
+ {'=' * 150}
22
22
  🔓 BYPASS PAYWALL | Installing paywall bypass extension for Chrome
23
23
  🔄 Version: {'latest' if version is None else version}
24
- {'=' * 70}
24
+ {'=' * 150}
25
25
  """)
26
26
 
27
27
  _ = version
@@ -33,14 +33,14 @@ def main(version: Optional[str] = None):
33
33
  extension_folder = P(folder).joinpath("bypass-paywalls-chrome-master")
34
34
 
35
35
  print(f"""
36
- {'=' * 70}
36
+ {'=' * 150}
37
37
  ✅ SUCCESS | Extension downloaded successfully
38
38
  📂 Location: {extension_folder}
39
39
  â„šī¸ Next steps:
40
40
  1ī¸âƒŖ Open Chrome and navigate to chrome://extensions
41
41
  2ī¸âƒŖ Enable Developer Mode (toggle in top right)
42
42
  3ī¸âƒŖ Click "Load unpacked" and select the extension folder
43
- {'=' * 70}
43
+ {'=' * 150}
44
44
  """)
45
45
 
46
46
  return ""
@@ -17,11 +17,11 @@ config_dict = {
17
17
 
18
18
  def main(version: Optional[str] = None):
19
19
  print(f"""
20
- {'=' * 70}
20
+ {'=' * 150}
21
21
  đŸ’ģ VS CODE INSTALLER | Setting up Visual Studio Code
22
22
  đŸ–Ĩī¸ Platform: {platform.system()}
23
23
  🔄 Version: {'latest' if version is None else version}
24
- {'=' * 70}
24
+ {'=' * 150}
25
25
  """)
26
26
 
27
27
  if platform.system() == 'Linux':
@@ -45,14 +45,14 @@ def main(version: Optional[str] = None):
45
45
  _ = version
46
46
 
47
47
  print(f"""
48
- {'=' * 70}
48
+ {'=' * 150}
49
49
  â„šī¸ INFO | VS Code features:
50
50
  📝 Powerful code editor with IntelliSense
51
51
  🧩 Thousands of extensions available
52
52
  🔍 Integrated debugging
53
53
  🔄 Git integration
54
54
  âš™ī¸ Highly customizable
55
- {'=' * 70}
55
+ {'=' * 150}
56
56
  """)
57
57
 
58
58
  return install_script
@@ -18,11 +18,11 @@ config_dict = {
18
18
 
19
19
  def main(version: Optional[str]):
20
20
  print(f"""
21
- {'=' * 70}
21
+ {'=' * 150}
22
22
  đŸŗ DOCKER INSTALLER | Setting up containerization platform
23
23
  đŸ’ģ Platform: {platform.system()}
24
24
  🔄 Version: {'latest' if version is None else version}
25
- {'=' * 70}
25
+ {'=' * 150}
26
26
  """)
27
27
 
28
28
  _ = version
@@ -50,14 +50,14 @@ def main(version: Optional[str]):
50
50
  raise NotImplementedError(error_msg)
51
51
 
52
52
  print(f"""
53
- {'=' * 70}
53
+ {'=' * 150}
54
54
  â„šī¸ INFO | Docker features:
55
55
  đŸ“Ļ Container-based virtualization
56
56
  🚀 Simplified application deployment
57
57
  🔄 Consistent development environments
58
58
  đŸ›Ąī¸ Isolated application environments
59
59
  📊 Efficient resource utilization
60
- {'=' * 70}
60
+ {'=' * 150}
61
61
  """)
62
62
 
63
63
  # _res = Terminal(stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE).run_script(script=program, shell="default").print(desc="Running custom installer", capture=True)
@@ -26,11 +26,11 @@ config_dict = {
26
26
 
27
27
  def main(version: Optional[str]):
28
28
  print(f"""
29
- {'=' * 70}
29
+ {'=' * 150}
30
30
  đŸŗ DOCKER DESKTOP | Installing Docker Desktop for Ubuntu
31
31
  🔄 Version: {'latest' if version is None else version}
32
32
  📚 Source: https://docs.docker.com/desktop/install/ubuntu/
33
- {'=' * 70}
33
+ {'=' * 150}
34
34
  """)
35
35
 
36
36
  _ = version
@@ -62,12 +62,12 @@ sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin
62
62
 
63
63
  """
64
64
  print(f"""
65
- {'=' * 70}
65
+ {'=' * 150}
66
66
  â„šī¸ INFO | After installation:
67
67
  🔹 Run 'sudo docker run hello-world' to verify installation
68
68
  🔹 Add your user to the docker group with 'sudo usermod -aG docker $USER'
69
69
  🔹 Log out and back in to apply group changes
70
- {'=' * 70}
70
+ {'=' * 150}
71
71
  """)
72
72
 
73
73
  return code
@@ -18,11 +18,11 @@ config_dict = {
18
18
 
19
19
  def main(version: Optional[str]):
20
20
  print(f"""
21
- {'=' * 70}
21
+ {'=' * 150}
22
22
  ⚡ ESPANSO INSTALLER | Setting up text expansion tool
23
23
  🔄 Version: {'latest' if version is None else version}
24
24
  🔗 Source: https://github.com/espanso/espanso
25
- {'=' * 70}
25
+ {'=' * 150}
26
26
  """)
27
27
 
28
28
  _ = version
@@ -35,18 +35,18 @@ def main(version: Optional[str]):
35
35
  env = os.environ["XDG_SESSION_TYPE"]
36
36
  if env == "wayland":
37
37
  print(f"""
38
- {'=' * 70}
38
+ {'=' * 150}
39
39
  đŸ–Ĩī¸ DISPLAY SERVER | Wayland detected
40
40
  đŸ“Ļ Using Wayland-specific package
41
- {'=' * 70}
41
+ {'=' * 150}
42
42
  """)
43
43
  config_dict["filename_template_linux_amd_64"] = "espanso-debian-wayland-amd64.deb"
44
44
  else:
45
45
  print(f"""
46
- {'=' * 70}
46
+ {'=' * 150}
47
47
  đŸ–Ĩī¸ DISPLAY SERVER | X11 detected
48
48
  đŸ“Ļ Using X11-specific package
49
- {'=' * 70}
49
+ {'=' * 150}
50
50
  """)
51
51
  config_dict["filename_template_linux_amd_64"] = "espanso-debian-x11-amd64.deb"
52
52
  else:
@@ -70,13 +70,13 @@ espanso install actually-all-emojis
70
70
  """
71
71
 
72
72
  print(f"""
73
- {'=' * 70}
73
+ {'=' * 150}
74
74
  ✅ SUCCESS | Espanso installation completed
75
75
  📋 Post-installation steps:
76
76
  1ī¸âƒŖ Register Espanso as a service
77
77
  2ī¸âƒŖ Start the Espanso service
78
78
  3ī¸âƒŖ Install the emoji package
79
- {'=' * 70}
79
+ {'=' * 150}
80
80
  """)
81
81
 
82
82
  return config
@@ -20,11 +20,11 @@ ve_name = "goex"
20
20
 
21
21
  def main():
22
22
  print(f"""
23
- {'=' * 70}
23
+ {'=' * 150}
24
24
  đŸĻ GORILLA INSTALLER | Natural language to API converter
25
25
  🌐 Source: https://github.com/ShishirPatil/gorilla
26
26
  đŸ“Ļ Virtual Environment: {ve_name}
27
- {'=' * 70}
27
+ {'=' * 150}
28
28
  """)
29
29
 
30
30
  print("🔄 Preparing installation script...")
@@ -42,12 +42,12 @@ pip install -e .
42
42
  """
43
43
 
44
44
  print(f"""
45
- {'=' * 70}
45
+ {'=' * 150}
46
46
  📋 INSTALLATION STEPS:
47
47
  1ī¸âƒŖ Creating Python 3.11 virtual environment: {ve_name}
48
48
  2ī¸âƒŖ Cloning Gorilla repository to ~/code/foreign
49
49
  3ī¸âƒŖ Installing Gorilla in development mode
50
- {'=' * 70}
50
+ {'=' * 150}
51
51
 
52
52
  ✅ Installation script prepared successfully!
53
53
  """)
@@ -23,11 +23,11 @@ config_dict = {
23
23
 
24
24
  def main(version: Optional[str]):
25
25
  print(f"""
26
- {'=' * 70}
26
+ {'=' * 150}
27
27
  🌙 LUNARVIM INSTALLER | Setting up Neovim-based IDE
28
28
  🔄 Version: {'latest' if version is None else version}
29
29
  📚 Branch: release-1.4/neovim-0.9
30
- {'=' * 70}
30
+ {'=' * 150}
31
31
  """)
32
32
 
33
33
  _ = version
@@ -55,14 +55,14 @@ LV_BRANCH='release-1.4/neovim-0.9' bash <(curl -s https://raw.githubusercontent.
55
55
  raise NotImplementedError(error_msg)
56
56
 
57
57
  print(f"""
58
- {'=' * 70}
58
+ {'=' * 150}
59
59
  â„šī¸ INFO | LunarVim features:
60
60
  📝 IDE-like experience for Neovim
61
61
  🔌 Built-in plugin management
62
62
  đŸ› ī¸ LSP configuration out of the box
63
63
  🔍 Powerful fuzzy finding
64
64
  âš™ī¸ Simple and unified configuration
65
- {'=' * 70}
65
+ {'=' * 150}
66
66
 
67
67
  âš ī¸ NOTE: The installer will prompt for user input during installation.
68
68
  """)