machineconfig 3.7__py3-none-any.whl → 7.69__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of machineconfig might be problematic. Click here for more details.
- machineconfig/__init__.py +0 -28
- machineconfig/cluster/remote/distribute.py +0 -1
- machineconfig/cluster/remote/file_manager.py +0 -2
- machineconfig/cluster/remote/script_execution.py +1 -2
- machineconfig/cluster/sessions_managers/{enhanced_command_runner.py → helpers/enhanced_command_runner.py} +4 -6
- machineconfig/cluster/sessions_managers/helpers/load_balancer_helper.py +145 -0
- machineconfig/cluster/sessions_managers/utils/load_balancer.py +53 -0
- machineconfig/cluster/sessions_managers/utils/maker.py +69 -0
- machineconfig/cluster/sessions_managers/wt_local.py +128 -330
- machineconfig/cluster/sessions_managers/wt_local_manager.py +53 -187
- machineconfig/cluster/sessions_managers/wt_remote.py +51 -43
- machineconfig/cluster/sessions_managers/wt_remote_manager.py +49 -197
- machineconfig/cluster/sessions_managers/wt_utils/layout_generator.py +6 -19
- machineconfig/cluster/sessions_managers/wt_utils/manager_persistence.py +52 -0
- machineconfig/cluster/sessions_managers/wt_utils/monitoring_helpers.py +50 -0
- machineconfig/cluster/sessions_managers/wt_utils/status_reporter.py +4 -2
- machineconfig/cluster/sessions_managers/wt_utils/status_reporting.py +76 -0
- machineconfig/cluster/sessions_managers/wt_utils/wt_helpers.py +199 -0
- machineconfig/cluster/sessions_managers/zellij_local.py +81 -375
- machineconfig/cluster/sessions_managers/zellij_local_manager.py +22 -172
- machineconfig/cluster/sessions_managers/zellij_remote.py +40 -41
- machineconfig/cluster/sessions_managers/zellij_remote_manager.py +13 -10
- machineconfig/cluster/sessions_managers/zellij_utils/example_usage.py +4 -8
- machineconfig/cluster/sessions_managers/zellij_utils/layout_generator.py +5 -20
- machineconfig/cluster/sessions_managers/zellij_utils/process_monitor.py +3 -9
- machineconfig/cluster/sessions_managers/zellij_utils/status_reporter.py +3 -1
- machineconfig/cluster/sessions_managers/zellij_utils/zellij_local_helper.py +298 -0
- machineconfig/cluster/sessions_managers/zellij_utils/zellij_local_helper_restart.py +77 -0
- machineconfig/cluster/sessions_managers/zellij_utils/zellij_local_helper_with_panes.py +228 -0
- machineconfig/cluster/sessions_managers/zellij_utils/zellij_local_manager_helper.py +165 -0
- machineconfig/jobs/{python → installer}/check_installations.py +7 -21
- machineconfig/jobs/installer/custom/boxes.py +61 -0
- machineconfig/jobs/installer/custom/gh.py +128 -0
- machineconfig/jobs/{python_custom_installers → installer/custom}/hx.py +84 -18
- machineconfig/jobs/installer/custom_dev/alacritty.py +86 -0
- machineconfig/jobs/installer/custom_dev/brave.py +82 -0
- machineconfig/jobs/installer/custom_dev/bypass_paywall.py +59 -0
- machineconfig/jobs/installer/custom_dev/cloudflare_warp_cli.py +23 -0
- machineconfig/jobs/installer/custom_dev/code.py +63 -0
- machineconfig/jobs/{python_custom_installers/dev → installer/custom_dev}/cursor.py +7 -7
- machineconfig/jobs/installer/custom_dev/dubdb_adbc.py +30 -0
- machineconfig/jobs/installer/custom_dev/espanso.py +117 -0
- machineconfig/jobs/installer/custom_dev/goes.py +68 -0
- machineconfig/jobs/installer/custom_dev/lvim.py +89 -0
- machineconfig/jobs/installer/custom_dev/nerdfont.py +111 -0
- machineconfig/jobs/installer/custom_dev/nerfont_windows_helper.py +149 -0
- machineconfig/jobs/installer/custom_dev/redis.py +88 -0
- machineconfig/jobs/installer/custom_dev/sysabc.py +145 -0
- machineconfig/jobs/installer/custom_dev/wezterm.py +92 -0
- machineconfig/jobs/{python_custom_installers/dev → installer/custom_dev}/winget.py +2 -3
- machineconfig/jobs/installer/installer_data.json +3440 -0
- machineconfig/jobs/{python_custom_installers/scripts/linux → installer/linux_scripts}/brave.sh +4 -14
- machineconfig/jobs/{python_custom_installers/scripts/linux/warp-cli.sh → installer/linux_scripts/cloudflare_warp_cli.sh} +5 -17
- machineconfig/jobs/{python_custom_installers/scripts/linux → installer/linux_scripts}/docker.sh +6 -18
- machineconfig/jobs/installer/linux_scripts/docker_start.sh +37 -0
- machineconfig/jobs/{python_custom_installers/scripts/linux → installer/linux_scripts}/edge.sh +3 -11
- machineconfig/jobs/{linux/msc → installer/linux_scripts}/lid.sh +2 -8
- machineconfig/jobs/{python_custom_installers/scripts/linux → installer/linux_scripts}/nerdfont.sh +5 -17
- machineconfig/jobs/{linux/msc → installer/linux_scripts}/network.sh +2 -8
- machineconfig/jobs/installer/linux_scripts/ngrok.sh +6 -0
- machineconfig/jobs/installer/linux_scripts/q.sh +9 -0
- machineconfig/jobs/{python_custom_installers/scripts/linux → installer/linux_scripts}/redis.sh +6 -17
- machineconfig/jobs/{python_custom_installers/scripts/linux → installer/linux_scripts}/vscode.sh +5 -17
- machineconfig/jobs/{python_custom_installers/scripts/linux → installer/linux_scripts}/wezterm.sh +4 -12
- machineconfig/jobs/installer/package_groups.py +255 -0
- machineconfig/logger.py +0 -1
- machineconfig/profile/backup.toml +49 -0
- machineconfig/profile/bash_shell_profiles.md +11 -0
- machineconfig/profile/create_helper.py +74 -0
- machineconfig/profile/create_links.py +288 -0
- machineconfig/profile/create_links_export.py +100 -0
- machineconfig/profile/create_shell_profile.py +136 -0
- machineconfig/profile/mapper.toml +258 -0
- machineconfig/scripts/__init__.py +0 -4
- machineconfig/scripts/linux/{share_cloud.sh → other/share_cloud.sh} +14 -25
- machineconfig/scripts/linux/wrap_mcfg +47 -0
- machineconfig/scripts/nu/wrap_mcfg.nu +69 -0
- machineconfig/scripts/python/agents.py +198 -0
- machineconfig/scripts/python/ai/command_runner/command_runner.sh +9 -0
- machineconfig/scripts/python/ai/command_runner/prompt.txt +9 -0
- machineconfig/scripts/python/ai/generate_files.py +307 -42
- machineconfig/scripts/python/ai/{mcinit.py → initai.py} +3 -38
- machineconfig/scripts/python/ai/scripts/lint_and_type_check.ps1 +114 -0
- machineconfig/scripts/python/ai/scripts/lint_and_type_check.sh +88 -22
- machineconfig/scripts/python/ai/solutions/_shared.py +9 -1
- machineconfig/scripts/python/ai/solutions/copilot/instructions/python/dev.instructions.md +4 -1
- machineconfig/scripts/python/ai/solutions/copilot/prompts/pyright_fix.md +16 -0
- machineconfig/scripts/python/ai/solutions/gemini/settings.json +1 -1
- machineconfig/scripts/python/ai/solutions/generic.py +27 -4
- machineconfig/scripts/python/ai/vscode_tasks.py +37 -0
- machineconfig/scripts/python/cloud.py +29 -0
- machineconfig/scripts/python/croshell.py +129 -198
- machineconfig/scripts/python/define.py +31 -0
- machineconfig/scripts/python/devops.py +45 -131
- machineconfig/scripts/python/devops_navigator.py +6 -0
- machineconfig/scripts/python/env_manager/__init__.py +1 -0
- machineconfig/scripts/python/env_manager/path_manager_backend.py +47 -0
- machineconfig/scripts/python/env_manager/path_manager_tui.py +228 -0
- machineconfig/scripts/python/fire_jobs.py +166 -235
- machineconfig/scripts/python/ftpx.py +164 -100
- machineconfig/scripts/python/helpers/ast_search.py +74 -0
- machineconfig/scripts/python/helpers/repo_rag.py +325 -0
- machineconfig/scripts/python/helpers/symantic_search.py +25 -0
- machineconfig/scripts/python/helpers_agents/agentic_frameworks/fire_crush.json +14 -0
- machineconfig/scripts/python/helpers_agents/agentic_frameworks/fire_crush.py +37 -0
- machineconfig/scripts/python/helpers_agents/agentic_frameworks/fire_cursor_agents.py +22 -0
- machineconfig/scripts/python/helpers_agents/agentic_frameworks/fire_gemini.py +42 -0
- machineconfig/scripts/python/helpers_agents/agentic_frameworks/fire_qwen.py +30 -0
- machineconfig/scripts/python/helpers_agents/fire_agents_help_launch.py +110 -0
- machineconfig/scripts/python/helpers_agents/fire_agents_helper_types.py +34 -0
- machineconfig/scripts/python/helpers_agents/fire_agents_load_balancer.py +22 -0
- machineconfig/scripts/python/helpers_agents/templates/prompt.txt +6 -0
- machineconfig/scripts/python/helpers_agents/templates/template.ps1 +14 -0
- machineconfig/scripts/python/helpers_agents/templates/template.sh +24 -0
- machineconfig/scripts/python/{cloud_copy.py → helpers_cloud/cloud_copy.py} +52 -39
- machineconfig/scripts/python/{cloud_mount.py → helpers_cloud/cloud_mount.py} +13 -18
- machineconfig/scripts/python/helpers_cloud/cloud_sync.py +81 -0
- machineconfig/scripts/python/{helpers → helpers_cloud}/helpers2.py +3 -3
- machineconfig/scripts/python/helpers_croshell/crosh.py +39 -0
- machineconfig/scripts/python/{scheduler.py → helpers_croshell/scheduler.py} +0 -1
- machineconfig/scripts/python/{start_slidev.py → helpers_croshell/start_slidev.py} +32 -20
- machineconfig/scripts/python/helpers_devops/cli_config.py +95 -0
- machineconfig/scripts/python/helpers_devops/cli_config_dotfile.py +89 -0
- machineconfig/scripts/python/helpers_devops/cli_data.py +25 -0
- machineconfig/scripts/python/helpers_devops/cli_nw.py +134 -0
- machineconfig/scripts/python/helpers_devops/cli_repos.py +182 -0
- machineconfig/scripts/python/helpers_devops/cli_self.py +134 -0
- machineconfig/scripts/python/helpers_devops/cli_share_file.py +137 -0
- machineconfig/scripts/python/helpers_devops/cli_share_server.py +141 -0
- machineconfig/scripts/python/helpers_devops/cli_terminal.py +156 -0
- machineconfig/scripts/python/helpers_devops/cli_utils.py +96 -0
- machineconfig/scripts/python/{devops_backup_retrieve.py → helpers_devops/devops_backup_retrieve.py} +7 -10
- machineconfig/scripts/python/helpers_devops/devops_status.py +511 -0
- machineconfig/scripts/python/helpers_devops/devops_update_repos.py +269 -0
- machineconfig/scripts/python/helpers_devops/themes/choose_pwsh_theme.ps1 +81 -0
- machineconfig/scripts/python/helpers_devops/themes/choose_starship_theme.bash +3 -0
- machineconfig/scripts/python/{choose_wezterm_theme.py → helpers_devops/themes/choose_wezterm_theme.py} +2 -2
- machineconfig/scripts/python/{cloud_manager.py → helpers_fire_command/cloud_manager.py} +0 -2
- machineconfig/scripts/python/{helpers/helpers4.py → helpers_fire_command/file_wrangler.py} +57 -89
- machineconfig/scripts/python/helpers_fire_command/fire_jobs_args_helper.py +145 -0
- machineconfig/scripts/python/helpers_fire_command/fire_jobs_route_helper.py +110 -0
- machineconfig/scripts/python/helpers_msearch/__init__.py +5 -0
- machineconfig/scripts/{linux → python/helpers_msearch/scripts_linux}/fzfag +1 -1
- machineconfig/scripts/{linux → python/helpers_msearch/scripts_linux}/fzfg +1 -1
- machineconfig/scripts/{linux → python/helpers_msearch/scripts_linux}/fzfrga +1 -1
- machineconfig/scripts/python/helpers_navigator/__init__.py +20 -0
- machineconfig/scripts/python/helpers_navigator/command_builder.py +111 -0
- machineconfig/scripts/python/helpers_navigator/command_detail.py +44 -0
- machineconfig/scripts/python/helpers_navigator/command_tree.py +620 -0
- machineconfig/scripts/python/helpers_navigator/data_models.py +28 -0
- machineconfig/scripts/python/helpers_navigator/main_app.py +272 -0
- machineconfig/scripts/python/helpers_navigator/search_bar.py +15 -0
- machineconfig/scripts/python/helpers_repos/action.py +209 -0
- machineconfig/scripts/python/helpers_repos/action_helper.py +150 -0
- machineconfig/scripts/python/{repos_helper_clone.py → helpers_repos/clone.py} +6 -7
- machineconfig/scripts/python/helpers_repos/cloud_repo_sync.py +218 -0
- machineconfig/scripts/python/helpers_repos/count_lines.py +348 -0
- machineconfig/scripts/python/helpers_repos/count_lines_frontend.py +17 -0
- machineconfig/scripts/python/helpers_repos/entrypoint.py +77 -0
- machineconfig/scripts/python/helpers_repos/grource.py +340 -0
- machineconfig/scripts/python/{repos_helper_record.py → helpers_repos/record.py} +7 -4
- machineconfig/scripts/python/helpers_repos/sync.py +66 -0
- machineconfig/scripts/python/{repos_helper_update.py → helpers_repos/update.py} +3 -3
- machineconfig/scripts/python/helpers_sessions/sessions_multiprocess.py +58 -0
- machineconfig/scripts/python/helpers_utils/download.py +152 -0
- machineconfig/scripts/python/helpers_utils/path.py +108 -0
- machineconfig/scripts/python/interactive.py +187 -0
- machineconfig/scripts/python/mcfg_entry.py +63 -0
- machineconfig/scripts/python/msearch.py +40 -0
- machineconfig/scripts/python/{devops_add_identity.py → nw/devops_add_identity.py} +1 -3
- machineconfig/scripts/python/{devops_add_ssh_key.py → nw/devops_add_ssh_key.py} +74 -44
- machineconfig/scripts/{linux → python/nw}/mount_nfs +1 -1
- machineconfig/scripts/python/{mount_nfs.py → nw/mount_nfs.py} +19 -16
- machineconfig/scripts/{linux → python/nw}/mount_nw_drive +1 -2
- machineconfig/scripts/python/{mount_ssh.py → nw/mount_ssh.py} +7 -8
- machineconfig/scripts/python/{onetimeshare.py → nw/onetimeshare.py} +0 -1
- machineconfig/scripts/python/nw/ssh_debug_linux.py +391 -0
- machineconfig/scripts/python/nw/ssh_debug_windows.py +338 -0
- machineconfig/scripts/python/{wifi_conn.py → nw/wifi_conn.py} +1 -51
- machineconfig/scripts/python/nw/wsl_windows_transfer.py +67 -0
- machineconfig/scripts/python/sessions.py +167 -0
- machineconfig/scripts/python/terminal.py +127 -0
- machineconfig/scripts/python/utils.py +66 -0
- machineconfig/scripts/windows/mounts/Restore-ThunderbirdProfile.ps1 +92 -0
- machineconfig/scripts/windows/{mount_nfs.ps1 → mounts/mount_nfs.ps1} +1 -3
- machineconfig/scripts/windows/{mount_ssh.ps1 → mounts/mount_ssh.ps1} +1 -1
- machineconfig/scripts/windows/{share_smb.ps1 → mounts/share_smb.ps1} +0 -6
- machineconfig/scripts/windows/wrap_mcfg.ps1 +60 -0
- machineconfig/settings/broot/br.sh +0 -4
- machineconfig/settings/broot/conf.toml +1 -1
- machineconfig/settings/helix/config.toml +16 -0
- machineconfig/settings/helix/languages.toml +13 -4
- machineconfig/settings/helix/yazi-picker.sh +12 -0
- machineconfig/settings/lf/linux/exe/lfcd.sh +1 -0
- machineconfig/settings/lf/linux/exe/previewer.sh +9 -3
- machineconfig/settings/lf/linux/lfrc +10 -12
- machineconfig/settings/lf/windows/fzf_edit.ps1 +2 -2
- machineconfig/settings/lf/windows/lfcd.ps1 +1 -1
- machineconfig/settings/lf/windows/lfrc +18 -38
- machineconfig/settings/lf/windows/mkfile.ps1 +1 -1
- machineconfig/settings/linters/.ruff.toml +1 -1
- machineconfig/settings/lvim/windows/archive/config_additional.lua +0 -6
- machineconfig/settings/marimo/marimo.toml +80 -0
- machineconfig/settings/marimo/snippets/globalize.py +34 -0
- machineconfig/settings/pistol/pistol.conf +1 -1
- machineconfig/settings/shells/bash/init.sh +55 -31
- machineconfig/settings/shells/nushell/config.nu +1 -34
- machineconfig/settings/shells/nushell/init.nu +127 -0
- machineconfig/settings/shells/pwsh/init.ps1 +61 -43
- machineconfig/settings/shells/starship/starship.toml +16 -0
- machineconfig/settings/shells/wezterm/wezterm.lua +2 -0
- machineconfig/settings/shells/wt/settings.json +32 -17
- machineconfig/settings/shells/zsh/init.sh +89 -0
- machineconfig/settings/svim/linux/init.toml +0 -4
- machineconfig/settings/svim/windows/init.toml +0 -3
- machineconfig/settings/yazi/init.lua +57 -0
- machineconfig/settings/yazi/keymap_linux.toml +79 -0
- machineconfig/settings/yazi/keymap_windows.toml +78 -0
- machineconfig/settings/yazi/shell/yazi_cd.ps1 +33 -0
- machineconfig/settings/yazi/shell/yazi_cd.sh +8 -0
- machineconfig/settings/yazi/yazi.toml +14 -1
- machineconfig/setup_linux/__init__.py +10 -0
- machineconfig/setup_linux/apps_desktop.sh +89 -0
- machineconfig/setup_linux/apps_gui.sh +64 -0
- machineconfig/setup_linux/{nix → others}/cli_installation.sh +9 -29
- machineconfig/setup_linux/ssh/openssh_all.sh +25 -0
- machineconfig/setup_linux/ssh/openssh_wsl.sh +38 -0
- machineconfig/setup_linux/uv.sh +15 -0
- machineconfig/setup_linux/web_shortcuts/interactive.sh +28 -203
- machineconfig/setup_mac/__init__.py +16 -0
- machineconfig/setup_mac/apps_gui.sh +248 -0
- machineconfig/setup_mac/ssh/openssh_setup.sh +114 -0
- machineconfig/setup_mac/uv.sh +36 -0
- machineconfig/setup_windows/__init__.py +8 -0
- machineconfig/setup_windows/others/power_options.ps1 +7 -0
- machineconfig/setup_windows/ssh/add-sshkey.ps1 +29 -0
- machineconfig/setup_windows/ssh/add_identity.ps1 +11 -0
- machineconfig/setup_windows/ssh/openssh-server.ps1 +37 -0
- machineconfig/setup_windows/uv.ps1 +17 -0
- machineconfig/setup_windows/web_shortcuts/interactive.ps1 +28 -189
- machineconfig/setup_windows/web_shortcuts/quick_init.ps1 +17 -0
- machineconfig/setup_windows/wt_and_pwsh/set_wt_settings.py +37 -23
- machineconfig/utils/accessories.py +52 -12
- machineconfig/utils/cloud/onedrive/README.md +139 -0
- machineconfig/utils/code.py +140 -93
- machineconfig/utils/files/art/fat_croco.txt +10 -0
- machineconfig/utils/files/art/halfwit_croco.txt +9 -0
- machineconfig/utils/files/art/happy_croco.txt +22 -0
- machineconfig/utils/files/art/water_croco.txt +11 -0
- machineconfig/utils/files/ascii_art.py +118 -0
- machineconfig/utils/files/dbms.py +257 -0
- machineconfig/utils/files/headers.py +68 -0
- machineconfig/utils/files/ouch/decompress.py +45 -0
- machineconfig/utils/files/read.py +95 -0
- machineconfig/utils/installer_utils/github_release_bulk.py +188 -0
- machineconfig/utils/installer_utils/install_from_url.py +180 -0
- machineconfig/utils/installer_utils/installer_class.py +239 -316
- machineconfig/utils/installer_utils/installer_cli.py +186 -0
- machineconfig/utils/installer_utils/{installer_abc.py → installer_locator_utils.py} +90 -5
- machineconfig/utils/installer_utils/installer_runner.py +191 -0
- machineconfig/utils/io.py +77 -24
- machineconfig/utils/links.py +309 -100
- machineconfig/utils/meta.py +255 -0
- machineconfig/utils/notifications.py +1 -1
- machineconfig/utils/options.py +19 -47
- machineconfig/utils/path_extended.py +111 -121
- machineconfig/utils/path_helper.py +75 -22
- machineconfig/utils/procs.py +50 -74
- machineconfig/utils/scheduler.py +94 -97
- machineconfig/utils/scheduling.py +0 -3
- machineconfig/utils/schemas/fire_agents/fire_agents_input.py +5 -17
- machineconfig/utils/schemas/installer/installer_types.py +28 -6
- machineconfig/utils/schemas/layouts/layout_types.py +34 -1
- machineconfig/utils/source_of_truth.py +3 -6
- machineconfig/utils/ssh.py +742 -254
- machineconfig/utils/ssh_utils/utils.py +0 -0
- machineconfig/utils/terminal.py +3 -140
- machineconfig/utils/tst.py +20 -0
- machineconfig/utils/upgrade_packages.py +109 -28
- machineconfig/utils/ve.py +13 -5
- machineconfig-7.69.dist-info/METADATA +124 -0
- machineconfig-7.69.dist-info/RECORD +454 -0
- machineconfig-7.69.dist-info/entry_points.txt +15 -0
- machineconfig/cluster/templates/cli_click.py +0 -102
- machineconfig/cluster/templates/cli_gooey.py +0 -115
- machineconfig/cluster/templates/utils.py +0 -51
- machineconfig/jobs/linux/msc/cli_agents.sh +0 -32
- machineconfig/jobs/python/create_bootable_media.py +0 -16
- machineconfig/jobs/python/python_cargo_build_share.py +0 -59
- machineconfig/jobs/python/python_ve_symlink.py +0 -29
- machineconfig/jobs/python/tasks.py +0 -3
- machineconfig/jobs/python/vscode/api.py +0 -48
- machineconfig/jobs/python/vscode/link_ve.py +0 -63
- machineconfig/jobs/python/vscode/select_interpreter.py +0 -87
- machineconfig/jobs/python/vscode/sync_code.py +0 -58
- machineconfig/jobs/python_custom_installers/archive/ngrok.py +0 -63
- machineconfig/jobs/python_custom_installers/dev/aider.py +0 -37
- machineconfig/jobs/python_custom_installers/dev/alacritty.py +0 -65
- machineconfig/jobs/python_custom_installers/dev/brave.py +0 -71
- machineconfig/jobs/python_custom_installers/dev/bypass_paywall.py +0 -50
- machineconfig/jobs/python_custom_installers/dev/code.py +0 -51
- machineconfig/jobs/python_custom_installers/dev/docker_desktop.py +0 -78
- machineconfig/jobs/python_custom_installers/dev/espanso.py +0 -90
- machineconfig/jobs/python_custom_installers/dev/goes.py +0 -55
- machineconfig/jobs/python_custom_installers/dev/lvim.py +0 -77
- machineconfig/jobs/python_custom_installers/dev/nerdfont.py +0 -68
- machineconfig/jobs/python_custom_installers/dev/redis.py +0 -65
- machineconfig/jobs/python_custom_installers/dev/reverse_proxy.md +0 -31
- machineconfig/jobs/python_custom_installers/dev/wezterm.py +0 -70
- machineconfig/jobs/python_custom_installers/docker.py +0 -74
- machineconfig/jobs/python_custom_installers/gh.py +0 -97
- machineconfig/jobs/python_custom_installers/scripts/linux/docker_start.sh +0 -45
- machineconfig/jobs/python_custom_installers/scripts/linux/pgsql.sh +0 -49
- machineconfig/jobs/python_custom_installers/scripts/linux/timescaledb.sh +0 -85
- machineconfig/jobs/python_custom_installers/warp-cli.py +0 -71
- machineconfig/jobs/python_generic_installers/config.json +0 -603
- machineconfig/jobs/python_generic_installers/config.json.bak +0 -414
- machineconfig/jobs/python_generic_installers/dev/config.archive.json +0 -18
- machineconfig/jobs/python_generic_installers/dev/config.json +0 -825
- machineconfig/jobs/python_generic_installers/dev/config.json.bak +0 -565
- machineconfig/jobs/python_linux_installers/archive/config.json +0 -18
- machineconfig/jobs/python_linux_installers/archive/config.json.bak +0 -10
- machineconfig/jobs/python_linux_installers/config.json +0 -145
- machineconfig/jobs/python_linux_installers/config.json.bak +0 -110
- machineconfig/jobs/python_linux_installers/dev/config.json +0 -276
- machineconfig/jobs/python_linux_installers/dev/config.json.bak +0 -206
- machineconfig/jobs/python_windows_installers/archive/file.json +0 -11
- machineconfig/jobs/python_windows_installers/config.json +0 -82
- machineconfig/jobs/python_windows_installers/config.json.bak +0 -56
- machineconfig/jobs/python_windows_installers/dev/config.json +0 -4
- machineconfig/jobs/python_windows_installers/dev/config.json.bak +0 -3
- machineconfig/jobs/windows/archive/archive_pygraphviz.ps1 +0 -14
- machineconfig/jobs/windows/start_terminal.ps1 +0 -6
- machineconfig/jobs/windows/startup_file.cmd +0 -2
- machineconfig/profile/create.py +0 -169
- machineconfig/profile/shell.py +0 -176
- machineconfig/scripts/cloud/init.sh +0 -119
- machineconfig/scripts/linux/choose_wezterm_theme +0 -3
- machineconfig/scripts/linux/cloud_copy +0 -2
- machineconfig/scripts/linux/cloud_mount +0 -2
- machineconfig/scripts/linux/cloud_repo_sync +0 -2
- machineconfig/scripts/linux/cloud_sync +0 -2
- machineconfig/scripts/linux/croshell +0 -3
- machineconfig/scripts/linux/devops +0 -2
- machineconfig/scripts/linux/fire +0 -2
- machineconfig/scripts/linux/fire_agents +0 -2
- machineconfig/scripts/linux/ftpx +0 -2
- machineconfig/scripts/linux/fzf2g +0 -21
- machineconfig/scripts/linux/fzffg +0 -25
- machineconfig/scripts/linux/gh_models +0 -2
- machineconfig/scripts/linux/kill_process +0 -2
- machineconfig/scripts/linux/mcinit +0 -2
- machineconfig/scripts/linux/programs +0 -21
- machineconfig/scripts/linux/repos +0 -2
- machineconfig/scripts/linux/scheduler +0 -2
- machineconfig/scripts/linux/share_smb +0 -1
- machineconfig/scripts/linux/start_slidev +0 -2
- machineconfig/scripts/linux/start_terminals +0 -3
- machineconfig/scripts/linux/warp-cli.sh +0 -122
- machineconfig/scripts/linux/wifi_conn +0 -2
- machineconfig/scripts/linux/z_ls +0 -104
- machineconfig/scripts/python/ai/solutions/copilot/prompts/allLintersAndTypeCheckers.prompt.md +0 -5
- machineconfig/scripts/python/archive/im2text.py +0 -34
- machineconfig/scripts/python/archive/tmate_conn.py +0 -41
- machineconfig/scripts/python/archive/tmate_start.py +0 -44
- machineconfig/scripts/python/cloud_repo_sync.py +0 -192
- machineconfig/scripts/python/cloud_sync.py +0 -85
- machineconfig/scripts/python/devops_devapps_install.py +0 -202
- machineconfig/scripts/python/devops_update_repos.py +0 -180
- machineconfig/scripts/python/dotfile.py +0 -52
- machineconfig/scripts/python/fire_agents.py +0 -176
- machineconfig/scripts/python/fire_agents_help_launch.py +0 -143
- machineconfig/scripts/python/fire_agents_load_balancer.py +0 -50
- machineconfig/scripts/python/fire_jobs_args_helper.py +0 -84
- machineconfig/scripts/python/fire_jobs_layout_helper.py +0 -66
- machineconfig/scripts/python/get_zellij_cmd.py +0 -15
- machineconfig/scripts/python/gh_models.py +0 -104
- machineconfig/scripts/python/helpers/repo_sync_helpers.py +0 -114
- machineconfig/scripts/python/repos.py +0 -160
- machineconfig/scripts/python/snapshot.py +0 -25
- machineconfig/scripts/python/start_terminals.py +0 -121
- machineconfig/scripts/python/wsl_windows_transfer.py +0 -72
- machineconfig/scripts/windows/choose_wezterm_theme.ps1 +0 -1
- machineconfig/scripts/windows/cloud_copy.ps1 +0 -1
- machineconfig/scripts/windows/cloud_mount.ps1 +0 -1
- machineconfig/scripts/windows/cloud_repo_sync.ps1 +0 -1
- machineconfig/scripts/windows/cloud_sync.ps1 +0 -1
- machineconfig/scripts/windows/croshell.ps1 +0 -1
- machineconfig/scripts/windows/devops.ps1 +0 -1
- machineconfig/scripts/windows/dotfile.ps1 +0 -1
- machineconfig/scripts/windows/fire.ps1 +0 -1
- machineconfig/scripts/windows/ftpx.ps1 +0 -1
- machineconfig/scripts/windows/gpt.ps1 +0 -1
- machineconfig/scripts/windows/grep.ps1 +0 -2
- machineconfig/scripts/windows/kill_process.ps1 +0 -1
- machineconfig/scripts/windows/mcinit.ps1 +0 -1
- machineconfig/scripts/windows/nano.ps1 +0 -3
- machineconfig/scripts/windows/pomodoro.ps1 +0 -1
- machineconfig/scripts/windows/reload_path.ps1 +0 -3
- machineconfig/scripts/windows/repos.ps1 +0 -1
- machineconfig/scripts/windows/scheduler.ps1 +0 -1
- machineconfig/scripts/windows/snapshot.ps1 +0 -1
- machineconfig/scripts/windows/start_slidev.ps1 +0 -1
- machineconfig/scripts/windows/start_terminals.ps1 +0 -1
- machineconfig/scripts/windows/wifi_conn.ps1 +0 -2
- machineconfig/scripts/windows/wsl_rdp_windows_port_forwarding.ps1 +0 -46
- machineconfig/scripts/windows/wsl_ssh_windows_port_forwarding.ps1 +0 -76
- machineconfig/settings/lf/linux/exe/fzf_nano.sh +0 -16
- machineconfig/setup_linux/others/openssh-server_add_pub_key.sh +0 -57
- machineconfig/setup_linux/web_shortcuts/ascii_art.sh +0 -93
- machineconfig/setup_linux/web_shortcuts/croshell.sh +0 -11
- machineconfig/setup_linux/web_shortcuts/ssh.sh +0 -52
- machineconfig/setup_windows/web_shortcuts/all.ps1 +0 -18
- machineconfig/setup_windows/web_shortcuts/ascii_art.ps1 +0 -36
- machineconfig/setup_windows/web_shortcuts/croshell.ps1 +0 -16
- machineconfig/setup_windows/web_shortcuts/ssh.ps1 +0 -11
- machineconfig/setup_windows/wt_and_pwsh/install_nerd_fonts.py +0 -100
- machineconfig/utils/ai/generate_file_checklist.py +0 -68
- machineconfig/utils/installer.py +0 -255
- machineconfig-3.7.dist-info/METADATA +0 -165
- machineconfig-3.7.dist-info/RECORD +0 -432
- machineconfig-3.7.dist-info/entry_points.txt +0 -18
- machineconfig/cluster/{templates → remote}/run_cloud.py +0 -0
- machineconfig/cluster/{templates → remote}/run_cluster.py +0 -0
- machineconfig/cluster/{templates → remote}/run_remote.py +0 -0
- machineconfig/jobs/{python → installer}/__init__.py +0 -0
- machineconfig/jobs/{python_custom_installers → installer/custom_dev}/__init__.py +0 -0
- machineconfig/{setup_windows/wt_and_pwsh → jobs/installer/powershell_scripts}/install_fonts.ps1 +0 -0
- machineconfig/scripts/linux/{share_nfs → other/share_nfs} +0 -0
- machineconfig/scripts/linux/{start_docker → other/start_docker} +0 -0
- machineconfig/scripts/linux/{switch_ip → other/switch_ip} +0 -0
- machineconfig/{jobs/python_generic_installers → scripts/python/helpers_agents}/__init__.py +0 -0
- machineconfig/{jobs/python_linux_installers → scripts/python/helpers_agents/agentic_frameworks}/__init__.py +0 -0
- machineconfig/scripts/python/{fire_agents_help_search.py → helpers_agents/fire_agents_help_search.py} +0 -0
- machineconfig/{jobs/python_linux_installers/dev → scripts/python/helpers_cloud}/__init__.py +0 -0
- machineconfig/scripts/python/{helpers → helpers_cloud}/cloud_helpers.py +1 -1
- /machineconfig/scripts/python/{helpers → helpers_cloud}/helpers5.py +0 -0
- /machineconfig/{jobs/python_windows_installers → scripts/python/helpers_croshell}/__init__.py +0 -0
- /machineconfig/scripts/python/{pomodoro.py → helpers_croshell/pomodoro.py} +0 -0
- /machineconfig/scripts/python/{viewer.py → helpers_croshell/viewer.py} +0 -0
- /machineconfig/scripts/python/{viewer_template.py → helpers_croshell/viewer_template.py} +0 -0
- /machineconfig/{jobs/python_windows_installers/archive → scripts/python/helpers_devops}/__init__.py +0 -0
- /machineconfig/{jobs/python_windows_installers/dev → scripts/python/helpers_devops/themes}/__init__.py +0 -0
- /machineconfig/{jobs/windows/msc/cli_agents.bat → scripts/python/helpers_devops/themes/choose_starship_theme.ps1} +0 -0
- /machineconfig/scripts/python/{helpers → helpers_fire_command}/__init__.py +0 -0
- /machineconfig/scripts/python/{fire_jobs_streamlit_helper.py → helpers_fire_command/fire_jobs_streamlit_helper.py} +0 -0
- /machineconfig/scripts/{linux → python/helpers_msearch/scripts_linux}/skrg +0 -0
- /machineconfig/scripts/{windows → python/helpers_msearch/scripts_windows}/fzfb.ps1 +0 -0
- /machineconfig/scripts/{windows → python/helpers_msearch/scripts_windows}/fzfg.ps1 +0 -0
- /machineconfig/scripts/{windows → python/helpers_msearch/scripts_windows}/fzfrga.bat +0 -0
- /machineconfig/{jobs/windows/msc/cli_agents.ps1 → scripts/python/helpers_sessions/__init__.py} +0 -0
- /machineconfig/scripts/{windows/share_nfs.ps1 → python/nw/__init__.py} +0 -0
- /machineconfig/scripts/{linux → python/nw}/mount_drive +0 -0
- /machineconfig/scripts/python/{mount_nw_drive.py → nw/mount_nw_drive.py} +0 -0
- /machineconfig/scripts/{linux → python/nw}/mount_smb +0 -0
- /machineconfig/scripts/windows/{mount_nw.ps1 → mounts/mount_nw.ps1} +0 -0
- /machineconfig/scripts/windows/{mount_smb.ps1 → mounts/mount_smb.ps1} +0 -0
- /machineconfig/scripts/windows/{share_cloud.cmd → mounts/share_cloud.cmd} +0 -0
- /machineconfig/scripts/windows/{unlock_bitlocker.ps1 → mounts/unlock_bitlocker.ps1} +0 -0
- /machineconfig/setup_linux/{web_shortcuts → others}/android.sh +0 -0
- /machineconfig/{jobs/windows/archive → setup_windows/ssh}/openssh-server_add_key.ps1 +0 -0
- /machineconfig/{jobs/windows/archive → setup_windows/ssh}/openssh-server_copy-ssh-id.ps1 +0 -0
- /machineconfig/{settings/yazi/keymap.toml → utils/files/ouch/__init__.py} +0 -0
- {machineconfig-3.7.dist-info → machineconfig-7.69.dist-info}/WHEEL +0 -0
- {machineconfig-3.7.dist-info → machineconfig-7.69.dist-info}/top_level.txt +0 -0
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
"""Nerd Fonts installer - Cross-platform font installation"""
|
|
2
|
+
|
|
3
|
+
import platform
|
|
4
|
+
import subprocess
|
|
5
|
+
from typing import Optional
|
|
6
|
+
from rich import box
|
|
7
|
+
from rich.console import Console
|
|
8
|
+
from rich.panel import Panel
|
|
9
|
+
from machineconfig.utils.schemas.installer.installer_types import InstallerData
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
def main(installer_data: InstallerData, version: Optional[str]) -> None:
|
|
13
|
+
"""Main entry point for Nerd Fonts installation.
|
|
14
|
+
|
|
15
|
+
Args:
|
|
16
|
+
installer_data: Installation configuration data
|
|
17
|
+
version: Specific version to install (None for latest)
|
|
18
|
+
"""
|
|
19
|
+
console = Console()
|
|
20
|
+
_ = installer_data
|
|
21
|
+
console.print(
|
|
22
|
+
Panel.fit(
|
|
23
|
+
"\n".join([f"💻 Platform: {platform.system()}", f"🔄 Version: {'latest' if version is None else version}"]),
|
|
24
|
+
title="🔤 Nerd Fonts Installer",
|
|
25
|
+
border_style="blue",
|
|
26
|
+
box=box.ROUNDED,
|
|
27
|
+
)
|
|
28
|
+
)
|
|
29
|
+
|
|
30
|
+
_ = version
|
|
31
|
+
current_platform = platform.system()
|
|
32
|
+
|
|
33
|
+
if current_platform == "Windows":
|
|
34
|
+
console.print("🪟 Installing Nerd Fonts on Windows...", style="bold")
|
|
35
|
+
from machineconfig.jobs.installer.custom_dev.nerfont_windows_helper import install_nerd_fonts
|
|
36
|
+
|
|
37
|
+
try:
|
|
38
|
+
install_nerd_fonts()
|
|
39
|
+
console.print(
|
|
40
|
+
Panel.fit(
|
|
41
|
+
"\n".join(["💡 Restart terminal applications to see the new fonts."]),
|
|
42
|
+
title="✅ Nerd Fonts Installed",
|
|
43
|
+
border_style="green",
|
|
44
|
+
box=box.ROUNDED,
|
|
45
|
+
)
|
|
46
|
+
)
|
|
47
|
+
except Exception as e: # noqa: BLE001
|
|
48
|
+
error_msg = f"Windows Nerd Fonts installation failed: {e}"
|
|
49
|
+
console.print(
|
|
50
|
+
Panel.fit(
|
|
51
|
+
"\n".join(
|
|
52
|
+
[
|
|
53
|
+
error_msg,
|
|
54
|
+
"💡 Try running as administrator or install manually from https://www.nerdfonts.com",
|
|
55
|
+
]
|
|
56
|
+
),
|
|
57
|
+
title="❌ Error",
|
|
58
|
+
subtitle="⚠️ Installation issue",
|
|
59
|
+
border_style="red",
|
|
60
|
+
box=box.ROUNDED,
|
|
61
|
+
)
|
|
62
|
+
)
|
|
63
|
+
raise RuntimeError(error_msg) from e
|
|
64
|
+
|
|
65
|
+
elif current_platform in ["Linux", "Darwin"]:
|
|
66
|
+
console.print(f"🐧 Installing Nerd Fonts on {current_platform} using installation script...", style="bold")
|
|
67
|
+
import machineconfig.jobs.installer as module
|
|
68
|
+
from pathlib import Path
|
|
69
|
+
|
|
70
|
+
program = Path(module.__file__).parent.joinpath("linux_scripts/nerdfont.sh").read_text(encoding="utf-8")
|
|
71
|
+
|
|
72
|
+
console.print(
|
|
73
|
+
Panel.fit(
|
|
74
|
+
"\n".join(
|
|
75
|
+
[
|
|
76
|
+
"🎨 Programming fonts patched with icons",
|
|
77
|
+
"🔣 Includes icons from popular sets (FontAwesome, Devicons, etc.)",
|
|
78
|
+
"🖥️ Perfect for terminals and coding environments",
|
|
79
|
+
"🧰 Works with many terminal applications and editors",
|
|
80
|
+
]
|
|
81
|
+
),
|
|
82
|
+
title="ℹ️ Nerd Fonts Features",
|
|
83
|
+
border_style="magenta",
|
|
84
|
+
box=box.ROUNDED,
|
|
85
|
+
)
|
|
86
|
+
)
|
|
87
|
+
|
|
88
|
+
console.print("🔄 EXECUTING | Running Nerd Fonts installation...", style="bold yellow")
|
|
89
|
+
try:
|
|
90
|
+
subprocess.run(program, shell=True, text=True, check=True)
|
|
91
|
+
console.print("✅ Nerd Fonts installation completed successfully", style="bold green")
|
|
92
|
+
except subprocess.CalledProcessError as e:
|
|
93
|
+
console.print(f"❌ Installation failed with exit code {e.returncode}", style="bold red")
|
|
94
|
+
raise
|
|
95
|
+
|
|
96
|
+
else:
|
|
97
|
+
error_msg = f"Unsupported platform: {current_platform}"
|
|
98
|
+
console.print(
|
|
99
|
+
Panel.fit(
|
|
100
|
+
"\n".join([error_msg, "💡 Supported platforms are Windows, Linux, and macOS (Darwin)"]),
|
|
101
|
+
title="❌ Error",
|
|
102
|
+
subtitle="⚠️ Unsupported platform",
|
|
103
|
+
border_style="red",
|
|
104
|
+
box=box.ROUNDED,
|
|
105
|
+
)
|
|
106
|
+
)
|
|
107
|
+
raise NotImplementedError(error_msg)
|
|
108
|
+
|
|
109
|
+
|
|
110
|
+
if __name__ == "__main__":
|
|
111
|
+
pass
|
|
@@ -0,0 +1,149 @@
|
|
|
1
|
+
"""
|
|
2
|
+
Windows-specific Nerd Fonts installation helper module.
|
|
3
|
+
|
|
4
|
+
This module provides Windows-specific functionality for installing Nerd Fonts
|
|
5
|
+
using PowerShell scripts and font enumeration.
|
|
6
|
+
"""
|
|
7
|
+
|
|
8
|
+
import subprocess
|
|
9
|
+
from typing import Iterable
|
|
10
|
+
|
|
11
|
+
from rich import box
|
|
12
|
+
from rich.console import Console
|
|
13
|
+
from rich.panel import Panel
|
|
14
|
+
|
|
15
|
+
from machineconfig.utils.path_extended import PathExtended
|
|
16
|
+
from machineconfig.utils.source_of_truth import LIBRARY_ROOT
|
|
17
|
+
from machineconfig.utils.installer_utils.installer_class import Installer
|
|
18
|
+
from machineconfig.utils.schemas.installer.installer_types import InstallerData
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
nerd_fonts: InstallerData = {
|
|
22
|
+
"appName": "Cascadia Code Nerd Font",
|
|
23
|
+
"repoURL": "https://github.com/ryanoasis/nerd-fonts",
|
|
24
|
+
"doc": "Nerd Fonts is a project that patches developer targeted fonts with a high number of glyphs (icons)",
|
|
25
|
+
"fileNamePattern": {
|
|
26
|
+
"amd64": {
|
|
27
|
+
"windows": "CascadiaCode.zip",
|
|
28
|
+
"linux": "CascadiaCode.zip",
|
|
29
|
+
"macos": "CascadiaCode.zip",
|
|
30
|
+
},
|
|
31
|
+
"arm64": {
|
|
32
|
+
"windows": "CascadiaCode.zip",
|
|
33
|
+
"linux": "CascadiaCode.zip",
|
|
34
|
+
"macos": "CascadiaCode.zip",
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
console = Console()
|
|
41
|
+
|
|
42
|
+
|
|
43
|
+
def render_banner(message: str, title: str, border_style: str, box_style: box.Box) -> None:
|
|
44
|
+
console.print(Panel.fit(message, title=title, border_style=border_style, box=box_style, padding=(1, 4)))
|
|
45
|
+
|
|
46
|
+
|
|
47
|
+
def _list_installed_fonts() -> list[str]:
|
|
48
|
+
"""Return list of installed font file base names (without extension) on Windows.
|
|
49
|
+
|
|
50
|
+
Uses PowerShell to enumerate C:\\Windows\\Fonts because Python on *nix host can't rely on that path.
|
|
51
|
+
If PowerShell call fails (e.g. running on non-Windows), returns empty list so install proceeds.
|
|
52
|
+
|
|
53
|
+
Returns:
|
|
54
|
+
List of installed font base names
|
|
55
|
+
"""
|
|
56
|
+
try:
|
|
57
|
+
# Query only base names to make substring matching simpler; remove underscores like the PS script does.
|
|
58
|
+
cmd = [
|
|
59
|
+
"powershell.exe",
|
|
60
|
+
"-NoLogo",
|
|
61
|
+
"-NonInteractive",
|
|
62
|
+
"-Command",
|
|
63
|
+
"Get-ChildItem -Path C:/Windows/Fonts -File | Select-Object -ExpandProperty BaseName"
|
|
64
|
+
]
|
|
65
|
+
res = subprocess.run(cmd, capture_output=True, text=True, check=True) # noqa: S603 S607 (trusted command)
|
|
66
|
+
fonts = [x.strip().replace("_", "") for x in res.stdout.splitlines() if x.strip() != ""]
|
|
67
|
+
return fonts
|
|
68
|
+
except Exception as exc: # noqa: BLE001
|
|
69
|
+
console.print(f"⚠️ Could not enumerate installed fonts (continuing with install). Reason: {exc}")
|
|
70
|
+
return []
|
|
71
|
+
|
|
72
|
+
|
|
73
|
+
def _missing_required_fonts(installed_fonts: Iterable[str]) -> list[str]:
|
|
74
|
+
"""Check which required font patterns are missing from installed fonts.
|
|
75
|
+
|
|
76
|
+
Args:
|
|
77
|
+
installed_fonts: List of installed font names
|
|
78
|
+
|
|
79
|
+
Returns:
|
|
80
|
+
List of missing font patterns
|
|
81
|
+
"""
|
|
82
|
+
import re
|
|
83
|
+
|
|
84
|
+
installed_norm = [f.lower().replace(" ", "") for f in installed_fonts]
|
|
85
|
+
missing: list[str] = []
|
|
86
|
+
for pattern in ["cascadiacode*"]:
|
|
87
|
+
regex = re.compile(pattern)
|
|
88
|
+
if not any(regex.search(f) for f in installed_norm):
|
|
89
|
+
missing.append(pattern)
|
|
90
|
+
return missing
|
|
91
|
+
|
|
92
|
+
|
|
93
|
+
def install_nerd_fonts() -> None:
|
|
94
|
+
"""Install Nerd Fonts on Windows using PowerShell script.
|
|
95
|
+
|
|
96
|
+
This function:
|
|
97
|
+
1. Checks if required fonts are already installed
|
|
98
|
+
2. Downloads the font package if needed
|
|
99
|
+
3. Installs fonts using PowerShell script
|
|
100
|
+
4. Cleans up temporary files
|
|
101
|
+
|
|
102
|
+
Raises:
|
|
103
|
+
subprocess.CalledProcessError: If PowerShell installation fails
|
|
104
|
+
"""
|
|
105
|
+
console.print()
|
|
106
|
+
render_banner("📦 INSTALLING NERD FONTS 📦", "Nerd Fonts Installer", "magenta", box.DOUBLE)
|
|
107
|
+
console.print()
|
|
108
|
+
|
|
109
|
+
installed = _list_installed_fonts()
|
|
110
|
+
missing = _missing_required_fonts(installed)
|
|
111
|
+
|
|
112
|
+
if len(missing) == 0:
|
|
113
|
+
console.print("✅ Required Nerd Fonts already installed. Skipping download & install.")
|
|
114
|
+
return
|
|
115
|
+
|
|
116
|
+
console.print(f"🔍 Missing fonts detected: {', '.join(missing)}. Proceeding with installation...")
|
|
117
|
+
console.print("🔍 Downloading Nerd Fonts package...")
|
|
118
|
+
|
|
119
|
+
folder, _version_to_be_installed = Installer(installer_data=nerd_fonts).binary_download(version=None)
|
|
120
|
+
|
|
121
|
+
console.print("🧹 Cleaning up unnecessary files...")
|
|
122
|
+
[p.delete(sure=True) for p in folder.search("*Windows*")]
|
|
123
|
+
[p.delete(sure=True) for p in folder.search("*readme*")]
|
|
124
|
+
[p.delete(sure=True) for p in folder.search("*LICENSE*")]
|
|
125
|
+
|
|
126
|
+
console.print("⚙️ Installing fonts via PowerShell...")
|
|
127
|
+
file = PathExtended.tmpfile(suffix=".ps1")
|
|
128
|
+
file.parent.mkdir(parents=True, exist_ok=True)
|
|
129
|
+
|
|
130
|
+
raw_content = LIBRARY_ROOT.joinpath("jobs/installer/pwsh_scripts/install_fonts.ps1").read_text(encoding="utf-8").replace(r".\fonts-to-be-installed", str(folder))
|
|
131
|
+
# PowerShell 5.1 can choke on certain unicode chars in some locales; keep ASCII only.
|
|
132
|
+
content = "".join(ch for ch in raw_content if ord(ch) < 128)
|
|
133
|
+
file.write_text(content, encoding="utf-8")
|
|
134
|
+
|
|
135
|
+
try:
|
|
136
|
+
subprocess.run(rf"powershell.exe -executionpolicy Bypass -nologo -noninteractive -File {str(file)}", check=True)
|
|
137
|
+
except subprocess.CalledProcessError as cpe:
|
|
138
|
+
console.print(f"💥 Font installation script failed: {cpe}")
|
|
139
|
+
raise
|
|
140
|
+
finally:
|
|
141
|
+
console.print("🗑️ Cleaning up temporary files...")
|
|
142
|
+
if folder.exists():
|
|
143
|
+
folder.delete(sure=True)
|
|
144
|
+
if file.exists():
|
|
145
|
+
file.delete(sure=True)
|
|
146
|
+
|
|
147
|
+
console.print()
|
|
148
|
+
render_banner("✅ Nerd Fonts installation complete! ✅", "Nerd Fonts Installer", "green", box.DOUBLE)
|
|
149
|
+
console.print()
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
"""nedis installer"""
|
|
2
|
+
|
|
3
|
+
import platform
|
|
4
|
+
import subprocess
|
|
5
|
+
from typing import Optional
|
|
6
|
+
from rich import box
|
|
7
|
+
from rich.console import Console
|
|
8
|
+
from rich.panel import Panel
|
|
9
|
+
from machineconfig.utils.schemas.installer.installer_types import InstallerData
|
|
10
|
+
|
|
11
|
+
# config_dict: InstallerData = {"appName": "Redis", "repoURL": "CMD", "doc": "submillisecond fast key-value db"}
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
def main(installer_data: InstallerData, version: Optional[str]) -> None:
|
|
15
|
+
console = Console()
|
|
16
|
+
_ = installer_data
|
|
17
|
+
console.print(
|
|
18
|
+
Panel.fit(
|
|
19
|
+
"\n".join([f"💻 Platform: {platform.system()}", f"🔄 Version: {'latest' if version is None else version}"]),
|
|
20
|
+
title="🗃️ Redis Installer",
|
|
21
|
+
border_style="red",
|
|
22
|
+
box=box.ROUNDED,
|
|
23
|
+
)
|
|
24
|
+
)
|
|
25
|
+
|
|
26
|
+
_ = version
|
|
27
|
+
if platform.system() == "Windows":
|
|
28
|
+
error_msg = "Redis installation not supported on Windows through this installer"
|
|
29
|
+
console.print(
|
|
30
|
+
Panel.fit(
|
|
31
|
+
"\n".join([error_msg, "💡 Consider using WSL2 or Docker to run Redis on Windows"]),
|
|
32
|
+
title="❌ Error",
|
|
33
|
+
subtitle="⚠️ Unsupported platform",
|
|
34
|
+
border_style="red",
|
|
35
|
+
box=box.ROUNDED,
|
|
36
|
+
)
|
|
37
|
+
)
|
|
38
|
+
raise NotImplementedError(error_msg)
|
|
39
|
+
elif platform.system() in ["Linux", "Darwin"]:
|
|
40
|
+
system_name = "Linux" if platform.system() == "Linux" else "macOS"
|
|
41
|
+
console.print(f"🐧 Installing Redis on {system_name} using installation script...", style="bold")
|
|
42
|
+
import machineconfig.jobs.installer as module
|
|
43
|
+
from pathlib import Path
|
|
44
|
+
if platform.system() == "Linux":
|
|
45
|
+
program = Path(module.__file__).parent.joinpath("linux_scripts/redis.sh").read_text(encoding="utf-8")
|
|
46
|
+
else: # Darwin/macOS
|
|
47
|
+
program = "brew install redis"
|
|
48
|
+
else:
|
|
49
|
+
error_msg = f"Unsupported platform: {platform.system()}"
|
|
50
|
+
console.print(
|
|
51
|
+
Panel.fit(
|
|
52
|
+
"\n".join([error_msg]),
|
|
53
|
+
title="❌ Error",
|
|
54
|
+
subtitle="⚠️ Unsupported platform",
|
|
55
|
+
border_style="red",
|
|
56
|
+
box=box.ROUNDED,
|
|
57
|
+
)
|
|
58
|
+
)
|
|
59
|
+
raise NotImplementedError(error_msg)
|
|
60
|
+
|
|
61
|
+
console.print(
|
|
62
|
+
Panel.fit(
|
|
63
|
+
"\n".join(
|
|
64
|
+
[
|
|
65
|
+
"⚡ In-memory data structure store",
|
|
66
|
+
"🔑 Key-value database with optional persistence",
|
|
67
|
+
"🚀 Sub-millisecond response times",
|
|
68
|
+
"💾 Supports strings, lists, sets, sorted sets, hashes",
|
|
69
|
+
"🔄 Built-in replication and Lua scripting",
|
|
70
|
+
]
|
|
71
|
+
),
|
|
72
|
+
title="ℹ️ Redis Features",
|
|
73
|
+
border_style="magenta",
|
|
74
|
+
box=box.ROUNDED,
|
|
75
|
+
)
|
|
76
|
+
)
|
|
77
|
+
|
|
78
|
+
console.print("🔄 EXECUTING | Running Redis installation...", style="bold yellow")
|
|
79
|
+
try:
|
|
80
|
+
subprocess.run(program, shell=True, text=True, check=True)
|
|
81
|
+
console.print("✅ Redis installation completed successfully", style="bold green")
|
|
82
|
+
except subprocess.CalledProcessError as e:
|
|
83
|
+
console.print(f"❌ Installation failed with exit code {e.returncode}", style="bold red")
|
|
84
|
+
raise
|
|
85
|
+
|
|
86
|
+
|
|
87
|
+
if __name__ == "__main__":
|
|
88
|
+
pass
|
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
|
|
2
|
+
|
|
3
|
+
import platform
|
|
4
|
+
from typing import Optional
|
|
5
|
+
from rich import box
|
|
6
|
+
from rich.console import Console
|
|
7
|
+
from rich.panel import Panel
|
|
8
|
+
from machineconfig.utils.schemas.installer.installer_types import InstallerData
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
"""
|
|
12
|
+
{
|
|
13
|
+
"appName": "Microsoft.DesktopAppInstaller_8wekyb3d8bbwe.msixbundle",
|
|
14
|
+
"repoURL": "https://github.com/microsoft/winget-cli",
|
|
15
|
+
"doc": "📦 Windows Package Manager CLI",
|
|
16
|
+
"fileNamePattern": {
|
|
17
|
+
"amd64": {
|
|
18
|
+
"linux": null,
|
|
19
|
+
"windows": "Microsoft.DesktopAppInstaller_8wekyb3d8bbwe.msixbundle",
|
|
20
|
+
"macos": null
|
|
21
|
+
},
|
|
22
|
+
"arm64": {
|
|
23
|
+
"linux": null,
|
|
24
|
+
"windows": "Microsoft.DesktopAppInstaller_8wekyb3d8bbwe.msixbundle",
|
|
25
|
+
"macos": null
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
"""
|
|
30
|
+
|
|
31
|
+
ps1 = r"""
|
|
32
|
+
|
|
33
|
+
# if windows is missing
|
|
34
|
+
# download latest from cd $HOME/Downloads; d u "https://github.com/microsoft/winget-cli/releases/download/v1.12.170-preview/Microsoft.DesktopAppInstaller_8wekyb3d8bbwe.msixbundle"
|
|
35
|
+
# this must be run in windows powershell, not in pwsh
|
|
36
|
+
# Add-AppxPackage .\Microsoft.DesktopAppInstaller_8wekyb3d8bbwe.msixbundle
|
|
37
|
+
|
|
38
|
+
winget install --no-upgrade --name "Powershell" --Id "Microsoft.PowerShell" --source winget --scope user --accept-package-agreements --accept-source-agreements # powershell require admin
|
|
39
|
+
winget install --no-upgrade --name "Windows Terminal" --Id "Microsoft.WindowsTerminal" --source winget --scope user --accept-package-agreements --accept-source-agreements # Terminal is is installed by default on W 11
|
|
40
|
+
winget install --no-upgrade --name "GNU Nano" --Id "GNU.Nano" --source winget --scope user --accept-package-agreements --accept-source-agreements
|
|
41
|
+
# --GROUP:gui:Brave+VSCode+Git+WezTerm
|
|
42
|
+
# --GROUP:dev2:VSRedistrib+VSBuildTools+Codeblocks+GnuWin32: Make+GnuPG+graphviz+WinFsp+SSHFS-win+xming+Node.js+Rustup+Cloudflare+Cloudflare WARP+Microsoft Garage Mouse without Borders
|
|
43
|
+
# --GROUP:user:nu+Chrome+ChromeRemoteDesktop+Zoom+7zip+Firefox+Thunderbird+StreamlabsOBS+OBSStudio+MiKTeX+TexMaker+notepad+++Lapce+TesseractOCR+perl+DB Browser for SQLite+sql server management studio+Adobe Acrobat Reader DC+julia+Chafa+bottom+onefetch+Just+hyperfine+AWS CLI
|
|
44
|
+
# Install-Module -Name Terminal-Icons -Repository PSGallery -Force -AcceptLicense -PassThru -Confirm # -RequiredVersion 2.5.10
|
|
45
|
+
# Install-Module -Name PSFzf -SkipPublisherCheck # -AcceptLicense -PassThru -Confirm # -RequiredVersion 2.5.10
|
|
46
|
+
|
|
47
|
+
"""
|
|
48
|
+
|
|
49
|
+
zsh = r"""
|
|
50
|
+
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
|
|
51
|
+
echo "🔄 Updating Homebrew..."
|
|
52
|
+
brew update || true
|
|
53
|
+
echo "📥 Installing essential tools..."
|
|
54
|
+
echo "📥 Installing Git version control..."
|
|
55
|
+
echo "📥 Installing Nano text editor..."
|
|
56
|
+
echo "📥 Installing Node Version Manager (NVM)..."
|
|
57
|
+
# Note: git and nano are pre-installed on macOS, but we install via Homebrew to ensure latest versions
|
|
58
|
+
# brew install git || true
|
|
59
|
+
# brew install nano || true
|
|
60
|
+
# brew install curl || true
|
|
61
|
+
# Install NVM
|
|
62
|
+
if [ ! -s "$HOME/.nvm/nvm.sh" ]; then
|
|
63
|
+
echo "📥 Installing NVM (Node Version Manager)..."
|
|
64
|
+
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.3/install.sh | bash
|
|
65
|
+
fi
|
|
66
|
+
echo "🔧 Configuring NVM environment..."
|
|
67
|
+
export NVM_DIR="$HOME/.nvm"
|
|
68
|
+
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"
|
|
69
|
+
echo "📥 Installing latest Node.js..."
|
|
70
|
+
nvm install node || true
|
|
71
|
+
# brew install make
|
|
72
|
+
# brew install ffmpeg
|
|
73
|
+
# brew install openssl
|
|
74
|
+
echo "✅ Essential tools installation complete."
|
|
75
|
+
"""
|
|
76
|
+
|
|
77
|
+
bash = r"""
|
|
78
|
+
sudo apt update -y || true
|
|
79
|
+
sudo apt install nala -y || true
|
|
80
|
+
sudo nala install curl wget gpg lsb-release apt-transport-https -y || true
|
|
81
|
+
sudo nala install git net-tools htop nano -y || true
|
|
82
|
+
sudo nala install build-essential python3-dev -y || true # C build toolchain: Where build-essential brings gcc, make, etc., and python3-dev ensures headers for your Python version.
|
|
83
|
+
# sudo nala install libssl-dev -y
|
|
84
|
+
# sudo nala install libaa-bin -y
|
|
85
|
+
|
|
86
|
+
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.3/install.sh | bash
|
|
87
|
+
echo "🔧 Configuring NVM environment..."
|
|
88
|
+
export NVM_DIR="$HOME/.nvm"
|
|
89
|
+
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"
|
|
90
|
+
echo "📥 Installing latest Node.js..."
|
|
91
|
+
nvm install node || true
|
|
92
|
+
|
|
93
|
+
sudo nala install samba
|
|
94
|
+
sudo nala install fuse3 -y || true
|
|
95
|
+
sudo nala install nfs-common -y || true
|
|
96
|
+
|
|
97
|
+
# echo 'keyboard-configuration keyboard-configuration/layout select US English' | sudo debconf-set-selections
|
|
98
|
+
# echo 'keyboard-configuration keyboard-configuration/layoutcode string us' | sudo debconf-set-selections
|
|
99
|
+
# sudo DEBIAN_FRONTEND=noninteractive nala install -y cmatrix
|
|
100
|
+
# sudo nala install hollywood -y || true
|
|
101
|
+
|
|
102
|
+
# sudo nala install ffmpeg -y || true # Required by some dev tools
|
|
103
|
+
# sudo nala install make -y || true # Required by LunarVim and SpaceVim
|
|
104
|
+
# (curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh) || true
|
|
105
|
+
|
|
106
|
+
"""
|
|
107
|
+
|
|
108
|
+
|
|
109
|
+
def main(installer_data: InstallerData, version: Optional[str]) -> None:
|
|
110
|
+
console = Console()
|
|
111
|
+
_ = installer_data
|
|
112
|
+
console.print(
|
|
113
|
+
Panel.fit(
|
|
114
|
+
"\n".join([f"💻 Platform: {platform.system()}", f"🔄 Version: {'latest' if version is None else version}"]),
|
|
115
|
+
title="🔧 ABC Installer",
|
|
116
|
+
border_style="blue",
|
|
117
|
+
box=box.ROUNDED,
|
|
118
|
+
)
|
|
119
|
+
)
|
|
120
|
+
|
|
121
|
+
_ = version
|
|
122
|
+
if platform.system() == "Windows":
|
|
123
|
+
console.print("🪟 Installing ABC on Windows using winget...", style="bold")
|
|
124
|
+
program = ps1
|
|
125
|
+
elif platform.system() == "Linux":
|
|
126
|
+
console.print("🐧 Installing ABC on Linux...", style="bold")
|
|
127
|
+
program = bash
|
|
128
|
+
elif platform.system() == "Darwin":
|
|
129
|
+
console.print("🍎 Installing ABC on macOS...", style="bold")
|
|
130
|
+
program = zsh
|
|
131
|
+
else:
|
|
132
|
+
error_msg = f"Unsupported platform: {platform.system()}"
|
|
133
|
+
console.print(
|
|
134
|
+
Panel.fit(
|
|
135
|
+
"\n".join([error_msg]),
|
|
136
|
+
title="❌ Error",
|
|
137
|
+
subtitle="⚠️ Unsupported platform",
|
|
138
|
+
border_style="red",
|
|
139
|
+
box=box.ROUNDED,
|
|
140
|
+
)
|
|
141
|
+
)
|
|
142
|
+
raise NotImplementedError(error_msg)
|
|
143
|
+
from machineconfig.utils.code import print_code, run_shell_script
|
|
144
|
+
print_code(code=program, lexer="shell", desc="Installation Script Preview")
|
|
145
|
+
run_shell_script(program)
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
"""wezterm installer"""
|
|
2
|
+
|
|
3
|
+
import platform
|
|
4
|
+
import subprocess
|
|
5
|
+
from typing import Optional
|
|
6
|
+
|
|
7
|
+
from rich.console import Console
|
|
8
|
+
from rich.panel import Panel
|
|
9
|
+
|
|
10
|
+
from machineconfig.utils.schemas.installer.installer_types import InstallerData
|
|
11
|
+
|
|
12
|
+
console = Console()
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
def main(installer_data: InstallerData, version: Optional[str]):
|
|
16
|
+
_ = installer_data
|
|
17
|
+
console.print(
|
|
18
|
+
Panel.fit(
|
|
19
|
+
"\n".join(
|
|
20
|
+
[
|
|
21
|
+
"🖥️ WEZTERM INSTALLER | Modern, GPU-accelerated terminal emulator",
|
|
22
|
+
f"💻 Platform: {platform.system()}",
|
|
23
|
+
f"🔄 Version: {version or 'latest'}",
|
|
24
|
+
]
|
|
25
|
+
),
|
|
26
|
+
title="WezTerm Setup",
|
|
27
|
+
border_style="magenta",
|
|
28
|
+
padding=(1, 2),
|
|
29
|
+
)
|
|
30
|
+
)
|
|
31
|
+
|
|
32
|
+
_ = version
|
|
33
|
+
if platform.system() == "Windows":
|
|
34
|
+
program = """winget install --no-upgrade --name "WezTerm" --Id "wez.wezterm" --source winget --accept-package-agreements --accept-source-agreements
|
|
35
|
+
"""
|
|
36
|
+
elif platform.system() in ["Linux", "Darwin"]:
|
|
37
|
+
system_name = "LINUX" if platform.system() == "Linux" else "MACOS"
|
|
38
|
+
console.print(
|
|
39
|
+
Panel.fit(
|
|
40
|
+
f"🐧 {system_name} SETUP | Installing WezTerm terminal emulator...",
|
|
41
|
+
title="Platform Setup",
|
|
42
|
+
border_style="cyan",
|
|
43
|
+
)
|
|
44
|
+
)
|
|
45
|
+
import machineconfig.jobs.installer as module
|
|
46
|
+
from pathlib import Path
|
|
47
|
+
|
|
48
|
+
if platform.system() == "Linux":
|
|
49
|
+
program = Path(module.__file__).parent.joinpath("linux_scripts/wezterm.sh").read_text(encoding="utf-8")
|
|
50
|
+
else: # Darwin/macOS
|
|
51
|
+
program = "brew install --cask wezterm"
|
|
52
|
+
else:
|
|
53
|
+
error_msg = f"Unsupported platform: {platform.system()}"
|
|
54
|
+
console.print(
|
|
55
|
+
Panel.fit(
|
|
56
|
+
f"❌ ERROR | {error_msg}",
|
|
57
|
+
title="Unsupported Platform",
|
|
58
|
+
border_style="red",
|
|
59
|
+
)
|
|
60
|
+
)
|
|
61
|
+
raise NotImplementedError(error_msg)
|
|
62
|
+
|
|
63
|
+
console.print(
|
|
64
|
+
Panel(
|
|
65
|
+
"\n".join(
|
|
66
|
+
[
|
|
67
|
+
"ℹ️ INFO | WezTerm Features:",
|
|
68
|
+
"⚡ GPU-accelerated rendering",
|
|
69
|
+
"🎨 Full color emoji support",
|
|
70
|
+
"🧩 Multiplexing with panes and tabs",
|
|
71
|
+
"⚙️ Lua configuration",
|
|
72
|
+
"📦 Cross-platform support",
|
|
73
|
+
"🔌 Plugin system",
|
|
74
|
+
]
|
|
75
|
+
),
|
|
76
|
+
title="Why WezTerm?",
|
|
77
|
+
border_style="magenta",
|
|
78
|
+
padding=(1, 2),
|
|
79
|
+
)
|
|
80
|
+
)
|
|
81
|
+
|
|
82
|
+
console.print("[bold]🔄 EXECUTING | Running WezTerm installation...[/bold]")
|
|
83
|
+
try:
|
|
84
|
+
subprocess.run(program, shell=True, text=True, check=True)
|
|
85
|
+
console.print("[green]✅ WezTerm installation completed successfully[/green]")
|
|
86
|
+
except subprocess.CalledProcessError as e:
|
|
87
|
+
console.print(f"❌ [red]Installation failed with exit code {e.returncode}[/red]")
|
|
88
|
+
raise
|
|
89
|
+
|
|
90
|
+
|
|
91
|
+
if __name__ == "__main__":
|
|
92
|
+
pass
|
|
@@ -3,10 +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
|
|
7
6
|
|
|
8
7
|
|
|
9
|
-
config_dict: InstallerData = {"appName": "winget", "repoURL": "
|
|
8
|
+
# config_dict: InstallerData = {"appName": "winget", "repoURL": "CMD", "doc": "winget installer"}
|
|
9
|
+
# on older windows, use this to get winget for first time: Add-AppxPackage -RegisterByFamilyName -MainPackage Microsoft.DesktopAppInstaller_8wekyb3d8bbwe as per https://learn.microsoft.com/en-us/windows/package-manager/winget/
|
|
10
10
|
|
|
11
11
|
|
|
12
12
|
def is_winget_available() -> bool:
|
|
@@ -93,7 +93,6 @@ def install_msix_package(package_path: Path) -> bool:
|
|
|
93
93
|
|
|
94
94
|
result = subprocess.run(
|
|
95
95
|
powershell_cmd,
|
|
96
|
-
capture_output=True,
|
|
97
96
|
text=True,
|
|
98
97
|
timeout=300, # 5 minutes timeout
|
|
99
98
|
)
|